彙編:輸出暫存器AX中的內容
阿新 • • 發佈:2019-01-08
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 14MainPart: 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