计算机系统基础 第三章程序的转换和机器级表示


3.1 程序转换概述

3.1.1 机器级指令

机器指令和汇编指令一一对应,都是机器级指令

R:寄存器内容
M:存储单元内容
在这里插入图片描述

3.2 IA-32 /x86-64指令系统

在这里插入图片描述

3.2.1 IA-32的标志寄存器

在这里插入图片描述

  • 6个条件标志
    OF、SF、ZF、CF各是什么标志(条件码)?
    AF:辅助进位标志(BCD码运算时才有意义)
    PF:奇偶标志
  • 3个控制标志
    DF(Direction Flag):方向标志(自动变址方向是增还是减)
    IF(Interrupt Flag):中断允许标志 (仅对外部可屏蔽中断有用)
    TF(Trap Flag):陷阱标志(是否是单步跟踪状态)

3.2.2 IA-32的寻址方式

  • 寻址方式:根据指令给定信息得到操作数或操作数地址
  • 操作数所在的位置
    指令中:立即寻址
    寄存器中:寄存器寻址
    存储单元中(属于存储器操作数,按字节编址):其他寻址方式

3.3 C语言程序的机器级表示

3.3.1 过程调用的机器级表示

  • 过程调用的执行步骤(P为调用者,Q为被调用者)
    (1)P将入口参数(实参)放到Q能访问到的地方;
    (2)P保存返回地址,然后将控制转移到Q;
    (3)Q保存P的现场,并为自己的非静态局部变量分配空间;
    (4)执行Q的过程体(函数体);
    (5)Q恢复P的现场,释放局部变量空间;
    (6)Q取出返回地址,将控制转移到P。
    在这里插入图片描述

3.4 复杂数据类型的分配和访问

数组、指针、结构体、联合体

3.4.1 数据的对齐

为编译器指定结构体或类内部的成员变量的对齐方式。

3.5 越界访问和缓冲区溢出 、x86-64架构

缓冲区溢出定义:超越数组存储区范围的写入操作称为缓冲区溢出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值