miércoles, 16 de octubre de 2013

Cuestionario Capitulo 4


1.- ¿Cual es la diferencia entre compilador y ensamblador?
El lenguaje ensamblador proporciona mas control sobre el manejo particular de los requerimientos de hardware.


Genera módulos ejecutables mas pequeños y mas compactos.
Tiene una ejecución mas rápida.
 2.- ¿Que es una palabra reservada en un lenguaje ensamblador?

 Ciertas palabras en lenguaje ensamblador están reservadas para sus propósitos propios y son usadas solo bajo condiciones especiales. Tales como las instrucciones MOV y ADD o las directivas como END o SEGMENT.
 3.-¿ Cuales son los dos tipos de identificadores?

Nombre: que se refiere a la dirección de un elemento dado.
Etiqueta: que se refiere a la dirección de la instrucción.

 4.- determine cual de los siguientes nombres son validos
A) PC_AT -> Nombre Valido
B) $50 -> Nombre Valido
C) @$_Z -> Nombre Valido
D) 34B7 - > Nombre No Valido
E) AX - > Nombre No Valido

5.-¿Cual es la diferencia entre directiva e instruccion?

 Las instrucciones, tal como MOV y ADD, son las que el ensamblador traduce a código objeto; y las directivas indican al ensamblador que realice una acción especifica, como definir un elemento de dato.


6.-
 A).- TITLE
B).- PAGE

 7.-
Segmento de pila: Define el almacen de la pila
Segmento de datos: Define los elementos de datos.
Segmento de código: Proporciona un código ejecutable.


8.-
Tipo Alineacion: La entrada alineación indica el limite en el que inicia el segmento.
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,es utilizada para agrupar segmentos cuando se enlazan.



9.-
A) El nombre del procedimiento debe estar presente, ser único y seguir las reglas para la formación de nombres del lenguaje.
B) La directiva ENDP indica el fin de un procedimiento.
C) El operando FAR esta relacionado con la ejecicion del programa y el operando NEAR codifica cada PROC adicional.

 10.-
A) Directiva END
B) Directiva ENDP
C) Directiva ENDS

 
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.-
STACKSG con el SS, DATASG con el DS y CODESG con el CS
ASSUME SS:STACKSG, DS: DATASG, CS: CODESG

 13.-
A) El MOV carga la dirección del segmento de datos en el registro AX.
B) Estos enunciados definen el segmento de código del único procedimiento, llamado BEGIN.
 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.




15.-

A) DD: Palabra doble
B) DW: Palabra
C) DT: Diez bytes
D) DQ: Palabra Cuadruple
E) DB: Byte

 16.- DB “TITLE! RGB Electronics”

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

18. Muestre el código objeto hexadecimal generado por

a) DB '28' = 0001 22 28

b) DB 28 = 0001 1C

19. Determine el código objeto hexadecimal ensamblado para

a) DB 28H = 0001 28

b) DW 2845H = 0030 2845

c) DD 28733AH = 004A 3A732800

d) DQ 28733AH = 0062 3A73280000000000

ENTRADA DESDE EL TECLADO



martes, 8 de octubre de 2013

CONJUNTO DE INSTRUCCIONES

CONJUNTO DE INSTRUCCIONES

INSTRUCCIONES DE TRANSFERENCIA DE DATOS


Las instrucciones de transferencia de datos son las siguientes:

  • MOVE                                      Transfiere
  • XCHG                                       Intercambia
  • IN                                              Entrada
  • OUT                                          Salida
  • XLAT                                       Traduce usando una tabla
  • LEA                                          Carga la direccion efectiva
  • LDS                                          Carga el segmento de datos
  • LES                                           Carga el segemento extra
  • LAHF                                        Carga los indicadores en AH
  • SAHF                                        Guarda AH en los indicadores
  • PUSH FUENTE                        (sp)<---- fuente
  • POP  DESTINO                         destino<-------(sp)

CONTROL DE BUCLES

Un bucle es un bloque de codigo que se ejecuta varias veces. Hay 4 tipos de bucles basicos:

  1. Bucles sin fin
  2. Bucles por conteo
  3. Bucles hasta
  4. Bucles mientras
Las instrucciones de control son las siguientes:

  • INC                           Incrementar
  • DEC                          Decrementar
  • LOOP                       Realizar un bucle
  • LOOPZ,LOOPE       Realizar un bucle si es cero
  • LOOPNZ,LOOPNE  Realizar un bucle si no es cero
  • JCXZ                         Salta si CX es cero.

INSTRUCCIONES DE PRUEBA , COMPARACION Y SALTOS

  • TEST                                          Verifica
  • CMP                                           Compara
  • JMP                                            Salta
  • JE, JZ                                         Salta si es igual a cero
  • JNE, JNZ                                    Salta si no es igual a cero
  • JS                                                Salta si es signo negativo
  • JNS                                             Salta si no es signo negativo
  • JP, JPE                                        Salta si paridad par
  • JNP, JOP                                    Salta si paridad impar
  • JO                                               Salta si hay capacidad excedida
  • JNO                                            Salta si no hay capacidad excedida
  • JB, JNAE                                   Salta si por abajo (no encima o igual )
  • JNB,  JAE                                  Salta si no esta por abajo (Encima o igual)
  • JBE, JNA                                   Salta si por abajo o igual (no encima)
  • JNBE,  JA                                  Salta si no por abajo o igual (encima)
  • JL, JNGE                                   Salta si  menor que (no mayor o igual)
  • JNL, JGE                                   Salta  si no menor que(mayor o igual)
  • JLE, JNG                                   Salta si  menor que o igual(no mayot)
  • JNLE; JG                                   Salra si no menos que o igual(mayor)

INSTRUCCIONES DE LLAMADO Y RETORNO DE SUBRUTINAS

  • CALL                                            Llamada a subrutina
  • RET                                               Retorno al programa o subrutina que llamo.

INSTRUCCIONES ARITMETICAS

  1. Grupo de adicion:
  • ADD                       Suma
  • ADC                       Suma con acarreo
  • AAA                      Ajuste ASCII para la suma
  • DAA                       Ajuste decimal para la suma
     2. Grupo de sustraccion:

  1. Grupo de multiplicacion:
  2. Grupo de division:
  3. Conversiones:
  4. Tratamiento de cadenas:

Mi primer programa ensamblador