计算机的指令格式包括操作码OP、寻址方式特征位I和形式地址D等三个字段,其中OP字段6位,寻址方式特征位字段I为2位,形式地址字段D为8位。I的取值与寻址方式的对应关系为: I=00:变址; I=01:用变址寄存器X1进行变址; I=10:用变址寄存器X2进行变址; I=11:相对寻址。 设(PC)=1234H,(X1)=0037H , (X2)=1122H,以下四条指令均采用上述格式,请确定这些指令的有效地址: (1)4420H (2)2244H (3)1322H (4)3521H
时间: 2024-02-29 20:57:24 浏览: 116
根据题目所给的指令格式,可以知道每条指令的前6位为操作码 OP,接下来的2位为寻址方式特征位 I,最后的8位为形式地址 D。根据不同的寻址方式,求出这些指令的有效地址如下:
(1) 对于变址寻址方式,指令的有效地址为 D,即 4420H。
(2) 对于用变址寄存器 X1 进行变址的寻址方式,指令的有效地址为 (D)+(X1),即 2244H。
(3) 对于用变址寄存器 X2 进行变址的寻址方式,指令的有效地址为 (D)+(X2),即 2434H。
(4) 对于相对寻址方式,指令的有效地址为 (PC)+(D),即 124FH。
相关问题
计算机的指令格式包括操作码OP、寻址方式特征位I和形式地址D等三个字段,其中OP字段6位,寻址方式特征位字段I为2位,形式地址字段D为8位。I的取值与寻址方式的对应关系为: I=00:变址 I=01:用变址寄存器X1进行变址; I=10:用变址寄存器X2进行变址; I=11:相对寻址. 设(PC)=1234H,(X1)=0037H , (X2)=1122H,以下四条指令均采用上述格式,请确定这些指令的有效地址: (1)4420H (2)2244H (3)1322H (4)3521H
根据给定的指令格式,可以将指令的二进制码表示为:OP I D
其中,OP字段占6位,因此可以表示的指令数为2^6=64条。
I字段是寻址方式特征位,用于指示采用何种寻址方式。根据题意,I字段为2位,因此可以表示4种不同的寻址方式,对应如下:
- I=00:变址寻址
- I=01:用变址寄存器X1进行变址
- I=10:用变址寄存器X2进行变址
- I=11:相对寻址
D字段是形式地址,占8位,用于表示操作数的地址。根据题意,需要确定四条指令的有效地址,由于没有给出具体的指令二进制码,因此无法确定这些指令的具体含义和操作。
下面是对四个地址的计算过程:
(1) 4420H
由于I字段为00,表示变址寻址,因此需要将D字段的值加上变址寄存器的值,最终得到的地址才是有效地址。由于没有给出变址寄存器的值,因此无法计算出有效地址。
(2) 2244H
由于I字段为01,表示采用X1寄存器进行变址,因此需要将D字段的值加上寄存器X1的值。根据题意,(X1)=0037H,因此有效地址为:
(0037H) + (2244H) = 227BH
(3) 1322H
由于I字段为10,表示采用X2寄存器进行变址,因此需要将D字段的值加上寄存器X2的值。根据题意,(X2)=1122H,因此有效地址为:
(1122H) + (1322H) = 2444H
(4) 3521H
由于I字段为11,表示采用相对寻址方式,即将D字段的值作为偏移量,加上PC存储器中的值,得到有效地址。根据题意,(PC)=1234H,因此有效地址为:
(1234H) + (3521H) = 4755H
因此,四条指令的有效地址分别为:
- (1) 4420H:无法计算
- (2) 2244H:227BH
- (3) 1322H:2444H
- (4) 3521H:4755H
某计算机字长为 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)+”(逗号前为源操作数,逗号后为目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元中的内容会改变?改变后的内容是什么?
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。
阅读全文