已知R=10,PC=20,变址寄存器X=30,写出下列指令的累加器的值。所有的内存单元Q包括了值Q+1。每条指令占用两个内存单元。 a) LDAC 10 b) LDAC(10) c) LDAC R d) LDAC @R e) LDAC #10 f) LDAC $10 g) LDAC 10(X)
时间: 2024-04-06 18:34:10 浏览: 15
a) LDAC 10:累加器的值为内存单元10的值,即Q10。
b) LDAC(10):与a)相同,累加器的值为内存单元10的值,即Q10。
c) LDAC R:累加器的值为内存单元R(即10)的值,即Q10。
d) LDAC @R:与c)相同,累加器的值为内存单元R(即10)的值,即Q10。
e) LDAC #10:累加器的值为10,即常量10。
f) LDAC $10:累加器的值为内存单元16的值,即Q16,因为$10是十六进制数,转换为十进制数为16。
g) LDAC 10(X):累加器的值为内存单元40的值,即Q40,因为X为30,加上括号中的偏移量10,即为40。
相关问题
计算机组成和结构试题 已知PC=30,变址寄存器X=20,写出下列指令执行后的累加器的值。所有的内存单元Q存放的值为Q+1,每条指令占用两个内存单元。 a) LDAC 8 b) LDAC (8) c) LDAC #8 d) LDAC $8 e) LDAC 8 (X)
a) LDAC 8:将地址为8的内存单元中的值加载到累加器中,累加器的值为9。
b) LDAC (8):将地址为8内存单元中存放的地址所指向的内存单元中的值加载到累加器中,也就是将地址为8的内存单元中存放的值(假设为10)作为地址,加载该地址指向的内存单元中的值(假设为11),累加器的值为11。
c) LDAC #8:将数字8加载到累加器中,累加器的值为8。
d) LDAC $8:$符号通常表示十六进制,这里将地址为8的内存单元中的值加载到累加器中,累加器的值为9。
e) LDAC 8 (X):将地址为8+20=28的内存单元中的值加载到累加器中,累加器的值为29。其中20为变址寄存器X中存放的值。
某机的机器字长为16位,主存按字编址,指令格式如下: 其中,D为位移量;X为寻址特征位。 X=00: 直接寻址; X=01: 用变址寄存器X1寻址 X=10: 用变址寄存器X2寻址; X=11: 相对寻址 设(PC)=1234H, (X1)=0037H, (X2)=1122H(H代表十六位进制数), 请确定下列指令的有效地址: ,详细解释这道题,并说明位移量D怎么算
首先,根据指令格式,每条指令都包含一个位移量D和一个寻址特征位X。我们需要根据X的不同取值,来确定指令的有效地址。
1. 当X=00时,表示直接寻址。因此,指令的有效地址为D。
2. 当X=01时,表示用变址寄存器X1寻址。因此,指令的有效地址为(D)+(X1)=(D)+0037H。
3. 当X=10时,表示用变址寄存器X2寻址。因此,指令的有效地址为(D)+(X2)=(D)+1122H。
4. 当X=11时,表示相对寻址。相对寻址需要根据当前指令的地址和位移量D来计算出跳转目标地址。具体计算方法如下:
1) 首先将位移量D扩展为16位有符号数,即将D的最高位作为符号位,如果为1表示负数,为0表示正数。
2) 然后将扩展后的D与当前指令的地址相加,得到跳转目标地址。
3) 如果跳转目标地址超出了主存的地址范围,那么就会产生地址越界错误。
在这道题中,当前指令的地址为1234H,因此相对寻址的有效地址为1234H+D。
关于位移量D的计算,根据指令格式可以看出,位移量D是一个16位有符号数。如果D的最高位为1,表示D是负数;如果D的最高位为0,表示D是正数。对于负数D,可以通过将D的所有位取反再加1来得到它的补码表示。例如,如果D为FFFEH,那么它的补码表示为0002H。这样做的原因是,在计算机中,采用补码表示负数,可以简化加减法的实现。