5.8 简单计算机举例

通过一个简单计算机的运行,熟悉上述内容的工作。

5.8.1 构成

  • CPU
    数据寄存器,16个16位数据寄存器,地址为(0,1,2...F)16(0,1,2...F)_{16},记为R0到R15。
    控制单元包括程序计数器PC(一个8位寄存器)和指令寄存器IR(一个16位寄存器)

  • 主存
    包含256个16位的存储单元,地址为(0000000011111101)2(0000 0000-1111 1101)_2
    前64个存储单元(003F)16(00-3F)_{16}用来存储程序,剩余存储单元(40FD)16(40-FD)_{16}用来存储数据

  • 输入/输出子系统
    键盘,内存映射寻址,地址为(FE)16(FE)_{16}
    监视器,内存映射寻址,地址为(FF)16(FF)_{16}

5.8.2 指令集

共有16条指令,每条指令由两部分组成:操作码和操作数,操作码代表要进行哪一条指令。
指令是16位,分成4个4位的域。最左边是操作码域,其它3个域含有操作数或操作数的地址。

指令列表

处理指令

  • 取指令

  • 译码

  • 执行

举例:C=A+B

两个加数放入内存单元中,结果放入另外的内存单元。
CPU只能操作寄存器中的数据,所以程序指令如下:

  • 把内存M40的内容装入寄存器R0( R0 ← M40 )

  • 把内存M41的内容装入寄存器R1( R1 ← M41 )

  • 相加R0和R1的内容,结果放入R2中( R2 ← R0 + R1 )

  • 把R2的内容放入M42中( M42 ← R2 )

  • 停机

译码

5.8.3 指令周期

周期1

周期2

周期3

周期4

周期5