分页标题#e#
转移指令采用相对寻址方式,相对偏移量用补码表示。寻址方式定义如下:
Ms / Md 寻址方式 助记符 含义
000B 寄存器直接 Rn 操作数=(Rn)
001B 寄存器间接 (Rn) 操作数=((Rn))
010B 寄存器间接、自增 (Rn)+ 操作数=((Rn)), (Rn)+1→Rn
011B 相对 D(Rn) 转移目标地址=(PC)+(Rn)
注:(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个通用寄存器;
MAR至少为16位;MDR至少为16位。
(2)转移指令的目标地址范围为0000H~FFFFH。
(3)汇编语句“add (R4), (R5)+”,对应的机器码为:2315H。
“add (R4), (R5)+”指令执行后,R5和存储单元5678H的内容会改变。执行后,R5的内容为5679H。内存5678H单元的内容为68ACH。
[解析]
(1)该指令系统最多支持24=16条指令;支持23=8个通用寄存器;因为地址空间大小为128 KB,按字编址,故共有64 K个存储单元,地址位数为16位,所以MAR至少为16位;因为字长为16位,所以MDR至少为16位。
(2)转移指令的目标地址范围为0000H~FFFFH。
(3)对于汇编语句“add (R4), (R5)+”,对应的机器码为:0010 001 100 010 101B,用十六进制表示为2315H。
该指令的功能是:把内存1234H单元中的数据与内存5678H单元中的数据进行相加,结果写回到5678H单元,而且R5的内容用作内存地址之后,还要执行R5的内容加1的操作,所以“add (R4), (R5)+”指令执行后,R5和存储单元5678H的内容会改变。执行后,R5的内容从5678H变为5679H。内存5678H单元的内容将变为该加法指令计算得到的和:5678H+1234H=68ACH。
44.(12分)某计算机的主存地址空间大小为256 MB,按字节编址。指令Cache和数据Cache分离,均有8个Cache行,每个Cache行大小为64 B,数据Cache采用直接映射方式。现有两个功能相同的程序A和B,其伪代码如下所示:
7a2a2fcbcd644086a43e3d12b782a8f1.jpg
|