问题
问答题
某计算机字长为16位,主存地址空间大小为128KB,按字编址,采用字长指令格式,指令名字段定义如下:
转移指令采用相对寻址方式,相对偏移是用补码表示,寻址方式定义如下:
Ms/Md | 寻址方式 | 助记符 | 含义 |
000B | 寄存器直接 | Rn | 操作数=(Rn) |
001B | 寄存器间接 | (Rn) | 操作数=((Rn)) |
010B | 寄存器间接、自增 | (Rn)+ | 操作数=((Rn)),(Rn)+1→Rn |
011B | 相对 | D(Rn) | 转移目标地址=(PC)+(Rn) |
请回答下列问题:
若操作码0010B表示加法操作(助记符为a d d),寄存器R4和R5的编号分别为100B和101B,R4的内容为1 2 3 4 H,R5的内容为5 6 7 8 H,地址1 2 3 4 H中的内容为5 6 78 H中的内容为1 2 3 4 H,则汇编语言为a d d(R4).(R5)+(逗号前原操作数,都号后为目的操作数)对应的机器码是什么(用十六进制表示)该指令执行后,哪些寄存器和存储单元的内容会改变改变后的内容是什么
答案
参考答案:根据题目中给出的各个部分的内容,可知:
OP:0010,MS:001,R4:100,Md:010,RS:101;
机器码为:0010 0011 0001 0101,即2315H;
汇编语言add(R4).(R5)+:把内存1234H的内容与5678H的内容相加,结果写回5678H单元,并且R5的内容要加1;
寄存器R5和存储单元5678H的内容会改变;
R5的内容变为:5679H;
内存5678H的内容变为:1234H+5678H=68ACH