登录
首页 单片机论坛
回帖 发帖
正文

主题:PCADD指令注意事项

点击:1335 回复: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
           ..........
        这样的指令,能不用,还是尽量不用的好,或者尽量少用,呵呵。
11-10-23 21:03

工控新闻

更多新闻资讯