Programma assembly 8085: verificare se un numero è pari o dispari
Di seguito un programma 8085 pulito e commentato che legge un singolo numero da una routine di input simulata, testa il bit meno significativo e stampa «PARI» o «DISPARI». Presuppone un semplice display mappato in memoria a 2000H e una routine tastiera GETCHAR.
ORG 1000H LXI SP, 2000H ; Stack pointer START: CALL GETNUM ; Restituisce cifra (0-9) in A ANI 01H ; Maschera tutto tranne LSB JZ PARI ; Se zero → pari ; --- DISPARI --- MVI C, 'D' CALL PUTCHAR MVI C, 'I' CALL PUTCHAR MVI C, 'S' CALL PUTCHAR MVI C, 'P' CALL PUTCHAR MVI C, 'A' CALL PUTCHAR MVI C, 'R' CALL PUTCHAR MVI C, 'I' CALL PUTCHAR JMP FINE PARI: MVI C, 'P' CALL PUTCHAR MVI C, 'A' CALL PUTCHAR MVI C, 'R' CALL PUTCHAR MVI C, 'I' CALL PUTCHAR FINE: HLT ;------------------------------------------------ ; Subroutine: GETNUM – leggi cifra ASCII, restituisci binario in A ;------------------------------------------------ GETNUM: CALL GETCHAR ; ASCII in A SUI '0' ; Converti '0'-'9' → 0-9 RET ;------------------------------------------------ ; Subroutine: PUTCHAR – output char in C a display mappato in memoria ;------------------------------------------------ PUTCHAR: MOV A, C STA 2000H ; Porta display RET ;------------------------------------------------ ; GETCHAR fittizio – sostituisci con la tua routine hardware ;------------------------------------------------ GETCHAR: MVI A, '5' ; Valore di test RET Come funziona
ANI 01Hisola il bit 0 (LSB).JZ PARIsalta se LSB = 0 (pari).- Altrimenti continua a stampare «DISPARI».
- Ogni carattere viene inviato a un display mappato in memoria a 2000H tramite
PUTCHAR.
Adatta GETCHAR/PUTCHAR al tuo hardware specifico (SDK-85, simulatore, ecc.).