將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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM