题6

题目

【2010 统考真题】某计算机字长为 16 位, 主存地址空间大小为 128KB, 按字编址, 采用单字长指令格式, 指令各字段定义如下:

转移指令采用相对寻址方式, 相对偏移量用补码表示, 寻址方式定义见下表.

回答下列问题:
(1) 该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器 (MAR) 和存储器数据寄存器 (MDR) 至少各需要多少位?
(2) 转移指令的目标地址范围是多少?
(3) 若操作码0010 B表示加法操作 (助记符为 add), 寄存器R4和R5的编号分别为100B和101B, R4 的内容为 的内容为 ,地址 中的内容为 中的内容为 , 则汇编语句 “add (R4), (R5)+” (逗号前为源操作数, 逗号后为目的操作数) 对应的机器码是什么 (用十六进制表示)?该指令执行后, 哪些寄存器和存储单元的内容会改变?改变后的内容是什么?

分析





题43

  1. 操作码占 4 位,则该指令系统最多可有 条指令。操作数占 6 位,其中寻址方式占 3 位、寄存器编号占 3 位,因此该机最多有 个通用寄存器。主存地址空间大小为 128KB,按字编址,字长为 16 位,共有 个存储单元,因此 MAR 至少为 16 位;本题已说明了存储字长为 16 位,因此 MDR 至少为 16 位。
  2. 寄存器字长为 16 位, 可表示的地址范围为 可表示的相对偏移量为 ,而主存地址空间为 ,因此转移指令的目标地址范围为
  3. 汇编语句 “add (R4), (R5)+” 对应的机器码为
字段OPMsRsMdRd
内容0010001100010101
说明add寄存器间接R4寄存器间接、自增R5

将对应的机器码写成十六进制形式为 0010001100010101B =

该指令的功能是将 R4 的内容所指的存储单元的数据与 R5 的内容所指的存储单元的数据相加,并将结果送入 R5 的内容所指的存储单元中。;执行加法操作 。之后 R5 自增。

该指令执行后,R5 和存储单元 的内容会改变,R5 的内容从 变为 ,存储单元 中的内容变为该指令的计算结果