问答题 某计算机字节长为16位,主存地址空间大小为128KB,按字编址。采用单字长指令格式,指令各字段定义如下图所示。
[*]
图 单字长指令格式

转移指令采用相对寻址方式,相对偏移用补码表示,寻址方式的定义见下表。
{{B}}表 寻址方式的定义{{/B}}
Ms/Md 寻址方式 助记符 含义
000B 寄存器直接 Rn 操作数=(Rn)
001B 寄存器间接 (Rn) 操作数=((Rn))
010B 寄存器间接、自增 (Rn)+ 操作数=((Rn)),(Rn)+1→Rn
011B 相对 D(Rn) 转移目标地址=(PC)+(Rn)
注:(x)表示存储地址x或寄存器x的内容。

回答下列问题:
问答题 该指令系统最多可有多少指令?该计算机最多有多少个通用寄存器?存储地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需要多少位?
【正确答案】指令操作码占4位,则该指令系统最多可以有24=16条指令。
由于指令操作数占6位,其中3位指示寻址方式,寄存器编号占3位,因此该计算机最多可以有23=8个通用寄存器。
由于计算机字长为16位,因此存储器数据寄存器(MDR)至少为16位。
主存空间为128KB,按字(16位)编址,寻址范围为0~64K,存储器地址寄存器(MAR)需16位(216=64K)。
【答案解析】
问答题 转移指令的目标地址范围是多少?
【正确答案】寄存器为16位,指令中可寻址范围至少可达0~216-1。主存地址空间为216=64K,寻址范围也应该大于或等于64K。因此,转移指令的目标地址范围是0~216-1。
【答案解析】
问答题 若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H中的内容为1234H,则汇编语句“add(R4),(R5)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元中的内容会改变?改变后的内容是什么?
【正确答案】汇编语句“add(R4),(R5)+”对应的机器码见下表。
{{B}}表 汇编语句“add(R4),(R5)+”对应的机器码{{/B}}
OP Ms Rs Md Rd
0010 001 100 010 101
源寻址方式 源寄存器 目标寻址 目标寄存器
对应的机器码写成十六进制为0010 0011 0001 0101B=2315H;该指令的功能是将R4内容所指存储器单元的内容(源)与R5内容所指存储器单元(目标)的内容相加后,写到R5内容所指的存储器单元。
R4的内容:1234H,R4内容所指存储器单元内容:5678H
R5的内容:5678H,R5内容所指存储器单元内容:1234H。
两个存储器单元内容相加:5678H+1234H=68ACH。
目标寄存器R5自加:5678H+1=5679H。
执行后,目标寄存器R5和存储单元5678H的内容会改变。执行后R5的内容从5678H变为5679H。存储单元5678H中的内容从1234H变为68ACH。
【答案解析】