发表于:2011/10/23 21:03:16
#0楼
和其他体系的MCU一样,应广单片机也有自己的散转指令。
但是不明白是应广科技当时的设计失误,还是有意这样的设计,
让散转的偏移和其他体系的MCU不一样,一个很容易忽视的问题是
当执行PCADD时,如果执行之前累加器中A的值为0,程序指针不会
从紧靠PCADD的下一条地址执行,而是跳到一个意想不到的地址。
这样,可能需要我们在做一些功能时做一点调整。
例如:
如果ACC中的数据是用来查表的,那么对应关系就需要调整了。
简单的应用是用0~9查数码管的段码,
cha_tab:
mov a, data
inc a //如果其他体系的MCU,完全不需要这句了,而这句引入
//加入了一些不便,万一data中的值为0xff,结果会错误,
//不加这句,没有对应关系
pcadd //执行此句,a中的值可能会改变,联想下delay 指令,呵呵
ret 0x3f //当a的值为1时,执行此条语句
ret 0x06
..........
这样的指令,能不用,还是尽量不用的好,或者尽量少用,呵呵。
14PIN的单片MCU多核心时代已来临, 想在低容量的MCU系统跑多任务吗,欢迎登陆"http://gongkong.gkbk.com"我的博客 查看详情,谢谢!