指令(instruction)是一種語句,它在程序匯編編譯時變得可執行。匯編器將指令翻譯為機器語言字節,并且在運行時由 CPU 加載和執行。
一條指令有四個組成部分:
標號(可選)
指令助記符(必需)
操作數(通常是必需的)
注釋(可選)
最近在學習匯編語言,過程中遇到很多問題,對此在以后的隨筆會逐漸更新,這次談談mov,lea指令的區別
一,關于有沒有加上[]的問題
1,對于mov指令來說:
有沒有[]對于變量是無所謂的,其結果都是取值
如: 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指令來說:
有沒有[]對于變量是無所謂的,其結果都是取變量的地址,相當于指針(與mov相反)
如:num dw 2
lea ebx,num;
lea eax,[num];ebx=eax
對于寄存器而言,有[]表示取值,沒[]表示取地址
如:mov eax,2
mov ebx,[eax];ebx=2
mov ebx,eax;eax=地址,隨程序的不同而不同
總結
以上所述是小編給大家介紹的匯編語言中mov和lea指令的區別詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對html5模板網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!