詳解匯編語言MOV指令
在匯編語言中,MOV指令是數(shù)據(jù)傳送指令,也是最基本的編程指令,用于將一個數(shù)據(jù)從源地址傳送到目標(biāo)地址(寄存器間的數(shù)據(jù)傳送本質(zhì)上也是一樣的)。
32位指令集
1、一般傳送指令
MOV指令:
格式:
MOV目的-->除CS、IP以外的寄存器或存儲器
源-->寄存器、存儲器、立即數(shù)
ex :
MOV ECX ,EDX ; EDX->ECX
ECX =00000034H
EDX =00000052H
指令執(zhí)行結(jié)果: ECX = 00000052H, EDX不變,標(biāo)志寄存器也不變。
MOVSX、MOVZX指令:
格式:
MOV目的-->寄存器或存儲器
源-->寄存器、存儲器
MOVSX:按符號擴(kuò)展傳送數(shù)據(jù)指令,將源操作數(shù)的內(nèi)容---傳送-->目標(biāo)操作數(shù)。目的操作數(shù)左邊空缺的為用源操作數(shù)的符號進(jìn)行填充??蓪τ蟹柕臄?shù)進(jìn)行擴(kuò)展,以便運算。
MOVZX:按零擴(kuò)展傳送數(shù)據(jù)指令,將源操作數(shù)的內(nèi)容---傳送-->目標(biāo)操作數(shù)。目的操作數(shù)左邊空缺用0填充。可對無符號的數(shù)進(jìn)行擴(kuò)展,以便運算。
ex:
MOV BL, 80H; 80H->BL
MOVSX AX, BL ; 80H用符號擴(kuò)展為FF0H->AX
MOVZX AX, BL ; 80H用零擴(kuò)展為0080H->AX
標(biāo)志寄存器狀態(tài)不變。
XCHG指令 :
格式:
XCHG目的、源-->兩個操作數(shù),其中一個操作數(shù)可為通用寄存器,另一個操作數(shù)可為通用寄存器或存儲器,兩個操作數(shù)的長度必須一致。
ex:
XCHG BH,BL ;BH和BL進(jìn)行字節(jié)交換
XCHG SI, DI ;SI和DI進(jìn)行字節(jié)交換
XCHG EBX,ECX ;EBX和ECX進(jìn)行雙字節(jié)交換
XCHG AL,MEM_BYTE ;寄存器和內(nèi)存進(jìn)行字節(jié)交換
XCHG MEM_WORD, AX ;寄存器和內(nèi)存進(jìn)行字節(jié)交換
XCHG ESI,MEM_DWORD ;寄存器和內(nèi)存進(jìn)行雙字節(jié)交換
標(biāo)志寄存器狀態(tài)不變。
下面看下小編遇到的問題:匯編語言MOV指令
MOV AX,BX
MOV AH,BX
MOV DX,AL
第二句都錯誤,,那么第三句呢(8位數(shù)據(jù)放到16位REG里),,
若正確,放高8位還是低8位呢??? 高8位都補(bǔ)0???
解決:
在匯編語言中,MOV指令是數(shù)據(jù)傳送指令,也是最基本的編程指令,用于將一個數(shù)據(jù)從源地址傳送到目標(biāo)地址(寄存器間的數(shù)據(jù)傳送本質(zhì)上也是一樣的)。其特點是不破壞源地址單元的內(nèi)容。
例如:
1、MOVAX,2000H;將16位數(shù)據(jù)2000H傳送到AX寄存器。
2、MOVAL,20H;將8位數(shù)據(jù)20H傳送到AL寄存器。
3、MOVAX,BX;將BX寄存器的16位數(shù)據(jù)傳送到AX寄存器。
4、MOVAL,[2000H];將2000H單元的內(nèi)容傳送到AL寄存器。
擴(kuò)展資料:
匯編語言特點:
1、機(jī)器相關(guān)性
這是一種面向機(jī)器的低級語言,通常是為特定的計算機(jī)或系列計算機(jī)專門設(shè)計的。因為是機(jī)器指令的符號化表示,故不同的機(jī)器就有不同的匯編語言。使用匯編語言能面向機(jī)器并較好地發(fā)揮機(jī)器的特性,得到質(zhì)量較高的程序。
2、高速度和高效率
匯編語言保持了機(jī)器語言的優(yōu)點,具有直接和簡捷的特點,可有效地訪問、控制計算機(jī)的各種硬件設(shè)備,如磁盤、存儲器、CPU、I/O端口等,且占用內(nèi)存少,執(zhí)行速度快,是高效的程序設(shè)計語言。
總結(jié)
以上所述是小編給大家介紹的匯編語言MOV指令,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
匯編語言進(jìn)制轉(zhuǎn)換之16進(jìn)制轉(zhuǎn)10進(jìn)制
這篇文章主要介紹了匯編語言進(jìn)制轉(zhuǎn)換之16進(jìn)制轉(zhuǎn)10進(jìn)制,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07匯編語言中的函數(shù)調(diào)用參數(shù)傳遞及全局與局部變量與“基址”
這篇文章主要介紹了匯編眼中的函數(shù)調(diào)用參數(shù)傳遞以及全局與局部變量與“基址”,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02從匯編代碼開始全面解析synchronized還原最真實的偏向鎖
這篇文章主要為大家介紹了從模板解釋器匯編源碼開始分析還原最真實的偏向鎖實現(xiàn),解釋monitorenter字節(jié)碼命令的方法開始,從匯編代碼開始全面解析synchronized2022-02-02