18 Conversio de ASCII a binario (capturado)
corrida


codigo


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
Publicar un comentario