

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import base64 | |
try: | |
CR EQU 13 | |
LF EQU 10 | |
IMPRIMIR EQU 9 | |
FIN EQU 4C00H | |
DOS EQU 21H | |
TAB EQU 09H | |
BELL EQU 07H | |
DATOS SEGMENT | |
ENCABEZADO DB 13,10,13,10,TAB,TAB,"=======================================================" | |
DB 13,10,13,TAB,TAB,"PROGRAMA QUE CONVIERTE UN NUMERO ASCII A BINARIO" | |
DB 13,10,13,TAB,TAB,"=====================================================================",13,10,"$" | |
VALOR_ASCII DB '33',"$" | |
VALOR_BINARIO DW 0,"$" | |
LONGITUD_ASCII DW 2,"$" | |
POTENCIA_10 DW 00000001B,"$" | |
DATOS ENDS | |
PILA SEGMENT STACK | |
DB 64 DUP('0') | |
PILA ENDS | |
CODIGO SEGMENT | |
POTE PROC NEAR | |
ASSUME CS:CODIGO,DS:DATOS,SS:PILA | |
MOV AX,DATOS | |
MOV DS,AX | |
LEA DX,VALOR_ASCII | |
CALL ESCRIBE | |
MOV BX,00001010B | |
MOV CX,LONGITUD_ASCII | |
LEA SI,VALOR_ASCII+1 | |
ETIQUETA_1: | |
MOV AL,[SI] | |
AND AX,000FH | |
MUL POTENCIA_10 | |
ADD VALOR_BINARIO,AX | |
MOV AX,POTENCIA_10 | |
MUL BX | |
MOV POTENCIA_10,AX | |
DEC SI | |
LOOP ETIQUETA_1 | |
LEA DX,ENCABEZADO | |
CALL ESCRIBE | |
LEA DX,VALOR_BINARIO | |
CALL ESCRIBE | |
CALL SALIR | |
POTE ENDP | |
ESCRIBE PROC | |
MOV AH,9 | |
INT 21H | |
RET | |
ESCRIBE ENDP | |
SALIR PROC NEAR | |
MOV AX,FIN | |
INT DOS | |
RET | |
SALIR ENDP | |
CODIGO ENDS | |
END POTE | |