Problema: escriba un programa para encontrar el complemento de 1 y 2 de un número de 8 bits donde la dirección inicial es 2000 y el número se almacena en la dirección de memoria 3000 y almacena el resultado en las direcciones de memoria 3001 y 3002 .
Ejemplo –
Algoritmo –
- Cargue los datos de la memoria 3000 en A (acumulador)
- Complemento contenido del acumulador
- Almacenar el contenido del acumulador en la memoria 3001 (complemento a 1)
- Agregar 01 al contenido del acumulador
- Almacenar el contenido del acumulador en la memoria 3002 (complemento a 2)
- Deténgase
Programa –
Memoria | Mnemotécnica | operandos | Comentario |
---|---|---|---|
2000 | LDA | [3000] | [A] <- [3000] |
2003 | CMA | [A] <- [A^] | |
2004 | ESTA | [3001] | complemento a 1 |
2007 | IDA | 01 | [A] <- [A] + 01 |
2009 | ESTA | [3002] | complemento a 2 |
200C | HLT | Deténgase |
Explicación –
- A es un acumulador de 8 bits que se utiliza para cargar y almacenar los datos directamente
- LDA se usa para cargar el acumulador directamente usando una dirección de 16 bits (instrucción de 3 bytes)
- CMA se utiliza para complementar el contenido del acumulador (instrucción de 1 byte)
- STA se usa para almacenar el acumulador directamente usando una dirección de 16 bits (instrucción de 3 bytes)
- ADI se usa para agregar datos al acumulador inmediatamente (instrucción de 2 bytes)
- HLT se utiliza para detener el programa