程序的机器级表示

3.4访问信息:

·对于生成小于8字节结果的指令,有2条规则:生成1字节和2字节数字的指令会保持剩下的字节不变;生成4字节数字的指令会把高位4个字节置为0

操作数指示符:

·操作数的三种类型:

①立即数:用$后跟一个标准C表示法的整数,如$-577或$Ox1F

②寄存器:ra表示任意寄存器a,R[ra]表示寄存器的值

③内存引用:Mb[Addr]表示对存储在内存中的地址Addr开始的b个字节值的引用

·寻址模式:

①$Imm,指去Imm这个地址里的值

②ra,指取ra这个寄存器的值

 (ra),指以这个寄存器的值作为地址取值

③Imm(rb,ri,s)指以(Imm+rb的值+ri的值乘以s)作为地址取值

注意:Imm若不为十六进制,则需要转化为十六进制

           且s为1、2、4、8

数据传送指令:

·MOV  S,D(注意,S,D不能都指向内存位置)

movq:传送字节,8位

movw:传送字,16位

movl:传送双字,32位(注意,movl以寄存器为目的时,会把该寄存器高4字节设置为0,任何为寄存器生成32位值的指令都会把寄存器的高位置成0)

movq:传送四字,64位

movabsq:传送绝对的四字

movz类:零扩展;movs类:符号扩展

压入和弹出栈数据:

·栈底在上,栈顶在下,%rsp指向的地址总是栈顶

push:%rsp先减8,再存

pop:%rsp直接加8,原来的内存位置的值仍在那里,直到被覆盖

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值