我在理解如何获得正确的分支命令的opCode方面遇到了一些问题。比方说命令:
beq .+40
beq opCode是001400
我知道opCode中的最后两个字符假设包括我们需要跳转的偏移量
在这个问题的答案中,写的是001417
,但我不明白为什么,他们是如何从40
得到17
的
会出现一个简短的解释。
PDP-11编程卡写入:新电脑<-更新的PC+(2 x偏移量)和更新的PC=br指令的地址+2。注:(2 x偏移量)表示偏移量以16位字计。
所有的计算都是八进制的。
您已阅读001417。17是偏移量(较低的8位)。新电脑=更新电脑+(2 x 17)=更新电脑+36更新的PC=2,和2+36=40。
因此,单词"001417"的反汇编为"br.+40"。
从"br.+40"中,您还可以注意到40/2=20(单词)和20-1=17个单词。
来源:http://www.jfc.org.uk/documents/scandoc.php?page=4&最大页面=10%0A&dir=pdp11%2Fpdp11