DJ7-3 模型机指令系统及通路结构(第一节课)

前面我们学习的内容都是不针对特殊的机型的,而从现在开始我们将开始学习模型机。

预告:微机部分我们学的是机型是 8086 和 8088 。

目录

一、CPU设计步骤

二、模型机的指令系统

0. 说明

1. 指令格式

2. 寻址方式

(1)0型:寄存器直接寻址 

(2)1型:寄存器间接寻址

(3)2型:自减型寄存器间址 

(4)3型:自增型寄存器间址 

(5)4型:自增型双重间址 

(6)5型:变址寻址/相对寻址 

(7)6型:跳步寻址 


模型机的CPU内部结构:

这个图很重要!

一、CPU设计步骤

  • 第一步:拟定指令系统

        因为一台计算机的指令系统表明了这台机器所具有的硬件功能。

  • 第二步:确定总体结构,核心是数据通路结构
  • 第三步:确定控制信号的产生方式并安排时序

        我们只需掌握同步控制方式、异步控制方式和扩展同步控制方式即可。

  • 第四步:拟定指令流程和微命令序列

        微命令 —— 控制信号

  • 第五步:形成控制逻辑

        包括:组合逻辑设计和微程序设计

站在这本教材的角度,指令系统就是一个软件系统,我们所说的高级语言充其量是一个工具。

二、模型机的指令系统

0. 说明

模型机采用 寄存器型寻址,即指令中只会给出寄存器编号,不会给出存储单元地址。

我们讨论的指令类型有:双地址类指令格式、单地址类指令格式、转移指令格式。

(1)双地址类指令格式

(2)单地址类指令格式

(3)转移指令格式

11~6:通过寻址得到转移地址

5~0:只是给出了转移条件的形成方式,没有直接给出条件本身

1. 指令格式

  • 模型机的指令字长为 16 位 —— 采用定长指令格式
  • 模型机的存储单元位宽为 16 位 —— 指令占据一个存储单元
  • 模型机的寄存器位宽为 16 位

2. 寻址方式

因为模型机采用 寄存器型寻址,所以其指令的特点是在指令中直接给出寄存器编号(3 位)。

CPU 可编程访问的寄存器
通用寄存器R0(000)、R1(001)、R2(010)、R3(011)
堆栈指针寄存器SP(100)
程序状态字寄存器PSW(101)
指令计数器PC(111)

注意:这是在模型机中,在其它机型中不一定能访问后三个寄存器。

  • 通用寄存器的特点:① 可编程访问 ② 有编号
  • 程序状态字寄存器存储运算结果的状态

(1)0型:寄存器直接寻址 

其中,编码是指寻址方式的编码。

假设操作码为 0000,则指令的二进制代码为 0000 001 000 000 000 。

Java既是编译型语言又是解释型语言,既不是编译型语言也不是解释型语言。

(2)1型:寄存器间接寻址

假设操作码为 0000,则指令的二进制代码为 0000 001 000 000 001 。

(3)2型:自减型寄存器间址 

  • -(R) = (R) - 1
  • -(SP):SP 指向栈顶元素,因此此操作对应压栈。

此操作的效果就是把 PC 的内容压入堆栈中保存。

应用:转子指令与返回指令。

(4)3型:自增型寄存器间址 

例题

此操作的效果就是把栈顶内容弹给 PC 。我们将弹出的数据视作是无了,因为我们不能修改 SP 内容,所以不能再访问弹出的数据。

由于模型机中没有立即寻址方式,因此把立即寻址的一条指令拆成两条来实现,即一条指令 + 一个立即数。PC 的内容是随着取指和指令的运行动态变化的。

  • ②:取指结束,隐含约定的 PC 加 1 。

  • ③:寻址结束,寻址方式约定的 PC 加 1 。

如果寻址方式中没有约定 PC + 1,又由于第二次取的不是指令而是数值,PC 将不会隐含 + 1 —— 因为根本没这样约定过 —— 从而导致程序卡死。

流程分析:

(5)4型:自增型双重间址 

例题

由于模型机中没有直接寻址方式,因此把直接寻址的一条指令拆成两条来实现,即一条指令 + 一个地址码。PC 的内容是随着取指和指令的运行动态变化的。

  • ②:取指结束,隐含约定的 PC 加 1 。

  • ③:根据操作数地址得到操作数,并存入 R1 中。

  • ④:寻址结束,寻址方式约定的 PC 加 1 。

(6)5型:变址寻址/相对寻址 

  • 寄存器内容 = 1000H
  • 形式地址 = 0080H
  • 有效地址 = 寄存器内容 + 形式地址 = 1000H + 0080H = 1080H

(7)6型:跳步寻址 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值