PARCIAL
unknown
assembly_x86
4 years ago
1.6 kB
21
Indexable
; MOSTRAR EN PANTALLA EL MENSAJE Y LEER UN CARACTER. SI NO CORRESPONDE ; A UN NUMERO DEL 1 AL 9 DEBE VOLVER A LEER. LUEGO ESPERA A QUE SE APRETE F10 ; SI EL NUMERO NO ES PAR IMPRIMIR "NO ES PAR" SINO IMPRIMIR NUMEROS PARES MEDIANTE LA PIO ; HASTA EL 8 DESDE EL NUMERO. NUM DEBE PASARSE A LA RUTINA POR REFERENCIA EOI EQU 20H IMR EQU 21H INT0 EQU 24H INT1 EQU 25H IDF10 EQU 10 CONT EQU 10H COMP EQU 11H PA EQU 30H PB EQU 31H CA EQU 32H CB EQU 33H ORG 1000H MSJ DB "Ingrese un numero del 1 al 9" END_MSJ DB ? MSJ_ODD DB "NO ES PAR" ODD_END DB ? NUM DB ? ON_F10 DB 0 ORG 3000H F10: MOV ON_F10, 1 MOV DL, [BX] CMP DL, 1 JZ EVEN MOV BX, OFFSET MSJ_ODD MOV AL, OFFSET ODD_END - MSJ_ODD INT 7 MOV AL, 20H OUT EOI, AL IRET EVEN: MOV BX, DX POLL: IN AL, PA AND AL, 1 JNZ POLL MOV AL, DL OUT PB, AL IN AL, PA OR AL, 2 OUT PA, AL IN AL, PA AND AL, 0FDH OUT PA, AL ADD DL, 2 CMP DL, 38H JNS EVEN MOV AL, 0FCH OUT IMR, AL IRET ORG 2000H MOV BX, 40 MOV AX, F10 MOV [BX], AX CLI ;-----------PIC------------ MOV AL, 0FCH OUT IMR, AL MOV AL, IDF10 OUT IMR, AL STI;--------------------------- READ: MOV BX, OFFSET MSJ MOV AL, OFFSET END_MSJ - OFFSET MSJ INT 7 MOV BX, OFFSET NUM INT 6 CMP NUM, 31H JS READ CMP NUM, 39H JNS READ MOV AL, 0FDH OUT CA, AL MOV AL, 0 OUT CB, AL MOV BX, OFFSET NUM LOOP: CMP ON_F10, 0 JZ LOOP INT 0 END
Editor is loading...