匯編語言中mov和lea指令的區(qū)別詳解
指令(instruction)是一種語句,它在程序匯編編譯時(shí)變得可執(zhí)行。匯編器將指令翻譯為機(jī)器語言字節(jié),并且在運(yùn)行時(shí)由 CPU 加載和執(zhí)行。
一條指令有四個(gè)組成部分:
標(biāo)號(可選)
指令助記符(必需)
操作數(shù)(通常是必需的)
注釋(可選)
最近在學(xué)習(xí)匯編語言,過程中遇到很多問題,對此在以后的隨筆會(huì)逐漸更新,這次談?wù)刴ov,lea指令的區(qū)別
一,關(guān)于有沒有加上[]的問題
1,對于mov指令來說:
有沒有[]對于變量是無所謂的,其結(jié)果都是取值
如: num dw 2
mov bx,num
mov cx,[num];bx=cx=2
對于寄存器而言,有[]表示取地址,沒[]表示取值
如: num dw 2
mov ax,num
mov bx,ax;bx=2
mov bx,[ax];mov bx;DS:[ax],這里可能存在報(bào)錯(cuò)的情況,總之大體意思能理解就行
2,對于lea指令來說:
有沒有[]對于變量是無所謂的,其結(jié)果都是取變量的地址,相當(dāng)于指針(與mov相反)
如:num dw 2
lea ebx,num;
lea eax,[num];ebx=eax
對于寄存器而言,有[]表示取值,沒[]表示取地址
如:mov eax,2
mov ebx,[eax];ebx=2
mov ebx,eax;eax=地址,隨程序的不同而不同
總結(jié)
以上所述是小編給大家介紹的匯編語言中mov和lea指令的區(qū)別詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
VScode配置匯編語言環(huán)境的實(shí)現(xiàn)步驟
本文主要介紹了VScode配置匯編語言環(huán)境的實(shí)現(xiàn)步驟,文中通過圖文的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03匯編語言系列之匯編實(shí)現(xiàn)各種碼制的轉(zhuǎn)換(思路詳解)
本文列出了十六進(jìn)制轉(zhuǎn)二進(jìn)制、十進(jìn)制、ASCII碼及大小寫字母轉(zhuǎn)換的代碼,對匯編語言系列之實(shí)現(xiàn)各種碼制的轉(zhuǎn)換問題感興趣的朋友跟隨小編一起看看吧2021-11-11匯編語言軟件延時(shí)1s的實(shí)現(xiàn)方法
這篇文章主要介紹了匯編語言軟件延時(shí)1s的實(shí)現(xiàn)方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01匯編語言指令集學(xué)習(xí)條件轉(zhuǎn)移指令詳解
這篇文章主要為大家介紹了匯編語言指令集學(xué)習(xí)條件轉(zhuǎn)移的指令全面總結(jié)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11