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