ensamblador

4
- Modo de direcionamiento empleado en cada instrucción. Direccionamiento inmediato. El operando es un dato inmediato contenido en la instrucción, con lo que el tamañ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 memoria consecutivas, 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 el contenido del registro BX. · Direccionamiento relativo a contador de programa. Este tipo de direccionamiento se utiliza en las instrucciones de salto condicional, en las que la dirección de salto se obtiene sumando al registro IP el desplazamiento 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, memoria Direccionamiento directo: 1000101W 00rrr110 LSB dir MSB dir

Upload: somos-mas-que-pro

Post on 30-Jul-2015

1.303 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Ensamblador

- 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

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

- ¿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