mov %esp,%ebp是什么意思?

cumirror 2011-09-17 03:34:16
写了简单的代码将其反汇编如下,但与汇编书上看到的语法不一致:
int main(){
80483c2: 55 push %ebp
80483c3: 89 e5 mov %esp,%ebp
80483c5: 83 ec 18 sub $0x18,%esp
...

我在网上看一些文章说:mov %esp,%ebp是将esp值赋给ebp,但mov opd ops不是将ops传送至opd中吗?
到底哪个是正确的?
另外此处的%代表什么意义?

很少接触汇编,希望大家能帮忙。
...全文
5191 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Strdust 2011-09-22
  • 打赏
  • 举报
回复
这是AT&T语法的汇编,反汇编得到的代码并不是完全和AT&T语法一致,代码中缺少表示数据长度的维度,正规的AT&T语法代码如下
pushl %ebp #把esp寄存器中的值压入堆栈中
movl %esp,%ebp #把esp寄存器中的数据传送给ebp寄存器
subl $0x18,%esp #esp寄存器中的值减去十六进制值18,得到的值保存在esp寄存器中
cumirror 2011-09-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 areslee 的回复:]

你不能换个工具反汇编成INTEL格式么。。。。。
[/Quote]

恩,可以了。另外想问问一般习惯是INTEL格式还是AT&T格式?哪种格式常用?
Areslee 2011-09-17
  • 打赏
  • 举报
回复
你不能换个工具反汇编成INTEL格式么。。。。。
cumirror 2011-09-17
  • 打赏
  • 举报
回复
谁能提供一些AT&T语法相关的资料啊,我结贴给分。
cumirror 2011-09-17
  • 打赏
  • 举报
回复
在网上看到帖子http://wangzhiming82.blog.163.com/blog/static/154639382007717163061/
上面是AT&T汇编语法,而书上看到的mov opd ops将ops传送至opd是Intel汇编语法。

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧