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