题21
题目
Q:设相对寻址的转移指令占
每当 CPU 从存储器取出一字节时,即自动完成(PC)
若PC的当前值为 240 (十进制),要求转移到 290 (十进制), 则转移指令的第二、三字节的机器代码是 ();
若
A.
B. D5H、00H
C. D5H、FFH
D.
分析
A:每次PC加的1,加的都是指令的长度,这里的指令长度是3B,也就是加3,之前也做到过这种类似的题目结构,也就是题16里面说的,这里的指令字长是给的bit,也就是位,16位,也就是2B,那么PC就是移动2个B
解
D、C
首先需要讲解一下补码扩充的问题。补码的扩充只需使用符号位补足即可, 也就是说正数补码的扩充只要补 0 , 负数补码的扩充只需补 1 (这是由补码的性质决定的)。
理解了该性质, 这道题就变成了十进制转换为十六进制的简单问题。
的当前值为 240,该指令取出后 的值为 243,要求转移到 290,即相对位移量为 ,转换成补码为 。由于数据在存储器中采用以低字节地址为字地址的存放方式,因此该转移指令的第二字节为 ,由于 47 是正数,因此只需在高位补 0, 所以第三字节为 。 的当前值为 240,该指令取出后 的值为 243,要求转移到 200,即相对位移量为 ,转换成补码为 。由于数据在存储器中采用以低字节地址为字地址的存放方式,因此该转移指令的第二字节为 ,由于 -43 是负数,因此只需在高位补 1, 所以第三字节为 FFH。