0% encontró este documento útil (0 votos)
104 vistas19 páginas

Modos de Direccionamiento en Assembler

Este documento describe los diferentes modos de direccionamiento de memoria y las instrucciones de assembler. Explica los modos de direccionamiento directo, registro, inmediato, indirecto, basado, basado más índice e implícito de pila. También proporciona ejemplos del uso de las instrucciones MOV con diferentes modos de direccionamiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
104 vistas19 páginas

Modos de Direccionamiento en Assembler

Este documento describe los diferentes modos de direccionamiento de memoria y las instrucciones de assembler. Explica los modos de direccionamiento directo, registro, inmediato, indirecto, basado, basado más índice e implícito de pila. También proporciona ejemplos del uso de las instrucciones MOV con diferentes modos de direccionamiento.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD NACIONAL DE TRUJILLO.

DIRECCIONAMIENTO DE MEMORIA E
INSTRUCCIONES DE ASSEMBLER
César Arellano Salazar.

ARQUITECTURA Y ORGANIZACIÓN Docente Regular UNT.

DE COMPUTADORAS.
INGENIERIA DE SISTEMAS - V CICLO. SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO
La dirección de segmento se almacena en el
registro de segmento (DS, ES, SS o CS)

RAM DE EL registro de segmento se multiplica por 16 antes


de utilizarse para obtener la dirección real.
256Mbytes
El registro de segmentación siempre se usa para
referenciar a memoria.
La base se almacena en el registro base (BX o BP).

DATO 005FD60 El índice se almacena en el registro índice (SI o DI).


Cualquiera de estas dos cantidades, la suma de las
[0320] dos o ninguna, pueden utilizarse para calcular la
005FA40 dirección real, pero no pueden sumarse dos bases o
dos índices.

0000 0000 0000 0000 0000 0000 0000

Dirección de memoria en binario SESIÓN Nº03


DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

La instrucción MOV, realiza el movimiento de


MOV DESTINO , FUENTE una fuente a un destino, la fuente puede ser
un valor numérico, el valor de un registro o
una posición de memoria; el destino puede
ser un registro interno o una posición de
memoria.
El tamaño del dato a mover, (la cantidad de
bytes a mover) dependerá del registro que
aparece en la instrucción.

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

Modo inmediato
MOV REGISTRO , VALOR
· Tiene dos operandos: un registro y una
constante que se usa por su valor.

MOV AX , 03AF · El valor constante no se tiene que buscar en


memoria, pues ya se obtuvo al hacer el “fetch” de
la instrucción.
MOV BH , 4A

MOV DL , F0

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

Modo REGISTRO
MOV REGISTRO , REGISTRO
· Usa solamente registros como operandos

· Es el más rápido, pues minimiza los recursos


MOV AX , CX necesarios (toda la información fluye dentro del
EU del CPU)

MOV BH , AL

MOV EAX , EDX

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

Modo DIRECTO
MOV REGISTRO , [ VALOR ]
Uno de los operandos involucra una localidad
específica de memoria

MOV AX , [ 0160 ] El valor constante se tiene que buscar en


memoria, en la localidad especificada.

MOV BH , [ 0340 ]
Es más lento que los anteriores, pero es el más
rápido para ir a memoria, pues ya “sabe” la
localidad, la toma de la instrucción y no la tiene
Accede siempre al segmento de datos que calcular.
al desplazamiento indicado por el
valor dentro de los corchetes SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

Modo INDIRECTO
MOV REGISTRO , [ REG INDI ] Se usan los registros SI, DI como apuntadores

El operando indica una localidad de memoria,


MOV AX , [ DI ] cuya dirección (sólo la parte desplazamiento)
está en SI o DI.

Puede usar el registro base BX en remplazo de


MOV BH , [ SI ] SI o DI.

Accede siempre al segmento de datos


al desplazamiento indicado por el
registro índice SI o DI SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

Modo BASADO + INDICE


MOV REGISTRO , [ BX ó BP+ BX o BP indica una localidad base de la
RegIndice] memoria

MOV AX , [ BX+DI ] A partir de BX o BP, se puede tener un


desplazamiento variable y uno constante:
[ BX+SI ] ó [ BX+345 ] ó [ BX+ DI + 0900 ]
MOV BH , [ BP+SI ] [ BP+SI ] ó [ BP+345 ] ó [ BP+ DI + 0900 ]

Cuando usa BX accede al segmento de datos


Cuando usa BP accede al segmento de pila
SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO
Basado: Basado-indexado :
Directo:
MOV CX, [BX+30h] MOV AX, [BX+DI]
MOV AX, [2000h]
MOV AX, [BP+45h] MOV AX, [BX+SI]

MOV DX, [BX+0A30h] MOV DX,[BP+DI]


Indirecto:
MOV AX, [BP+4E90h] MOV DX,[BP+SI]
MOV AX, [BX]
Indexado: Basado-indexado con desplazamiento:
MOV CX, [DI]
MOV AX, [SI+40h] MOV AX, [BX+DI + 3Eh]
MOV AX, [SI]
MOV CX, [DI+25h] MOV AX, [BX+DI + 3B09h]

MOV AX, [SI+0566h]


SESIÓN Nº03
MOV AX, [DI+45EEh]
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
MODOS DE DIRECCIONAMIENTO

Modo IMPLICITO DE PILA


PUSH AX
Depende solamente de la instrucción, es decir,
la instrucción no lleva parámetros.
Byte 2
Usa el registro puntero de pila SP.
[SP] Byte 1
La apilación decrementa en 2 el valor de SP
SEGMENTO
POP BX DE PILA La desapilación incrementa en 2 el valor de SP

Cuando usa BX accede al segmento de datos


Cuando usa BP accede al segmento de pila
SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
EJEMPLOS DE DIRECCIONAMIENTO

RAM SEG : DESPLA


DS = 6FA0 AX = 0203 BX = 3578 [FFFF]

27 [ 0408 ] DS : 0408
MOV AX , [ 0400 ]
4A [ 0401 ]
04 [ 0400 ] DS : 0400
DS = 06FA0 AX = 4A04 BX = 3578
SEGMENTO
DE DATOS
MOV BH , [ 0408 ] [0000] 006FA40
006FA00 DS x 10h

DS = 06FA0 AX = 0203 BX = 2778


SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
EJEMPLOS DE DIRECCIONAMIENTO

DS = 6FA0 SI = 0000 DI = 000A RAM SEG : DESPLA


AX = 0203 BX = 0600 CX = 0000 [FFFF]

7B [ 060A ] DS : 060A
MOV CX , [ BX + SI ]
FF [ 0601 ]
36 [ 0600 ] DS : 0600
AX = 0203 BX = 0600 CX = FF36
SEGMENTO

MOV AL , [ BX + DI ] [0000]
DE DATOS
006FA00 DS x 10h

AX = 027B BX = 0600 CX = FF36


SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER
EJEMPLOS DE DIRECCIONAMIENTO

SS = 5FA0 SI = 0001 DI = 0008 BP = 0200 RAM SEG : DESPLA


AX = FFFF BX = 5679 CX = 2222 [FFFF.]
59
5C [ 0208 ] SS : 0208
MOV CH , [ BP + SI ]
06 [ 0201 ]
08 [ 0200 ] SS : 0200
AX = FFFF BX = 5679 CX = 0622
SEGMENTO

MOV BX , [ BP + DI ] [0000]
DE PILA
005FA00 SS x 10h

AX = FFFF BX = 595C CX = FF36


SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER

INSTRUCCIONES DE ASSEMBLER

INSTRUCCIONES DE
TRANSFERENCIA DE DATOS.
Estas instrucciones mueven
datos de una parte a otra del
sistema; desde y hacia la
memoria principal, de y a los
registros de datos, puertos de
E/S y registros de
segmentación.

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER

INSTRUCCIONES DE ASSEMBLER

INSTRUCCIONES DE CONTROL
DE BUCLES.
Éstas posibilitan el grupo de
control más elemental de
nuestros programas. Un bucle es
un bloque de código que se
ejecuta varias veces. Hay 4 tipos
de bucles básicos: Bucles sin fin,
Bucles por conteo, Bucles hasta Y
Bucles mientras

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER

INSTRUCCIONES DE ASSEMBLER
INSTRUCCIONES DE TRANSFERENCIA
CONDICIONAL DE CONTOL.

CMP REG1,REG2

Se comparan dos registros en el


orden establecido.

JA DESPLAZMIENTO

Salta al desplazamiento
indicado si REG1 > REG2

(encima es mayor, debajo es


menor)

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER

INSTRUCCIONES DE ASSEMBLER
Instrucciones para comparar
dos enteros con signo

Instrucciones usadas según


el estado de las banderas
(registro flag)

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER

INSTRUCCIONES DE ASSEMBLER

INSTRUCCIONES ARITMETICAS

Instrucciones de
multiplicación y división

Instrucciones de adición y
substracción

SESIÓN Nº03
DIRECCIONAMIENTO DE MEMORIA E INSTRUCCIONES ASSEMBLER

INSTRUCCIONES DE ASSEMBLER
INSTRUCCIONES
DE OPERACIONES
LOGICAS

Instrucciones lógicas que


aplican bit a bit en un registro

Instrucciones de Desplazamiento y Rotación

SESIÓN Nº03

También podría gustarte