Problema: escriba un programa de lenguaje de nivel ensamblador para convertir el código ASCII a su respectivo código HEX.
Ejemplos:
Input: DATA: 31H in memory location 2050 Output: DATA: 0BH in memory location 3050
Suponga que la dirección inicial del programa, la ubicación de la memoria de entrada y las ubicaciones de la memoria de salida son 2000, 2050 y 3050 respectivamente.
Algoritmo –
- Ingrese el contenido de 2050 en el acumulador.
- Reste 30H del acumulador.
- Compare el contenido del acumulador con 0AH.
- Si el contenido del acumulador es inferior a 0A, vaya al paso 6; de lo contrario, vaya al paso 5.
- Reste 07H del acumulador.
- Almacene el contenido del acumulador en la ubicación de memoria 3050.
- Terminar el programa.
Programa –
DIRECCIÓN | MNEMOTÉCNICA | COMENTARIOS |
---|---|---|
2000 | LDA 2050 | A<-[2050] |
2003 | IUE 30H | A<-A-30 |
2005 | IPC 0AH | |
2007 | JC 200D | comprobar para llevar |
200B | IUE 07H | A<-A-07H |
200D | STA 3050 | [3050]<-A |
2010 | HLT | Detener la ejecución |
Explicación –
- LDA 2050 carga el contenido de la ubicación de memoria 2050 en el acumulador.
- SUI 30H resta 30H inmediatamente del acumulador.
- CPI 0AH compara inmediatamente 0AH con los datos del acumulador.
- JC 200D verifique el acarreo si es así, luego vaya a la dirección 200D.
- SUI 07H resta 07H inmediatamente del acumulador.
- STA 3050 almacena el contenido del acumulador en la ubicación de memoria 3050.
- HLT detiene la ejecución del programa.
Publicación traducida automáticamente
Artículo escrito por Akashkumar17 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA