Ensamblador

1,401 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,401
On SlideShare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ensamblador

  1. 1. - 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 Direccionamiento indirecto: 1000101W 00rrr111 MOV memoria, dato inmediato · Direccionamiento directo: 1100011W 00000110 LSB dir MSB dir LSB dato MSB dato Direccionamiento indirecto: 1100011W 000000131 LSB dato MSB dato MOV registro, dato inmediato 1011Wrrr LSB dato MSB dato 14 MOV registro, REGISTRO 1000101W 11rrrRRR - ¿Consideras las instrucciones 5 y 6 equivalentes?
  2. 2. 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 14 Modo 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 memoria SUM1 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
  3. 3. - ¿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

×