程序的机器级表示

本文深入探讨了IA32和X86-64架构下的程序机器级表示,包括ISA、重要寄存器如程序计数器PC,32位寄存器及其使用,以及各种数据类型如字、双字。内容涵盖 mov 操作、算术与逻辑运算,如inc、sub和移位操作,并通过实例解析函数调用时的栈帧操作。此外,还讨论了乘法和除法指令以及位操作,如移位和按位异或。
摘要由CSDN通过智能技术生成

程序的机器级表示

IA32和X86-64(AMD)

32位和64位

ISA

instruction system architecture

重要寄存器

  1. 程序计数器PC %eip
  2. 整数寄存器 8个每个32位
    有的用来记录状态,有的用来保存临时数据,局部变量,返回值
    3.条件码寄存器

字 16位,双字double word, 4字

  1. 指针都是双字
  2. char short long 其他4字节
  3. movb movw movl

32位的寄存器

%al %ah -> %ax -> %eax
%eax %ebx %ecx %edx %edi %esi %esp %ebp

存取数

Imm(Ea,Eb,s) -> M[Imm + R[Ea] + R[Eb] * s]

只有完整的寄存器可以()

只有完整的寄存器可以()

习题

3.1

操作数
%eax 0x100
0x104 0x104 -> 0xAB
$0x108 0x108
(%eax) 0xFF
4(%eax) 0xAB
9(%eax,%edx) 0x11
260(%ecx,%edx) ->0x13
0xFC(,%ecx,4) 0
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值