跳跃寻址与相对寻址【408】

今天在做2023年408的试卷时,题目中询问jge(指令为EB 09)与jmp(指令为7D 32) ,EB、7D为操作码,9,32为偏移量。题目询问jge的寻址方式,虽然我写出了正确答案为相对寻址,但是不凑巧瞥了一眼王道书上关于跳跃寻址的相对转移与相对寻址的定义,我陷入了无限的沉思。

虽然该书认为“寻找下一条将要执行的指令称之为指令寻址,寻找本条指令的数据地址称为数据寻址”,但是对于2023年408的试卷的题目这个定义便无法使用。本题给出了一个循环for(int i=0;i<24;i++) 当i>=24时应当进行跳转,题目使用了jge指令跳出当前for循环,因此如果按照王道书的定义,本题的jge指令是为了寻找下一条要执行的指令,所以应当归为指令寻址的跳跃寻址中的相对转移方式。但是答案认为jge是相对寻址。

因此王道书在这部分的描述是有问题的,对于那些不需要偏移值的跳转如  jmp 282888  不用pc的值加上偏移值,而是直接将要跳转的地址放入PC的这类指令为跳跃指令,对于那些需要使用偏移值才能去寻找下一条指令的存放地点的指令应当归类为相对寻址。

欢迎对这个问题进行讨论。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值