计算机组成与体系结构——指令系统

计算机组成与体系结构,第4章mooc学习
本章简单介绍了一些MIPS指令

简介

指令分类

  1. 冯诺依曼结构计算机:存储程序+程序控制,程序控制往下面一层看就是指令执行系列机:系统结构 指令系统基本相同(保证在一个计算机上开发出的系列软件 能够在后续新推出的计算机上也能实现 因为程序是指令的集合 保证兼容性)
    兼容机:系统结构 指令系统基本相同(也是为了保证软件的兼容性)
    计算机组成与体系结构——指令系统
    指令集架构层其实是机器语言指令,其中一条汇编语言指令对应一条机器语言指令。一条高级语言指令对应多条机器语言指令。一条机器语言指令对应多条微指令。

三地址指令 三个地址码
第一个地址所指定的数据 OP 第二个地址所指定的数据结果存入第三个地址所指定的地址

二地址指令 二个地址码
与三地址指令流程不同 控制不同(运算结果稳定以后再写入到A1中 否则会导致运算错误)

一地址指令 一个地址码
AC是通用累加器(也就是个寄存器)
(一地址指令 地址位数最多 能访问更大的范围)

零地址指令
往往不需要对具体的数据进行操作 (地址位数相当于没有)OP是操作码
计算机组成与体系结构——指令系统

  1. A1 A2到底是存储器还是寄存器??也就是说操作数来自于哪里??
    SS型 慢
    RR型 应用广泛
    RS型 应用广泛
    计算机组成与体系结构——指令系统

计算机组成与体系结构——指令系统
指令格式

  1. 地址码字段(数据字段)表示设置数据源,几个操作数;
    寻址方式地段与地址码字段配合,获取对应操作数
    寻址方式是在指令中体现出来的。单但并不是所有的指令格式都这样,一般都这样,汇编语言中的8086指令格式就不这样。
    思考:
    ①支持9条指令没操作码字段的位数至少4位。
    寻址方法字段位数与支持的寻址方式种类有关
    地址码字段的作用及影响与其位数和寻址方式有关(下一节学习)计算机组成与体系结构——指令系统
    计算机组成与体系结构——指令系统

程序员通过机器指令操作计算机硬件的接口
指令格式不同对底层硬件设计有影响 硬件设计也影响着指定格式(下一章学习)

  1. 举例:
    计算机组成与体系结构——指令系统

寻址方式 指令寻址
简单学习一下寻址方式

  1. 首先介绍指令的寻址方式 怎么去寻找到指令
    获得操作数需要知道怎么去获得,也就有了寻址方式
    第一条指令去哪找?操作系统由磁盘装载到主存中的时候就会填第一条指令的地址(不需要硬件工程师解决)
    计算机组成与体系结构——指令系统
    <1>顺序寻址
    +1只是逻辑上加1计算机组成与体系结构——指令系统
    <2>跳跃寻址
    看一下这个图,取出来的是100内存单元的指令,但是100号内存单元的指令是JMP指令,跳转到103号单元取指令计算机组成与体系结构——指令系统
    取出来了MOV指令计算机组成与体系结构——指令系统
    执行MOV指令 然后PC+1
    计算机组成与体系结构——指令系统

  2. 其次介绍操作数寻址 咋去找操作数 去哪找?怎么找?
    (E)符号代表访问 E有效地址的 数据
    计算机组成与体系结构——指令系统
    <1>立即数寻址
    (操作数再指令中 指令的地址字段是数据)
    但是,如果字段只有三位 那他送的这个数据最大位7 这是不足。
    计算机组成与体系结构——指令系统
    <2>寄存器寻址
    (操作数再寄存器中 指令的地址字段是寄存器的编号字段)
    这个方法限制了能访问的寄存器编号 没限制所获得的数据的大小 能访问的数据最大最小一般与计算机字长有关
    计算机组成与体系结构——指令系统<3>直接寻址(操作数在主存中 指令的地址码字段给出操作数在内存的地址)
    地址字段的位数限制了访问主存空间大小 跟立即数寻址差不多
    计算机组成与体系结构——指令系统
    <4>间接寻址
    (指令的地址码字段给出的是操作数地址的地址)
    (D): 获得操作数的地址 ((D))获得操作数
    显然以速率换访问空间 速度慢
    计算机组成与体系结构——指令系统
    <5>寄存器的间接寻址**(既解决寻址范围大小受地址段字段影响 又不至于太多降低寻址速度)(对直接寻址 间接寻址的改进)
    (R)访问的是寄存器中的数据 而不是主存基于[BX]内容直直接访问主存 取得操作数
    计算机组成与体系结构——指令系统<6>相对寻址
    E=D+(PC) PC是程序计数器PC的值 D是指令中地址字段的值PC值增量 对于16位机器而言 PC执行指令一次会+2(上一节说了)
    计算机组成与体系结构——指令系统
    一个例题:
    计算机组成与体系结构——指令系统
    <7>基址寻址
    (指定一个基址寄存器 与本指令地址无关)**
    基址寄存器类似我们* 站在*上站得更高
    访问不同数据->有效地址不同->只能改变D->只能改变指令
    计算机组成与体系结构——指令系统<8>变址寻址 (指定一个变址寄存器 与本指令地址无关)
    不改变指令(改变变址寄存器)就可以改变数据的有效地址
    计算机组成与体系结构——指令系统
    总结:
    从速度慢来看
    变址寻址 在循环中能使用 使用价值好
    从寻址方式设计角度看
    提供立即数寻址 赋初值
    寄存器寻址 算术运算 寄存器之间数的传递
    理解这看下面这张图:
    计算机组成与体系结构——指令系统

指令格式设计
(前面学习了指令格式和指令、操作数寻址方式)

  1. 指令格式设计的主要内容:
    地址码字段个数可能有1 2 3 或者0个
    寻址方式的种类确定了 寻址方式字段位数也确定了
    计算机组成与体系结构——指令系统

  2. 几个简单的例子帮助理解:
    例子1:
    思路:
    60种操作,所以OP位有6位
    A1 A2原操作数在2K主存范围内取操作数 所以要有11×2=22
    A3在1K内保存运算结果 所以要有10位
    3地址指令 应该有一个与每个地址相配套的寻址方式特征位 每个操作数都要有8种寻址方式,即3位特征位 所以要有3×3=9计算机组成与体系结构——指令系统计算机组成与体系结构——指令系统
    例子2:
    比较简单
    计算机组成与体系结构——指令系统
    评估一下该方案
    计算机组成与体系结构——指令系统
    例子2:
    是关于考试会考的操作码扩展问题,需要理解这类问题
    我们的得先把操作码由位数由低到到高进行编
    ①1111扩展标识就是说 操作码是1111的时候他是一地址指令
    ②一地址就需要34条,所以说我们可以假定一地址指令编码就是 1111 000000-100001
    ③零地址指令呢?A1从100010到111111都看作零地址指令
    那么:30*2的6次方中的30指的是一地址指令赋予出来的30种指令 作为扩展状态 再乘上2的6次方就是指令总条数了计算机组成与体系结构——指令系统计算机组成与体系结构——指令系统

MIPS指令
精简指令集:哈哈哈我就知道是斯坦福大学研究出来的,我们还在学8086呵呵
计算机组成与体系结构——指令系统
计算机组成与体系结构——指令系统

指令系统习题

这章考试涉及题目估计就那两种,比较简单

这题很简单,理解一下寻址方式就可以了
计算机组成与体系结构——指令系统

这题还是要想一想的。
二地址指令操作码位是4位,二地址指令由K2种,那留下来了16-K2个编码给一地址指令
一地址指令操作码位是10位,可扩展位6位
零地址指令,有K0条,设一地址指令有K1条。
因此有:K0 = ((16-K2)× 26 - K1)× 26
[大括号中计算出来的可以看作零地址指令的特征位]
解出K1就可以了

计算机组成与体系结构——指令系统

这道题考察的还是对于扩展标识的理解
注意二地址指令留两个向一地址指令的扩展标识
计算机组成与体系结构——指令系统
计算机组成与体系结构——指令系统计算机组成与体系结构——指令系统

End:

自己总结的大部分都是来自华中科技大学mooc