【题目】
43.(11分)某计算机字长为16位,主存地址空间大小为128 KB,按字编址。采用单字长指令格式,指令各字段定义如下:
注:(x)表示存储器地址x或哥存器x的内容。请回答下列问题:
(1)该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需要多少位?
(2) 转移指令的目标地址范围是多少?
(3) 若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H 中的内容为1234H,则汇编语句“add(R4),(R5)+”(逗号前为源操作数,逗号后为目的操作数) 对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元中的内容会改变?改变后的内容是什么?
【答案要点】
(1) 该指令系统最多可有16条指令;该机最多有8个通用寄存器;因为地址空间大小为128 KB,按字编址,故共有64K个存储单元;地址位数为16位,所以MAR至少为16位;因为字长为16位,所以MDR至少为16位。
(2) 转移指令的目标地址范围为0000H~FFFFH。
(3)对于汇编语句“add(R4),(R5)+”,对应的机器码为:0010 001 100 010 101B,用十六进制表示为2315H。“add(R4),(R5)+”指令执行后,R5和存储单元5678H的内容会改变。执行后,R5的内容从5678H变为5679H,存储单元5678H中的内容从1234H变为68ACH。