将ASCII码表⽰的⼗进制数转换为⼆进制数(汇编语⾔)DATA SEGMENT ;定义源数据段
MSR DB '00012'
LEN EQU $-MSR
DATA ENDS
CODE SEGMENT ;定义代码段
ASSUME CS:CODE, DS:DATA
START: MOV AX, DATA
MOV DS,AX
MOV SI, OFFSET MSR
MOV CX,LEN-1
MOV AL, DS:[SI] ;开始传输数据
MOV AH,0
SUB AX,30H
NEXT1: MOV BX, 0AH
MUL BX ; 将AX中的数乘以10,所得的结果⾼位保存到DX中,低位保存到AX中
INC SI
MOV DL,DS:[SI]
MOV DH,0
SUB DX,30H ;将数字对应的ASCII码转换成响应的⼆进制数
ADD AX,DX
DEC CX
JNZ NEXT1
MOV CL,16 ; CL⽤作循环NEXT2的计数器,因为5位⼗进制数转化成⼆进制只有⼗六位,所以循环次数为16次
MOV BX,AX
NEXT2: ROL BX,1
MOV DL,BL
AND DL,01H
ADD DL,30H ;把BX中的数以⼆进制形式输出
MOV AH,2H
INT 21H
DEC CL
JNZ NEXT2
MOV AX,4C00H
INT 21H记住我
CODE ENDS
END START