轉載自 渣渣愛學習
最近在學習彙編語言,過程中遇到很多問題,對此在以後的隨筆會逐漸更新,這次談談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
2,對於lea指令來說:
有沒有[]對於變量是無所謂的,其結果都是取變量的地址,相當於指針(與mov相反)
如:num dw 2
lea ebx,num;
lea eax,[num];ebx=eax
對於寄存器而言,有[]表示取值,沒[]表示取地址
如:mov eax,2
lea ebx,[eax];ebx=2
lea ebx,eax;eax=地址,隨程序的不同而不同