目前绝大多数的MCS-51系列单片机教材和相关文献均把这些相对转移指令中的操作数当成偏移量rel处理,从而把指令中的操作数当成偏移量来计算目的地址。例如有书籍这样描述:
JC 60H;
设(PC)=2000H,则当C=1时,转移的目的地址=(PC)+ 2 + 60H = 2062H,注:式中2是因为JC为2字节指令。
对于上面的描述,本人认为至少存在两个错误,错误一:JC 60H这样的指令无法在汇编时安排在2000H开始的单元中存放;错误二:指令中的操作数60H并不是机器码中的偏移量rel,而是程序转向的目的地址。实际上,偏移量并不是程序开发人员在指令中给出的,而是汇编工具在汇编时根据指令中操作数(目的地址)按照式(1)自动计算出来的。
没有了
下一篇: ABC称飞机最可能坠落在印度洋南部
发表评论 评论 (3 个评论)