程序机器级表示学习笔记一

一、数据传送指令

正常传送(一般都是相同范围之间的传送)

movb 传送字节

movw 传送字(一个字是两个字节,总共16位)

movl  传送双字(32位数据)

扩展传送(无论是符号扩展传送还是零扩展传送)都是从小范围到大范围的传送

movsbw  符号扩展传送字节到字

movsbl   符号扩展传送字节到双字

movswl   符号扩展传送单字到双字

movz 零扩展

IA32中栈是向低地址方向增长的,压栈会减少栈指针,寄存器sp存放栈的栈顶指针。压榨的过程是减小栈指针并将内容存入存储器中。

压栈的pushl指令编码只有一个字节 而如果你写成 subl $4,%esp movl %ebp,(%esp) 的话就总共需要6个字节的指令编码。

二、数据传送示例

8(%ebp) 意思是将bp寄存器的内容加8,%ebp +8

间接引用指针就是将该指针放在一个寄存器中,然后在存储器引用中使用这个寄存器。局部变量通常保存在寄存器中,给存储器值赋值给

寄存器基本上都是在给局部变量赋值。程序对寄存器的访问速度要远远快于对存储器的访问。

三、算术和逻辑操作



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值