汇编中 mov和movl 有什么区别(举例说明)

来源:百度知道 编辑:UC知道 时间:2024/05/31 08:36:53
如题:
汇编中 mov和movl push和pushl 等等,就是有“l”和没有“l”的命令之间有什么区别(举例说明)
(不想浪费分数,采纳后,补加积分【20】)

AT&T汇编是UNIX下惯用的汇编格式
l ,w,b是AT&T汇编中用来表示操作属性的限定符

l是长字(4字节),
w是双字
b是一个字节

加在指令的后边
相当于intel中的
dword ptr
word ptr
byte ptr

比如:
subl $8, %esp
leal -792(%ebp), %eax
pushl %eax
movl -796(%ebp), %eax
sall $8, %eax
addl 12(%ebp), %eax
pushl %eax
call _strcpy
addl $16, %esp

在intel 汇编中就相当于:
sub esp,8
lea eax,dword ptr [ebp-792]
push eax
mov eax,dword ptr [ebp- 796]
...
AT&T格式的汇编和intel编的差别可以参看有关AT&T汇编的书

l就是32位的意思。