Problema: escriba un programa para intercambiar dos números de 8 bits usando el modo de direccionamiento directo donde la dirección inicial es 2000 y el primer número de 8 bits se almacena en 3000 y el segundo número de 8 bits se almacena en la dirección de memoria 3001 .
Ejemplo –
Algoritmo –
- Cargue un número de 8 bits de la memoria 3000 en el acumulador
- Mover el valor del acumulador al registro H
- Cargue un número de 8 bits de la memoria 3001 en el acumulador
- Mover el valor del acumulador al registro D
- Intercambiar ambos pares de registros
- Deténgase
Programa –
Memoria | Mnemotécnica | operandos | Comentario |
---|---|---|---|
2000 | LDA | [3000] | [A] <- [3000] |
2003 | MOVIMIENTO | H, A | [H] <-[A] |
2004 | LDA | [3001] | [A] <- [3001] |
2007 | MOVIMIENTO | D, A | [D] <-[A] |
2008 | XCHG | [HL] [DE] | |
2009 | HLT | Deténgase |
Explicación: los registros A, H, D se utilizan para fines generales.
- LDA se usa para cargar el acumulador directamente usando una dirección de 16 bits (instrucción de 3 bytes)
- MOV se utiliza para transferir los datos (instrucción de 1 byte)
- XCHG se utiliza para intercambiar los datos del par de registros (HL), (DE) (instrucción de 1 byte)
- HLT se utiliza para detener el programa.