打印

[help]关于程序MOVC A,@A+PC

[复制链接]
2949|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liang99740|  楼主 | 2008-4-2 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


程序MOVC A,@A+PC 
1、怎么计算这个偏移量A的值?是不是跟接下来的指令的周期数有关? 
2、这个指令可以用来查ASCII表吗,怎么查表?

例如: 
…… 
…… 
ADD A,#07H ;地址调整 
MOVC A,@A+PC ;查表得相应的ASCII码 
…… 
…… ;后面的指令周期刚是6个 
END 

本人比较愚笨,希望大家能给个详细的解答,拜谢咯 

相关帖子

沙发
wsl_5631| | 2008-4-3 08:38 | 只看该作者

答案是不用MOVC A,@A+PC 用MOVC A,@A+DPTR

算来算去多麻烦。

使用特权

评论回复
板凳
computer00| | 2008-4-3 09:58 | 只看该作者

相对跳转有相对跳转的好处,可以生成与地址无关的代码

后面的偏移量不是指令周期数,而是字节数。注意当前PC值。

使用特权

评论回复
地板
HWM| | 2008-4-3 10:11 | 只看该作者

自己查一下MOVC A,@A+PC是几字节的指令,

此处PC就是本指令地址加指令长度(即指向下一条指令,若存在的话)

一般下面加一转移指令,后接一个常数表。这样使用有两个好处,1)是不麻烦DPTR,2)可相对定位。

使用特权

评论回复
5
liang99740|  楼主 | 2008-4-3 10:33 | 只看该作者

怎么查ASCII表?

还有疑问,怎么查询ASCII表,是不是也要像其他的表格一样,附在程序的后面。用DB的形式列出来?

使用特权

评论回复
6
HWM| | 2008-4-3 10:41 | 只看该作者

任何表都一样,就是在“转折点”下加DB。

至于转折点可用

ret
sjmp
ajmp
ljmp

等等。

关键是要算准偏移量。

使用特权

评论回复
7
ayb_ice| | 2008-4-3 15:20 | 只看该作者

推荐使用用MOVC A,@A+DPTR

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

16

帖子

0

粉丝