Microprocesadores
El MC68000 permite 12 modos de direccionamiento para localizar a los operandos. Podemos dividir los modos de direccionamiento en 5 grupos: Directo de registro : el operando es el dato contenido en un registro de datos o de direcciones. Incluye: directo de registro de datos y directo de registro de direcciones. ●Indirecto de registro: El operando se encuentra enmemoria y es necesario obtener su dirección a partir de un registro de direcciones. Incluye: Indirecto de registro, indirecto de registro con postincremento, indirecto de registro con predecremento, indirecto de registro con desplazamiento e indirecto de registro indexado con desplazamiento. ●Absoluto: el operando está en memoria y se da su dirección explicitamente. Incluye: absoluto largo y absolutocorto. ●Relativo al contador del programa: La dirección del operando es relativa al contenido del PC. Incluye: relativo al PC con desplazamiento y relativo al PC indexado con desplazamiento. ● Inmediato: El operando se expresa de forma explícita.
●
1
7. Modos de direccionamiento
Directo de Registro Datos:
El operando está en el registro de datos especificado por la dirección efectiva. •Sintáxis: MNEMÓNICO.N Ejemplo: Dn,OPERANDO_DESTINO
2
7. Modos de direccionamiento
Directo de Registro Direcciones:
El operando está en el registro de direcciones especificado por la instrucción. • Sintáxis: MNEMÓNICO.N Ejemplo: An,OPERANDO_DESTINO
3
7. Modos de direccionamiento
* Programa 4.1: las horas antigúas están en D1 y las que hay que *añadir en D2 MOVE.L D1,D3 Las horasantigúas están en D3 ADD.L D2,D3 las horas totales en D3 BVS ERROR salta a etiqueta ERROR si hay desbordamiento BEQ CERO Salta a CERO si el total es cero .........
4
7. Modos de direccionamiento
Indirecto de Registro Direcciones:
El operando está en la posición de memoria indicada por el registro de direcciones especificado en la instrucción. Sintáxis: MNEMÓNICO.N Ejemplos:(An),OPERANDO_DESTINO
5
7. Modos de direccionamiento
* Programa 4.2: las horas antigúas están en una doble palabra en la dirección * $6000 y las que hay que añadir en $6004 * Poner las direcciones en registros de dirección MOVEA.L #$6000, A1 A1 contiene $6000 MOVEA.L #$6004,A2 A2 contiene $6004 MOVEA.L #$6008,A3 A3 contiene $6008 MOVE.L (A1),D3 Las horas antigúas están en D3 ADD.L (A2),D3 las horas totalesen D3 MOVE.L D3,(A3) Las horas totales están en la dirección $6008 de la memoria BVS ERROR salta a etiqueta ERROR si hay desbordamiento BEQ CERO Salta a CERO si el total es cero .........
6
7. Modos de direccionamiento
Indirecto de Registro Direcciones con Postincremento: El operando está en la posición de memoria indicada por el registro de direcciones especificado en la instrucción.Después de acceder, el registro de direcciones se incrementa en 1, 2 o 4 unidades dependiendo si el tamaño del operando es byte, palabra o palabra larga respectivamente. •Sintáxis: MNEMÓNICO.N Ejemplos: (An)+,OPERANDO_DESTINO
7
7. Modos de direccionamiento
Se usa para el recorrido de arrays monodimensionales desde las direcciones más bajas a las más altas. También parala recuperación de datosde la pila * Programa 4.3: Modificación del programa 4.2 para utilizar este modo * Poner las direcciones en registros de dirección MOVEA.L #$6000, A1 A1 contiene $6000 MOVE.L (A1)+,D3 Las horas antigúas están en D3, se suma 4 al puntero A1 ADD.L (A1)+,D3 las horas totales en D3, A1 se incrementa en 4 MOVE.L D3,(A1) Las horas totales están en la dirección $6008 de la memoria BVS ERROR salta aetiqueta ERROR si hay desbordamiento BEQ CERO Salta a CERO si el total es cero .........
8
7. Modos de direccionamiento
* Programa 4.4: Copia una cadena de caracteres ASCII de una posición a otra
*de la memoria. A1 apunta al primer caracter ASCII del bloque de texto almacenado * en la memoria. Se supone que el último caracter es el ASCII nulo.
LAZO TST.B (A1) ¿hemos alcanzado un nulo?...
Regístrate para leer el documento completo.