某计算机字长为 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 07:56:43 浏览: 54
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。
相关问题
字长为16位,主存地址空间大小为128KB
根据你提供的信息,字长为16位,意味着每个内存单元可以存储16位的二进制数,也就是2个字节的数据。主存地址空间大小为128KB,即主存储器中有128×1024个内存单元。
因此,主存储器的总容量为128KB × 2B/字节 = 256KB。其中,128KB指的是地址空间大小,2B/字节是字长的大小,用来计算主存储器中总共可以存储的字节数。
另外,字长的大小也决定了CPU可以访问的最大内存地址空间大小。在这种情况下,由于字长为16位,CPU可以访问的最大内存地址空间大小为2的16次方,即64KB。因此,如果想要访问主存储器中所有的数据,需要采用分段、分页等技术来实现。
某计算机字长16位 主存容量128KB,指令系统习题解答
这道题目需要利用计算机组成原理中的知识进行计算。下面是具体步骤:
1. 计算主存容量的位数:128KB = 128 * 1024 bytes = 131,072 bytes = 1,048,576 bits
2. 计算地址线的位数:由于主存容量为1,048,576 bits,所以地址线的位数为 log2(1,048,576) ≈ 20
3. 计算指令格式的位数:由于计算机字长为16位,所以一个指令可以使用16位表示。根据指令系统的设计,不同的指令可能会有不同的格式,但是每个指令的格式都需要占用一定的位数来表示操作码、寄存器地址、立即数等信息。
4. 根据指令格式的位数和地址线的位数,可以计算出最大的可寻址空间。假设指令格式占用了8位,那么最大的可寻址空间为 2^(20-8) = 2^12 = 4096 bytes。这意味着该计算机最多可以访问4096 bytes的主存空间。
综上所述,这个计算机的主存容量为128KB,地址线的位数为20位,指令长度为16位,最大的可寻址空间为4096 bytes。