彙編:輸出寄存器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
相關文章
相關標籤/搜索