1 ;功能:16位的2進制數轉為5位的10進制數并輸出
2 DATAS SEGMENT
3 Num dw 1111100111B ;帶轉換的二進制數(<=16位 測試用例對應的10進制為999)
4 buffer db 5 dup(0) ;用來儲存結果
5 jm dw 10000,1000,100,10,1 ;用于每次循環的除數
6 DATAS ends
7 CODES SEGMENT
8 ASSUME CS:CODES, DS:DATAS
9 START:
10 mov AX,DATAS
11 mov DS,AX
12
13 mov di,offset jm
14 mov si,offset buffer
15
16 xor cx,cx
17 mov cx,5 ;設定循環次數5次
18
19 mov ax,Num
20
21 next:
22 xor dx,DX
23 mov bx,[di] ;取除數
24 add di,2 ;存放除數的偏移位址每次加2因為 為字
25 div bx
26 add al,30H ;轉化為ASCII碼便于輸出顯示
27 mov [si],al ;儲存商
28 inc si ;存放結果的偏移位址每次加1
29 mov ax,DX ;把餘數為新的被除數
30
31 loop Next
32
33 print:
34 mov byte ptr[si],'$' ;字元串末尾加上結束符
35 mov dx,offset buffer
36 mov ah,09H
37 int 21h
38 ;向螢幕列印輸出
39 exit:
40 mov ah,4ch
41 int 21H
42 CODES ends
43 end START
"你的指尖,擁有改變世界的力量! "
歡迎關注我的個人部落格:https://sugarat.top