ensamblador
TRANSCRIPT
![Page 1: Ensamblador](https://reader035.vdocumento.com/reader035/viewer/2022071703/55b9ab51bb61ebc2038b4676/html5/thumbnails/1.jpg)
- Modo de direcionamiento empleado en cada instrucción.Direccionamiento inmediato.El operando es un dato inmediato contenido en la instrucción, con lo que eltamaño de la instrucción viene condicionado por el tamaño del operando.
· Direccionamiento directo.En la instrucción se indica la dirección real de memoria en la que estácontenido el operando. Si el operando ocupa varias posiciones de memoriaconsecutivas, en la instrucción figurará la dirección más baja.
· Direccionamiento indirecto a través del registro BX.La dirección de memoria donde está el operando viene determinada por elcontenido del registro BX.
· Direccionamiento relativo a contador de programa.Este tipo de direccionamiento se utiliza en las instrucciones de saltocondicional, en las que la dirección de salto se obtiene sumando al registro IP eldesplazamiento contenido en la propia instrucción.
- Origen y destino de los datos en todas las instrucciones de trasferencia.
MOV memoria, registro· Direccionamiento directo:
1000100W 00rrr110 LSB dir MSB dir· Direccionamiento indirecto:
1000100W 00rrr111
MOV registro, memoriaDireccionamiento directo:
1000101W 00rrr110 LSB dir MSB dirDireccionamiento indirecto:
1000101W 00rrr111
MOV memoria, dato inmediato· Direccionamiento directo:
1100011W 00000110 LSB dir MSB dir LSB dato MSB datoDireccionamiento indirecto:
1100011W 000000131 LSB dato MSB dato
MOV registro, dato inmediato1011Wrrr LSB dato MSB dato14
MOV registro, REGISTRO1000101W 11rrrRRR
- ¿Consideras las instrucciones 5 y 6 equivalentes?
![Page 2: Ensamblador](https://reader035.vdocumento.com/reader035/viewer/2022071703/55b9ab51bb61ebc2038b4676/html5/thumbnails/2.jpg)
Sí, ya que los dos escriben un dato en memoria.
- ¿Consideras la instrucción 7 equivalente a la 8y 9 en conjunción?No, ya que cada uno apunta a un punto de memoria distinto.
- ¿Que diferencias existen entre la instrucción 10 y la 14?El la línea 10 se utiliza el modo de direccionamiento directo y en la línea 14Modo de direccionamiento indirecto.Los “[]” indican que el direccionamiento es indirecto hacia “BX”.
- ¿Qué hace el programa? ORG 700H – Escribe 700 en Hexadecimal en la posición ORG de memoriaSUM1 DW 100H – Declaramos la variable SUM1 de tipo DobleWord con valor 100 en Hexadecimal
ORG 500H – Escribe 500 en Hexadecimal en la dirección de memoria ORG
MOV AX, 123H – Mueve 123 en Hexadecimal a la dirección de memoria AX borrando lo que contiene esta
MOV AX, SUM1 – Mueve el contenido de SUM1 a la dirección de memoria AX borrando lo que contiene esta
MOV BX, 200H – Mueve 200 en Hexadecimal a la dirección de memoria BX borrando lo que contiene esta
MOV BL, 0H – Mueve 0 en Hexadecimal a la dirección de memoria BL borrando lo que contiene esta
MOV BH, 20H – Mueve 20 en Hexadecimal a la dirección de memoria BH borrando lo que contiene esta
ADD BX, AX – A lo que hay en el registro BX le sumamos lo que hay en el registro AX
MOV CX, 702H – Mueve 702 en Hexadecimal a la dirección de memoria CX borrando lo que contiene esta
MOV BX, CX – Movemos el contenido de la dirección de memoria CX a la dirección BX borrando lo que contiene esta
ADD [BX], AX – A la dirección de memoria BX le sumamos lo que contiene la dirección de memoria AX (Direccionamiento indirecto a BX)
HLT – Paramos
END – Fin del programa
![Page 3: Ensamblador](https://reader035.vdocumento.com/reader035/viewer/2022071703/55b9ab51bb61ebc2038b4676/html5/thumbnails/3.jpg)
- ¿Cómo se expresa en ensamblador cada modo de direccionamiento?Modo registro: MOV destino, origen (MOV AX, BX);Modo inmediato: MOV registro, valor (MOV AH, 9);Modo directo: MOV AH, [0000];Modo indirecto: MOV AL, [SI];
- ¿Qué ocurriría si sustituyéramos la instrucción 12 por “MOV CX, 050EH”?Que en vez de escribir 702H en Hexadecimal en la dirección de memoria CX, movería 050E en Hexadecimal en esta misma dirección de memoria