domingo, 29 de septiembre de 2013

Preguntas capitulo 4

4-1. Señale las diferencias entre un compilador y un ensamblador.
 
La diferencia radica en que el compilador es usado en lenguajes de alto nivel para traducer el código fuente a lenguaje máquina, y el lenguaje ensamblador es usado por lenguajes de bajo nivel para realizer dicha traducción.

4-2. ¿Qué es una palabra reservada en un lenguaje ensamblador? Dé dos ejemplos.
 
Ciertas palabras en lenguaje ensamblador están reservadas para sus propósitos propios, y son usadas sólo bajo condiciones especiales. Por categorías, las palabras reservadas incluyen:
 
  • Instrucciones, como MOV y ADD, que son operaciones que la computadora puede ejecutar.
  • Directivas, como END o SEGMENT, que se emplean para proporcionar comandos al ensamblador.
  • Operadores, como FAR y SIZE, que se utilizan en expresiones.
  • Símbolos predefinidos, como @Data y @Model, que regresan información a su programa.

4-3. ¿Cuáles son los dos tipos de identificadores?
 
Nombre, que se refiere a la dirección de un elemento de dato, y Etiqueta, que se refiere a la dirección de una instrucción.
 
4-4. Determine cuales de los nombres siguientes son válidos:
 
a) PC_AT: Válido
 
b) $50: Válido
 
c) @$_Z: Válido
 
d) 34B7: No Válido
 
e) AX: No válido
 
4-5. ¿Cuáles son las diferencias entre una directiva y una instrucción?
 
La diferencia es que la directiva indica al ensamblador que realice una acción específica, como definir un elemento de dato y las instrucciones, como MOV y ADD, son traducidas por el ensamblador a código objeto.
 
4-6. ¿Qué comandos hacen que el ensamblador...
 
a) Imprima un encabezado en la parte superior de una página en el listado de un programa? Comando TITLE.
 
b) Salte a una nueva página? Comando PAGE.
 
4-7. ¿Cuál es el objetivo de cada uno de los tres segmentos descritos en este capítulo?
 
  • Un segmento de pila define el almacén de la pila.
  • Un segmento de datos define los elementos de datos.
  • Un segmento de código proporciona un código ejecutable.
 
4-8. El formato de la directiva SEGMENT es
 
nombre SEGMENT alineación combinar 'clase'
 
Explique el objetivo de
 
a) Alineación: Indica el límite en el que inicia el segmento.
 
b) Combinar: Indica si el segmento se combina con otros segmentos cuando son enlazados después de ensamblar.
 
c) Clase: Es utilizada para agrupar segmentos cuando se enlazan.
 
4-9. a) ¿Cuál es el objetivo de un procedimiento?

Cuando usted solicita la ejecución de un programa, el cargador de programas del DOS utiliza el nombre del procedimiento como el punto de entrada para la primera instrucción a ejecutar.
 
b) ¿Cómo define el inicio y el final de un procedimiento?

La directiva PROC inicia un procedimiento y la directiva ENDP lo finaliza.
 
c) ¿Cuándo definiría un procedimiento como FAR y cuándo como NEAR?

FAR cuando sea el primer procedimiento, y NEAR para cada procedimiento adicional.
 
4-10. Explique que enunciados END particulares tratan la finalización de
 
a) Un programa: La directiva END finaliza todo el programa.
 
b) Un procedimiento: La directiva ENDP finaliza un procedimiento.
 
c) Un segmento: La directiva ENDS finaliza un segmento.
 
4-11. Establezca las diferencias entre los enunciados que finalizan un ensamblado y los enunciados que finalizan una ejecución.

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.
 
4-12. Dé los nombres STKSEG, DATSEG, y CDSEG a los segmentos de la pila, de los datos y del código, respectivamente, y codifique el ASSUME necesario.

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
    INT 21H
BEGIN ENDP
CDSEG ENDS
END BEGIN
 
4-13. Considere la instrucción MOV AX, 4C00H utilizada con INT 21H.
 
a) ¿Qué hace la instrucción? Después de la transferencia, se hace la petición para la terminación de un programa.
 
b) ¿Cuál es la finalidad del 4C y el 00? Indicar la dirección de memoria donde queremos mover el valor del registro AX.
 
4-14. Para las directivas simplificadas de segmentos, la directiva .MODEL proporciona los modelos TINY, SMALL, MEDIUM, COMPACT y LARGE. ¿Bajo qué circunstancias se utilizaría cada uno de estos modelos?
 
  • 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.
 
4-15. Dé las longitudes, en bytes, generadas por las siguientes directivas de datos
 
a) DD: 4 bytes
 
b) DW: 2 bytes
 
c) DT: 10 bytes
 
d) DQ: 8 bytes
 
e) DB: 1 byte
 
4-16. Defina una cadena de caracteres con nombre TITLE1 que contenga la constante: RGB Electronics.

TITLE1 DB 'RGB Electronics'
 
4-17. Defina los valores numéricos siguientes en elementos de datos FIELDA a FIELDE, respectivamente:
 
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 00011001
 
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
 
4-18. Muestre el código objeto hexadecimal generado por
 
a) DB '28' = 0001 22 28
 
b) DB 28 = 0001 1C
 
4-19. Determine el código objeto hexadecimal ensamblado para
 
a) DB 28H = 0001 28
 
b) DW 2845H = 0030 2845
 
c) DD 28733AH = 004A 3A732800
 

No hay comentarios:

Publicar un comentario