Problema 1: encuentre el complemento a 2 de un número de 8 bits almacenado en la dirección 2050. El resultado se almacena en las direcciones 3050 y 3051. La dirección inicial del programa se toma como 2000.
Ejemplo –
Algoritmo –
- Estamos tomando el complemento del número usando la instrucción CMA .
- Luego sumando 01 al resultado.
- El acarreo generado al agregar 01 se almacena en 3051.
Programa –
Dirección de memoria | Mnemotécnica | Comentario |
---|---|---|
2000 | LDA 2050 | A←2050 |
2003 | CMA | A←complemento de A |
2004 | USD A | A←A+01 |
2005 | MOV L, A | L←A |
2006 | MVI A 00 | A←00 |
2008 | A DC A | A←A+A+Llevar |
2009 | MOV H, A | H←A |
200A | SHLD 3050 | L→3050, H→3051 |
200D | HLT |
Explicación – Registros utilizados: A, H, L
- LDA 2050 carga contenido de 2050 en A
- CMA complementa los contenidos de A
- INR A aumenta A en 01
- MOV L, A copia contenido de A en L
- MVI A 00 mueve 00 en A
- ADC A agrega A, A, Carry y lo asigna a A
- MOV H, A copia contenido de A en H
- SHLD 3050 almacena el valor de H en la ubicación de memoria 3051 y L en 3050
- HLT deja de ejecutar el programa y detiene cualquier ejecución adicional
Problema 2: encuentre el complemento a 2 de un número de 16 bits almacenado en las direcciones 2050 y 2051. El resultado se almacena en las direcciones 3050, 3051 y 3052. La dirección inicial del programa se toma como 2000.
Ejemplo –
Algoritmo –
- Estamos tomando el complemento de los números usando la instrucción CMA .
- Luego agrega 0001 al resultado usando la instrucción INX .
- El acarreo generado al agregar 0001 se almacena en 3052.
Programa –
Dirección de memoria | Mnemotécnica | Comentario |
---|---|---|
2000 | LHLD 2050 | L←2050, H←2051 |
2003 | MOV A, L | A←L |
2004 | CMA | A←complemento de A |
2005 | MOV L, A | L←A |
2006 | MOV A, H | A←H |
2007 | CMA | A←Complemento de A |
2008 | MOV H, A | H←A |
2009 | INXH | HL←HL+0001 |
200A | MVI A 00 | A←00 |
200C | A DC A | A←A+A+Llevar |
200D | SHLD 3050 | L→3050, H→3051 |
2010 | STA 3052 | A→3052 |
2013 | HLT |
Explicación – Registros utilizados: A, H, L
- LHLD 2050 carga contenido de 2051 en H y contenido de 2050 en L
- MOV A, L copia el contenido de L en A
- CMA complementa los contenidos de A
- MOV L, A copia contenido de A en L
- MOV A, H copia el contenido de H en A
- CMA complementa los contenidos de A
- MOV H, A copia contenido de A en H
- INX H agrega 0001 en HL
- MVI A 00 mueve 00 en A
- ADC A suma A, A, Carry y almacena el resultado en A
- SHLD 3050 almacena el valor de H en la ubicación de memoria 3051 y L en 3050
- STA 3052 almacena el valor de A en la ubicación de memoria 3052
- HLT deja de ejecutar el programa y detiene cualquier ejecución adicional
Consulte – Programa 8085 para encontrar el complemento de 1 y 2 de un número de 8 bits
Programa 8085 para encontrar el complemento de 1 y 2 de un número de 16 bits
Publicación traducida automáticamente
Artículo escrito por AnmolAgarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA