[CSAPP]处理机结构

电脑的处理机可能是人类从古至今所制造出来的最神奇的机器, 在一块小小的硅质芯片上每秒可以完成数亿次的计算。而管理这台神奇的机器也成为了人类历史上最难以解决的问题之一。

Y86处理机的指令结构

对于每一条指令而言, 它们都可以去访问或者更改一些内存或者寄存器的内容, 这样的地方叫做指令可视地带。
一般指令可视的地带有下面几种:

  • 8个通用寄存器
  • PC指向下一条指令的存储地址
  • 内存: 我们可以把内存看作一个巨大的由字节而组成的数组。计算机一般采用虚拟地址的策略来管理这些内存空间。
  • 记录上一条指令执行结果的指针
  • 内存地址的寻址规则

    一般的寻址规则是基地址+偏移量。不能使用二维寻址或者放大寄存器中地址的值来寻址。另外, 不支持两个内存之间的内容直接参加运算, 也不支持直接将常量复制到内存当中去。

    指令的分类

  • 数的算术操作, 包括加减, 与或操作等(会改变FLAGS寄存器的值)
  • 跳转指令, 有些是无条件的跳转, 有些是有条件的跳转。(根据FLAGS寄存器中的值而确定)
  • 调用函数: 将当前的执行位置储存并去执行所要跳转的目标函数
  • push, pop栈操作, 很简单
  • halt: 停机, 即停止执行, 结束程序
  • 指令的编码

    指令编码的组成结构:

  • 为了让机器识别对应的指令, 采用了哈希表的方式储存相应的指令, 称为初始子节。初始子节又分为两块, 分别是代码子节和函数字节。
  • 寄存器字节, 对于含有寄存器的指令, 含有一或多个字节来表示这条指令所对应的寄存器。
  • 有些指令还会有一个附加的字节来存储所要用到的常数(一般为4个字节)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值