某计算机字长为 16 位,主存地址空间大小为 128KB,按字编址。采用单字长指令格式,指令各字段定义如下。 15~12 11~06 0806 05~00 02~00 OP Ms Rs Md Rd 源操作数 目的操作数 转移指令采用相对寻址方式,相对偏移量用补码表示,寻址方式定义见下表。 Ms/Md 寻址方式 助记符 含义 000B 寄存器直接 Rn 操作数=(Rn) 001B 寄存器间接 (Rn) 操作数=((Rn)) 010B 寄存器间接,自增 (Rn)+ 操作数=((Rn)),(Rn)+1→(Rn) 011B 相对 D(Rn) 转移目标地址=(PC)+(Rn) 注:(X)表示存储器地址 X 或寄存器 X 的内容。 请回答下列问题: 1) 该指令系统最多可有多少条指令? 该计算机最多有多少个通用寄存器? 2) 存储器地址寄存器MAR和存储器数据寄存器MDR至少各需要多少位? 3) 转移指令的目标地址范围是多少? 若操作码 0010B 表示加法操作(助记符为 add),寄存器 R4 和 R5 的编号分别为 100B 和 101B, R4 的内容为 1234H,R5 的内容为 5678H,地址 1234H 中的内容为 5678H,地址 5678H 中的内容为 1234H,则汇编语言为“add(R4), (R5)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元中的内容会改变?改变后的内容是什么?
时间: 2024-02-28 12:56:43 浏览: 651
1. 根据指令格式,该指令系统最多可有 $2^{16}$ 条指令(16 位字长),计算机最多有 $2^3=8$ 个通用寄存器(R0~R7)。
2. 存储器地址寄存器MAR需要至少 17 位($2^{17}$ = 128KB),存储器数据寄存器MDR需要至少 16 位(16 位字长)。
3. 转移指令采用相对寻址方式,相对偏移量用补码表示。因此,转移指令的目标地址范围为:-32768 到 32767。
4. 根据指令格式,add(R4), (R5)+ 对应的机器码为:
```
0010 0100 0101 0100 0001 0000 0001 0001
```
该指令执行后,R4 中的内容不变(1234H),R5 中的内容变成了 567AH(5678H+1),地址 1234H 中的内容不变(5678H),地址 5678H 中的内容变成了 1235H(1234H+1)。
其中,机器码的解释如下:
- 操作码 OP:0010B,表示 add 操作。
- Ms:010B,表示寄存器间接,自增,即 (R5)+。
- Rs:101B,表示寄存器编号为 R5。
- Md:000B,表示寄存器直接,即 (R4)。
- Rd:100B,表示寄存器编号为 R4。
阅读全文