1)
Un
lenguaje ensamblador proporciona mas control sobre el manejo particular de los
requerimientos de hardware. Genera
módulos ejecutables mas pequeños y mas
compactos, con
mayor probabilidad tiene una ejecución mas rápida.
El
lenguaje de alto nivel es el que utiliza el compilador y el de bajo nivel
utiliza un ensamblador.
Ciertas
palabras en lenguaje ensamblador están reservadas para sus propósitos propios y
son usadas solo bajo condiciones especiales.por categorías, las palabras
reservadas incluyen :
Instrucciones
como MOV y ADD
Directivas
como END o SEGMENT
Operadores
como FAR y SIZE
3)
Nombre
: que se refiere a la dirección de un elemento de dato
Etiqueta
: se refiere a la dirección de una instrucción
4)
a) PC_AT: Válido
b) $50: Válido
c) @$_Z: Válido
d) 34B7: No Válido
e) AX: No válido
5)
Las directivas actúan solo durante el
ensamblado de un programa y no generan código ejecutable de maquina.
6)
PAGE
y TITLE
7)
DIRECTIVA
PROC
El
segmento de código contiene el código ejecutable de un programa. También tiene
uno o mas procedimientos. Definidos con la directiva PROC.
DIRECTIVA
ASSUME
Un programa utiliza el registro SS para
direccionar la pila, al registro DS para direccionar el segmento de datos y al
registro CS para direccionar el segmento de código. Para este fin, usted tiene
que indicar al ensamblador el propósito de cada segmento en el programa.
DIRECTIVA END
Como
ya se menciono, la directiva ENDS finaliza un segmento y la directiva ENDP
finaliza un procedimiento. Una directiva END finaliza todo el programa.
8)
TIPO
ALINEACIÓN : la entrada alineación indica el limite en el que inicia el
segmento. Para el requerimiento típico.
TIPO
COMBINAR : la entrada combinar indica si
se combina el segmento con otros segmentos cuando son enlazados después de
ensamblar.
TIPO
CLASE : la entrada clase, encerrada entre apóstrofos, es utilizada para agrupar
segmentos cuando se enlazan. Este libro utiliza la clase “code” para el
segmento de códigos.
FAR Cuando solicita la ejecución de un programa, el cargador de programas del
DOS utiliza este nombre de procedimiento como el punto de entrada para la
primera instrucción a ejecutar.
NEAR cada procedimiento adicional por lo común se codifica
con (o por omisión) el operando NEAR.
10)
ENDS
finaliza un segmento
ENDP
finaliza un procedimiento
END finaliza todo el programa
11)
Los enunciados que finalizan un ensamblado es para terminar todo el proceso de ensamblado, en cambio los que finalizan una ejecución solo terminan un segmento o un procedimiento.
12)
STKSEG SEGMENT PARA STACK 'Stack'
STKSEG ENDS
DATSEG SEGMENT PARA 'Data'
DATSEG ENDS
CDSEG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME SS: STKSEG, DS: DATSEG, CS: CDSEG
MOV AX, DATSEG
MOV DS, AX
MOV AX, FLDA
ADD AX, FLDB
MOV FLDC,AX
MOV AX,AC00H
INT 21H
BEGIN ENDP
CDSEG ENDS
END BEGIN
Los enunciados que finalizan un ensamblado es para terminar todo el proceso de ensamblado, en cambio los que finalizan una ejecución solo terminan un segmento o un procedimiento.
12)
STKSEG SEGMENT PARA STACK 'Stack'
STKSEG ENDS
DATSEG SEGMENT PARA 'Data'
DATSEG ENDS
CDSEG SEGMENT PARA 'Code'
BEGIN PROC FAR
ASSUME SS: STKSEG, DS: DATSEG, CS: CDSEG
MOV AX, DATSEG
MOV DS, AX
MOV AX, FLDA
ADD AX, FLDB
MOV FLDC,AX
MOV AX,AC00H
INT 21H
BEGIN ENDP
CDSEG ENDS
END BEGIN
13)
Salida a DOS
El código de regreso para una terminación normal de un
programa por lo común es 0 {cero }
La
funcion 4CH del DOS ha sustituido las operaciones originales de terminacion INT
20H e INT 21H, funcion 00H.
14)
a) DD: 4 bytes
b) DW: 2 bytes
c) DT: 10 bytes
d) DQ: 8 bytes
e) DB: 1 byte
14)
- El modelo TINY esta destinado para uso exclusivo de programas .COM, los cuales tienen sus datos, código y pila en un segmento.
- El modelo SMALL exige que el código quepa en un segmento de 64K y los datos en otro segmento de 64K.
- El modelo MEDIUM se usaría cuando tengamos más de un segmento de código y un solo segmento de datos.
- El modelo COMPACT se utilizaría cuando se tenga un segmento de código pero más de 1 segmento de datos.
- El modelo LARGE se usaría cuando tengamos más de un segmento de código y más de un segmento de datos.
a) DD: 4 bytes
b) DW: 2 bytes
c) DT: 10 bytes
d) DQ: 8 bytes
e) DB: 1 byte
16)
R= TITLE1 DB 'RGB Electronics'
17)
a) Un elemento de cuatro bytes con el equivalente hexadecimal del 215 decimal:
FIELDA DD EQU D7H
b) Un elemento de un byte con el equivalente hexadecimal del 35 decimal:
FIELDB DB EQU 25H
c) Un elemento de dos bytes con un valor no definido:
FIELDC DW EQU (?)
d) Un elemento de un byte con el equivalente binario del 25 decimal:
FIELDD DB EQU 11001
e) Un DW con los valores consecutivos 17, 19, 21, 26 y 31:
FIELDE DW EQU 17
FIELDE 19 EQU DW
FIELDE 21 EQU DW
FIELDE 26 EQU DW
FIELDE 31 EQU DW
18)
a) DB '28' = 0001 22 28
b) DB 28 = 0001 1C
19)
a) DB 28H = 0001 28
b) DW 2845H = 0030 2845
c) DD 28733AH = 004A 3A732800
d) DQ 28733AH = 0062 3A73280000000000
R= TITLE1 DB 'RGB Electronics'
17)
a) Un elemento de cuatro bytes con el equivalente hexadecimal del 215 decimal:
FIELDA DD EQU D7H
b) Un elemento de un byte con el equivalente hexadecimal del 35 decimal:
FIELDB DB EQU 25H
c) Un elemento de dos bytes con un valor no definido:
FIELDC DW EQU (?)
d) Un elemento de un byte con el equivalente binario del 25 decimal:
FIELDD DB EQU 11001
e) Un DW con los valores consecutivos 17, 19, 21, 26 y 31:
FIELDE DW EQU 17
FIELDE 19 EQU DW
FIELDE 21 EQU DW
FIELDE 26 EQU DW
FIELDE 31 EQU DW
18)
a) DB '28' = 0001 22 28
b) DB 28 = 0001 1C
19)
a) DB 28H = 0001 28
b) DW 2845H = 0030 2845
c) DD 28733AH = 004A 3A732800
d) DQ 28733AH = 0062 3A73280000000000
No hay comentarios:
Publicar un comentario