登录注册
论坛
五彩晶圆(初级)
991
0
邀请:@maychang @chunyang @damiaa @jimtien 参与回复
LCALL ADDR16这条指令,ADDR16是两个字节,再加上指令码一个字节,为什么是PC+2 , 不应该是(PC)+3 吗?
image.png (283.93 KB, 下载次数: 0) 下载附件 保存到相册 2022-8-15 11:33 上传
image.png (283.93 KB, 下载次数: 0)
下载附件 保存到相册
2022-8-15 11:33 上传
扫一扫,分享给好友
超级版主
2万
『LCALL ADDR16这条指令,ADDR16是两个字节,再加上指令码一个字节,为什么是PC+2 , 不应该是(PC)+3 吗?』
教材确实错了。应该是(PC)+3。
你需要弄明白:LCALL addr16 这条指令执行之后接着执行哪个地址的指令,而为了执行此地址的指令,PC 应该是什么值。
你说『ADDR16是两个字节,再加上指令码一个字节,为什么是PC+2 , 不应该是(PC)+3 吗』,是错误地理解为执行 LCALL addr16 之后,执行 LCALL addr16 下面那条指令。这个理解是错误的。
一粒金砂(高级)
123
2
看得真够仔细,这种错误都能发现。
版主
6107
4
楼主这次真发现了个书本问题。LCALL 是三字节指令。
发表回复 回帖后跳转到最后一页
论坛测评队员
EEWorld Datasheet 技术支持
查看 »