Programa Ensamblador 8085: Probar si un Número es Par o Impar

A continuación se presenta un programa 8085 limpio y comentado que lee un número de un dígito de una rutina de entrada simulada, prueba el bit menos significativo e imprime "EVEN" u "ODD". Asume una simple pantalla mapeada en memoria en 2000H y una rutina de teclado en GETCHAR.

 ORG 1000H LXI SP, 2000H ; Stack pointer START: CALL GETNUM ; Returns digit (0-9) in A ANI 01H ; Mask all but LSB JZ EVEN ; If zero → even ; --- ODD --- MVI C, 'O' CALL PUTCHAR MVI C, 'D' CALL PUTCHAR MVI C, 'D' CALL PUTCHAR JMP DONE EVEN: MVI C, 'E' CALL PUTCHAR MVI C, 'V' CALL PUTCHAR MVI C, 'E' CALL PUTCHAR MVI C, 'N' CALL PUTCHAR DONE: HLT ;------------------------------------------------ ; Subroutine: GETNUM – read ASCII digit, return binary in A ;------------------------------------------------ GETNUM: CALL GETCHAR ; ASCII in A SUI '0' ; Convert '0'-'9' → 0-9 RET ;------------------------------------------------ ; Subroutine: PUTCHAR – output char in C to memory-mapped display ;------------------------------------------------ PUTCHAR: MOV A, C STA 2000H ; Display port RET ;------------------------------------------------ ; Dummy GETCHAR – replace with your hardware routine ;------------------------------------------------ GETCHAR: MVI A, '5' ; Test value RET 

Cómo Funciona

  1. ANI 01H aísla el bit 0 (LSB).
  2. JZ EVEN salta si LSB = 0 (par).
  3. De lo contrario, continúa para imprimir "ODD".
  4. Cada carácter se envía a una pantalla mapeada en memoria en 2000H a través de PUTCHAR.

Adapta GETCHAR/PUTCHAR a tu hardware específico (SDK-85, simulador, etc.).