日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编-输出寄存器的值-输出值

發布時間:2024/4/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编-输出寄存器的值-输出值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習匯編有一陣了,已經能夠寫出一些簡單的計算程序(求斐波那契。。。)

今天總結一下令初學者感到頭疼的寄存器值輸出問題

我們知道:

可以看出寄存器值是一個十六位進制的,我們可以將其每一位都轉成字符進行判斷,完成后使用9號系統功能輸出結果

此時計算機輸出時以ascll碼為準,所以

要將他顯示出來,就需要將十六進制數轉換為對應位的字符的ASCLL碼存起來,再輸出。
此處16進制為0-9,A-F(a-f)的組合

我們知道0-9的ASCLL碼為48-58
之后的59ascll是冒號“:”
一直到64號
再到65號字符“A”
中間隔了7個無關字符

轉換時我們必須注意
是字符需要對應ascll+7
不是就不管

然后編寫代碼:

需要認識一些關鍵指令

LOOP;循環指令 SHR;邏輯右移指令 CMP;比較指令 JA;cmp,目的操作數高于源操作數時執行跳轉 JB;~低于執行跳轉 DEC;自減指令

正式代碼如下:
TEMP是數據區的變量,存輸出字符的。
定義形式:

TEMP DB "****=對應寄存器$"

每次調用下面代碼時,只需要將對應寄存器值賦給AX寄存器

MOV AX,BX;輸出BX,其實也可以是其他變量值,不一定是寄存器值

轉換代碼:

MOV SI,OFFSET TEMP+3;輸出的偏移地址XOR CX,CXMOV CL,04HPRINT:MOV DH,AL;邏輯位移,保留低位,CL不能用SHR AX,1SHR AX,1SHR AX,1SHR AX,1AND DH,0FH;取低位ADD DH,30H;變字母CMP DH,':';數字與字母的ascll界限JA IS;高于,是字符JB NO;低于,是數字IS:ADD DH,07H;變字母NO:MOV [SI],DHDEC SILOOP PRINT

輸出代碼:

MOV DX,OFFSET TEMPMOV AH,09HINT 21H

輸出示例:
輸出了AX=6FF1的值

完成。
加油!

總結

以上是生活随笔為你收集整理的汇编-输出寄存器的值-输出值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。