18 Conversio de ASCII a binario (capturado)

corrida



codigo
       

import base64
try:





EQU 13
LF EQU 10
IMPRIMIR EQU 9
FIN EQU 4C00H
DOS EQU 21H
TAB EQU 09H
BELL EQU 07H
TECLADO EQU 8
DATOS SEGMENT
    NUMERO_BINARIO DW 0,"$"
    NUMERO_ASCII DB 6,0,6 DUP (?),"$"
    M_ENCABEZADO DB 13,10,13,10,TAB,"================================================="
    DB 13,10,13,TAB,"PROGRAMA QUE CONVIERTE UN NUMERO ASCII (CAPTURADO) A BINARIO"
    DB 13,10,13,TAB,"=================================================================",13,10,"$"
    M_ESPACIO DB 13,10,13,10,13,10,13,10,13,10,13,10,"$"
    M_ASCII_ASCII DB 13,10,13,10,"NUMERO ASCII IMPRESO NORMALMENTE COMO LO HACE UNA PC (EN ASCII)",13,10,"$"
    M_BINARIO_ASCII DB 13,10,13,10,"NUMERO BINARIO (YA CONVERTIDO), ",13,10,"IMPRESO NORMALMENTE COMO LO HACE UNA PC (EN ASCII)","$"
    Potencia DW 001H,000AH,0064H,03E8H,2710H,"$"
DATOS ENDS
PILA SEGMENT STACK 'STACK'
    DW 128 DUP('P')
PILA ENDS
CODIGO SEGMENT
    CAPT PROC NEAR
    ASSUME CS:CODIGO,SS:PILA,DS:DATOS
    MOV AX,DATOS
    MOV DS,AX
    MOV AH,0AH
    MOV DX,Offset NUMERO_ASCII
    INT 21H
    MOV DI,OFFSET NUMERO_ASCII + 1
    MOV CX,[DI]
    MOV SI,OFFSET NUMERO_ASCII + 2
    XOR CH,CH
    MOV DI,OFFSET POTENCIA
    DEC SI
    ADD SI,CX
    XOR BX,BX
    STD
    CICLO:
    LODSB
    SUB AL,30H
    CBW
    MOV DX,[DI]
    MUL DX
    ADD DI,2
    ADD BX,AX
    LOOP CICLO
    MOV NUMERO_BINARIO,BX
    LEA DX,M_ENCABEZADO
    CALL ESCRIBE
    LEA DX,M_ASCII_ASCII
    CALL ESCRIBE
    LEA DX,NUMERO_ASCII - 1
    CALL ESCRIBE
    LEA DX,M_BINARIO_ASCII
    CALL ESCRIBE
    LEA DX,NUMERO_BINARIO
    CALL ESCRIBE
    LEA DX,M_ESPACIO
    CALL ESCRIBE
    CALL SALIR
    CAPT ENDP
    ESCRIBE PROC
    MOV AH,IMPRIMIR
    INT DOS
    RET
    ESCRIBE ENDP
    SALIR PROC NEAR
    MOV AX,FIN
    INT DOS
    SALIR ENDP
CODIGO ENDS
END CAPT

       

Comentarios