网易云课堂《Linux内和分析》汇编分析和寻址方式小结(一)

一、汇编分析

g:
	pushl	%ebp
	movl	%esp, %ebp
	movl	8(%ebp), %eax
	addl	$3, %eax
	popl	%ebp
	ret
f:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	movl	8(%ebp), %eax
	movl	%eax, (%esp)
	call	g
	leave
	ret
main:
	pushl	%ebp
	movl	%esp, %ebp
	subl	$4, %esp
	movl	$8, (%esp)
	call	f
	addl	$1, %eax
	leave
	ret

 分析结果:http://yunpan.cn/cJhSCXVbCxLdW   提取码: 956f

二、寻址方式小结

1、寄存器寻址

操作数在通用寄存器中。

例:movl %eax,%edx

2、立即寻址

指令的地址字段指出操作数本身,而不是操作数地址,不需要访问内存取数,因此指令执行时间很短。

例:movl $0x123,%eax

3、直接寻址

指令的地址字段直接指出操作数的内存地址,不需要其他转换。

例:movl 0x123,%eax

4、间接寻址

相对直接寻址而言,指令的地址字段不是操作数的真正地址,而是操作数地址的指示器。形式地址单元的内容才是操作数的有效地址。

例:movl (%ebx),%edx


原创作品转载请注明出处

《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-10000290

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值