Problema: escriba un programa para intercambiar dos números de 16 bits usando el modo de direccionamiento directo donde la dirección inicial es 2000 y el primer número de 16 bits se almacena en 3000 y el segundo número de 16 bits se almacena en la dirección de memoria 3002 .
Ejemplo –
Algoritmo –
- Cargue un número de 16 bits de la memoria 3000 en un par de registros (HL)
- Intercambiar los pares de registros
- Cargue un número de 16 bits de la memoria 3002 en un par de registros (HL)
- Intercambiar ambos pares de registros
- Deténgase
Programa –
Memoria | Mnemotécnica | operandos | Comentario |
---|---|---|---|
2000 | LHLD | [3000] | [HL] <- [3000] |
2003 | XCHG | [HL] [DE] | |
2004 | LHLD | [3002] | [HL] <- [3002] |
2007 | XCHG | [HL] [DE] | |
2008 | HLT | Deténgase |
Explicación: el par de registros (HL) y el par (DE) se utilizan para fines generales.
- LHLD se usa para cargar el par de registros HL directamente usando una dirección de 16 bits (instrucción de 3 bytes)
- 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.