当前位置: 技术问答>linux和unix
sub $16,%esp什么意思?
来源: 互联网 发布时间:2016-07-18
本文导语: 我在学习Linux下编程,今天编了个程序,得到汇编代码,由于接触汇编不多,所以有几行看不懂,想请教大侠帮忙分析一下!我先定义了两个int型变量,int i,sum;并都初始化为0 subl $16,%esp movl $0,-8(%ebp) movl $0,-4(%ebp) ...
我在学习Linux下编程,今天编了个程序,得到汇编代码,由于接触汇编不多,所以有几行看不懂,想请教大侠帮忙分析一下!我先定义了两个int型变量,int i,sum;并都初始化为0
subl $16,%esp
movl $0,-8(%ebp)
movl $0,-4(%ebp)
subl $16,%esp
movl $0,-8(%ebp)
movl $0,-4(%ebp)
|
subl $16,%esp ; 调整栈指针,向下移动16个字节,给局部变量留出空间
movl $0,-8(%ebp) ; 给位于ebp-8的局部变量赋值0
movl $0,-4(%ebp) ; 给位于ebp-4的局部变量赋值0
请参考: http://blog.csdn.net/brookmill/archive/2008/12/01/3418269.aspx
movl $0,-8(%ebp) ; 给位于ebp-8的局部变量赋值0
movl $0,-4(%ebp) ; 给位于ebp-4的局部变量赋值0
请参考: http://blog.csdn.net/brookmill/archive/2008/12/01/3418269.aspx
|
我帮你翻译成INTEL汇编,哈
sub esp,16
mov [ebp-8],0
mov [ebp-4],0
AT&T汇编里
目的操作数都在最右边
如subl,movl的最右边字符l表示操作长度为双字,w字,b字节
$0,$16都是立即数
sub esp,16
mov [ebp-8],0
mov [ebp-4],0
AT&T汇编里
目的操作数都在最右边
如subl,movl的最右边字符l表示操作长度为双字,w字,b字节
$0,$16都是立即数