Es c ue la Su pe ri or d e In ge n ier ía M ec án ic a y Elé c tr ic a Ingen iería en Com pu tación Nom bre de la Materia Tipos de direccionamiento de la arquitectura X86 Gonzales León Christian, Hernández Sanabria José Blas
[email protected],
[email protected] Resumen: Utilizando Resumen: Utilizando el emulador emu8086 se ejemplificará prácticamente los tipos de direccionamiento del microprocesador del mismo nombre. Para ello se codificará un pequeño código donde se ilustre el direccionamiento directo, indirecto e inmediato. Palabras Clave: direccionamiento, Clave: direccionamiento, segmento, desplazamiento. Objetivo: Reconocer Objetivo: Reconocer los tipos de direccionamiento de memoria del microprocesador 8086. Introducción El modo de direccionamiento indica la forma de interpretar la información contenida en cada campo del operando. Los registros del microprocesador 8086 son de 16 bits, lo que equivale a tener 65536 direcciones, es decir, 64 kbytes. Sin embargo para direccionar direccionar memoria es necesario utilizar dos registros: uno de segmento y otro de desplazamiento (offset). La notación de dirección segmentada se denota por: segmento: desplazamiento. desplazamiento. Para obtener la dirección de memoria real se utiliza la siguiente formula, Dir = segmento*16 + desplazamiento
(1)
En la ecuación (1) al multiplicar por 16 se 20 consiguen 4 bits más con lo que se alcanzan 2 = 1024 kbytes o 1Mb de memoria direccionable, los valores para las direcciones reales van desde cero (00000) hasta FFFFFh. Existen seis tipos de direccionamiento en el 8086, para este reporte sólo se hará mención a tres. Valor o inmediato El dato a direccionar se ingresa de manera inmediata, es decir, el valor que se desea en decimal o hexadecimal. MOV AX, 9
Directo Se utiliza para referirse al contenido de una localidad de memoria. MOV BX, [0100h] MOV AX, BX Indirecto Se utiliza para referirse al contenido al que apunta un registro o una localidad de memoria. MOV AX, [BX] MOV AX, [BX + 0Ah]
Desarrollo Para conocer y diferenciar los tipos de direccionamiento principales del 8086 se realizo la codificación del siguiente código: org 100h………………………1 mov AH, 0FFh………………2 mov BL, AH…………………3 mov SI, 3…………………….4 mov CH, [0100h]……………5 mov CL, [0100h + SI]……….6 mov DH, [0100h + 3]………..7 ret……………………………..8 En el código se observan los tres principales tipos de direccionamiento de memoria, el inmediato, directo e indirecto. Resultados En la línea 2 se observa que los parámetros de la instrucción MOV son el registro acumulador como destino y un valor (constante) como origen, de allí que el direccionamiento sea inmediato. Eso significa que en la casilla de AH aparecerá el número FF.
Pag. 1
En la línea 3 los parámetros de la instrucción son dos registros, por lo que es un direccionamiento directo, de allí que BL obtendrá el valor de AH, es decir, FF. En la línea 4 hay otro direccionamiento inmediato de un número 3 en base decimal al registro SI. Los movimientos de los datos se pueden observar en la figura 1.
Figura 2. Fin del código de los tipos de direccionamiento. En los apuntadores se observan los valores finales.
Conclusión De acuerdo al desarrollo de la práctica pude identificar los tres principales tipos de direccionamiento: inmediato, directo e indirecto. Además aprendí que la memoria esta segmentada en espacios de 64kbytes. Figura 1. Código del tipo de direccionamiento del 8086
Referencias
En la línea 5 hay otro direccionamiento directo de la localidad de memoria 0100h al registro contador, por lo cual en CH aparecerá el contenido de 0100h,, en este caso es el número en base hexadecimal B4. La siguiente instrucción indica un direccionamiento indirecto. Donde los parámetros entre corchetes son la localidad de memoria o registro y el offset respectivamente. Por último la línea 7 indica otro direccionamiento indirecto de la dirección de memoria 0100h a DH.
Pag. 2
Pag. 3