Ensamblador - Formato de instrucciones

 
Vista:

Formato de instrucciones

Publicado por kikelo (1 intervención) el 21/01/2005 19:06:34
A ver, una cosa muy sencillita...No entiendo (dentro del formato de instrucciones) el calculo de la direccion efectiva. El MOD=11 mas o menos me entero, pero de los de MOD=00, MOD=01 y MOD=10 no pillo na. Sera que los desplazamientos nunca los llegare a entenderlos. A ver si me los podeis explicar y si no es muxo pediros, incluir algun ejemplo.

Thenkiu por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Formato de instrucciones

Publicado por Geergon (6 intervenciones) el 22/01/2005 04:39:51
Hola!
Cada instrucción está dividida en 4 campos:
Campo 1: Código de operación (opcode)
Campo 2: Modo de direcciónamiento (EA byte)
Campo 3: Desplazamiento de dato
Campo 4: Valor Inmediato

Claro no todas las instrucciones tiene todos los campos, por ejemplo
la instrucción NOP solo es un código de operación, por lo tanto el
opcode puede definir si existe el campo 2, y el campo 2 define el campo
3, y dependiendo del opcode y del byte EA puede que exista o no
el campo 4.

El byte EA a su ves se divide en tres partes:
Parte 1: MOD (2 bits)
Parte 2: REG (3 bits)
Parte 3: R/M (3bits)

El campo Mod tiene 4 valores:
00 -> No hay desplazamiento
01 -> Se usa un byte para desplazamiento
10 -> Se usan dos bytes para desplazamiento
11 -> La parte R/M indicara la misma códificación que
esta establecida para la parte REG.
Esto para realizar transferencias entre registros

Codificación REG para registros de 16 bits:
AX(000),CX(001),DX(010),BX(011)
SP(100),BP(101),SI(110),DI(111)

Codificación REG para registros de 8 bits:
Al(000),Cl(001),Dl(010),Bl011)
Ah(000),Ch(001),Dh(010),Bh(011)

Existe tambien la códificación para el campo
R/M, el cual puede indicar un registro o el tipo de direccionamiento.

Para que te quede mas claro puedes visitar el siguiente enlace:
http://usuarios.lycos.es/tervenet/TUTORIALES/ASM8086/indice.htm
Capitulos 5 y 6. Curso ensamblador por aesoft.

Notas: si no existe desplazamiento (MOD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:parte que falto

Publicado por Geergon (6 intervenciones) el 22/01/2005 04:41:07
Notas: si no existe desplazamiento (MOD=00) el valor que contenga
R/M será omitido.

Att: George
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar