打印

请达人解释一下这个指令的意思

[复制链接]
1557|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
还我今生|  楼主 | 2008-1-28 20:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
CJNE  Rn, #data, rel  ; A≠#data,(PC)+ 3 + rel→(PC)
这条指令 我这么理解 不知道对不对:假设data=100,那么如果A的内容不等于100则 当前的PC指向(PC)+3+rel的地址,但为什么是加3呢?
如果A的内容等于100,则程序往下执行,也就是(PC)+1→(PC).
有理解错误的地方请高手指出.谢谢

相关帖子

沙发
还我今生|  楼主 | 2008-1-28 20:57 | 只看该作者

再问

cjne a,#100,next ;判断计数器是否满100?
mov temp,#0;满100就清零重新开始
next: ljmp stlop;不满就循环执行

这里中的rel是怎么算的呢,难道就是next吗?

使用特权

评论回复
板凳
bsbjx| | 2008-1-29 07:52 | 只看该作者

cjne指令长度3字节,所以pc+3

  无论A等于或不等于100,都是pc+3.

   rel是目标地址减去当前地址的值,带符号的。由编译器自动计算。

使用特权

评论回复
地板
xwj| | 2008-1-29 08:33 | 只看该作者

你给标号就行了,至于偏移是多少,编译器会自动帮你计算

使用特权

评论回复
5
还我今生|  楼主 | 2008-1-29 21:27 | 只看该作者

多谢 我明白了 顿悟

使用特权

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

本版积分规则

217

主题

1381

帖子

1

粉丝