设相对寻址的转移指令占两个字节 第一字节是操作码 第二字节是相对位移量 用补码表示。每当CP
问题详情
设相对寻址的转移指令占两个字节,第一字节是操作码,第二字节是相对位移量,用补码表示。每当CPU从存储器取出一个字节时,即自动完成(PC)+1→PC。 (1)设当前PC值为3000H,试问转移后的目标地址范围是什么? (2)若当前PC值为2000H,要求转移到201 BH,则转移指令第二字节的内容是什么? (3)若当前PC值为2000H,指令JMP*-9(*为相对寻址特征)的第二字节的内容是什么?
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:(1)由于相对寻址的转移指令为两个字节第一个字节为操作码第二个字节为相对位移量且用补码表示故其范围为-128~+127即80H~7FH。又因PC当前值为3000H且CPU取出该指令后PC已修改为3002H因此最终的转移目标地址范围为3081 H~2F82H即3002H+7FH=3081 H至3002H-80H=2F82H。(2)若PC当前值为2000H取出该指令后PC值为2002H故转移指令第二字节应为201BH-2002H=19H。(3)根据汇编语言指令JMP*-9即要求转移后的目标地址为2000H-09H=1FF7H但因为CPU取出该指令后PC值已修改为2002H故转移指令的第二字节的内容应为-11(十进制)写成补码为F5H。
(1)由于相对寻址的转移指令为两个字节,第一个字节为操作码,第二个字节为相对位移量,且用补码表示,故其范围为-128~+127,即80H~7FH。又因PC当前值为3000H,且CPU取出该指令后,PC已修改为3002H,因此最终的转移目标地址范围为3081H~2F82H,即3002H+7FH=3081H至3002H-80H=2F82H。(2)若PC当前值为2000H,取出该指令后PC值为2002H,故转移指令第二字节应为201BH-2002H=19H。(3)根据汇编语言指令JMP*-9,即要求转移后的目标地址为2000H-09H=1FF7H,但因为CPU取出该指令后PC值已修改为2002H,故转移指令的第二字节的内容应为-11(十进制),写成补码为F5H。