匯編:輸出寄存器AX中的內容


 1 DATAS segment
 2     Temp db '0000H','$'
 3 DATAS ends
 4 CODES segment
 5 START:
 6     mov AX,DATAS
 7     mov DS,AX
 8     ;正式代碼開始
 9     mov AX,12ABH        ;設置需要顯示的AX的值
10     mov si,offset Temp+3;保存存儲結果的字符串的最后一個字符偏移地址
11     xor cx,cx           ;對cX清零
12     mov cl,4            ;設置循環次數為4次
13 
14 MainPart:
15     mov DH,AL           ;將Al的內容傳送給DH
16     
17     shr AX,1
18     shr AX,1
19     shr AX,1
20     shr AX,1
21                 ;上述4句為使AX邏輯右移4位 理論上可以寫成 shr AX ,cl(cl設置為4) 
22                 ;但這個地方cl要記錄循環次數每次循環會是cl-1所以無法滿足正常的移位需要
23     and dh,0FH
24     add dh,30H
25     cmp dh,':'  ;':'的ASCII比9大1 而字母的ASCII碼與數字的ASCII碼中間隔了7個其它字符
26     ja isLetter ;如果為字母則跳轉
27     jb No       ;如果不是
28 
29 isLetter:
30     add dh,7H   ;ASCII碼加7變為字母
31 No:
32     mov [si],dh ;將字符存入,待存放內容的字符串的對應位置
33 
34     dec si      ;待存放內容的內存地址自減1
35 loop MainPart
36 
37 print:   
38     mov dx,offset Temp  ;將帶打印的字符串的偏移地址存放進dx中
39     mov ah,09           ;設置DOS 09號功能
40     int 21H         ;功能調用
41     mov al,0
42     mov ah,4CH
43     int 21H
44 
45 CODES ends
46     end START

 


免責聲明!

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



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