某计算机字长为16位,主存地址空间大小为128KB,按字编址。采用单字长指令格式,指令各字段定义如下:转移指令采用相对寻址方式,相对偏移量用补码表示。寻址方式定义如表1-4所示。
问答题 该指令系统最多可有多少条指令?该计算机最多有多少个通用寄存器?存储器地址寄存器(MAR)和存储器数据寄存器(MDR)至少各需多少位?
【正确答案】正确答案:因为采用单字长指令格式,操作码字段占4位,所以最多有16条指令;指令中通用寄存器编号占3位,所以最多有8个通用寄存器;因为主存地址空间大小为128KB,按字编址,故共有64K个存储单元,因而地址位数为16位,所以MAR至少为16位;因为字长为16位,所以MDR至少为16位。
【答案解析】
问答题 转移指令的目标地址范围是多少?
【正确答案】正确答案:因为地址位数和字长都为16位,所以PC和通用寄存器的位数均为16位,两个16位数据相加其结果也为16位,即转移目标地址位数为16位,因而能在整个地址空间转移,即目标转移地址的范围为0000H~FFFFH。
【答案解析】
问答题 若操作码0010B表示加法操作(助记符为add),寄存器R4和R5的编号分别为100B和101B,R4的内容为1234H,R5的内容为5678H,地址1234H中的内容为5678H,地址5678H中的内容为1234H,则汇编语句“add(R4),(R5)+”(逗号前为第二源操作数,逗号后为第一源操作数和目的操作数)对应的机器码是什么(用十六进制表示)?该指令执行后,哪些寄存器和存储单元的内容会改变?改变后的内容是什么?
【正确答案】正确答案:要得到汇编语句“add(R4),(R5)+”对应的机器码,只要将其对应的指令代码各个字段拼接起来即可。显然,add对应OP字段,为0010B;(R4)的寻址方式字段为001B,R4的编号为100B;(R5)+的寻址方式字段为010,R5的编号为101B;所以,对应的机器码为0010 001100010101B,用十六进制表示为2315H。 指令“add(R4),(R5)+”的功能为M[R[R5/]/]←M[R[R5/]/]+M[R[R4/]/],R[R5]←R[R5]+1。已知RrR41=1234H,R[R5]=5678H,M[1234H]=5678H,M[5678H]=1234H,因为1234H+5678H=68ACH,所以5678H单元中的内容从1234H改变为68ACH,同时R5中的内容从5678H变为5679H。
【答案解析】