Abaixo está um programa 8085 limpo e comentado que lê um número de um dígito de uma rotina simulada de entrada, testa o bit menos significativo, e imprime "PAR" ou "ÍMPAR". Assume display mapeado em memória em 2000H e rotina de teclado em GETCHAR.
ORG 1000H LXI SP, 2000H ; Stack pointer START: CALL GETNUM ; Retorna dígito (0-9) em A ANI 01H ; Mascara todos menos LSB JZ PAR ; Se zero → par ; --- ÍMPAR --- MVI C, 'I' CALL PUTCHAR MVI C, 'M' CALL PUTCHAR MVI C, 'P' CALL PUTCHAR MVI C, 'A' CALL PUTCHAR MVI C, 'R' CALL PUTCHAR JMP FIM PAR: MVI C, 'P' CALL PUTCHAR MVI C, 'A' CALL PUTCHAR MVI C, 'R' CALL PUTCHAR FIM: HLT ;------------------------------------------------ ; Subrotina: GETNUM – lê dígito ASCII, retorna binário em A ;------------------------------------------------ GETNUM: CALL GETCHAR ; ASCII em A SUI '0' ; Converte '0'-'9' → 0-9 RET ;------------------------------------------------ ; Subrotina: PUTCHAR – output char em C para display memory-mapped ;------------------------------------------------ PUTCHAR: MOV A, C STA 2000H ; Porta display RET ;------------------------------------------------ ; Dummy GETCHAR – substitua por sua rotina hardware ;------------------------------------------------ GETCHAR: MVI A, '5' ; Valor teste RET ANI 01H isola bit 0 (LSB).JZ PAR salta se LSB = 0 (par).PUTCHAR.Adapte GETCHAR/PUTCHAR para seu hardware específico (SDK-85, simulador, etc.).
Tecnologia Eletrônica © [www.351231.com]