登录注册
论坛
五彩晶圆(初级)
990
0
邀请:@maychang @chunyang @damiaa @jimtien 参与回复
CNNE 指令,如下图所示,解释中有 若(a)<(driet),则1->cy ,这个解释,对吗
image.png (450.4 KB, 下载次数: 0) 下载附件 保存到相册 2022-8-16 11:25 上传
image.png (450.4 KB, 下载次数: 0)
下载附件 保存到相册
2022-8-16 11:25 上传
扫一扫,分享给好友
版主
6040
203
最烂的一些列书就是xx世纪xxx系列教材,对于这种指令集,不去看英文版手册属于自找麻烦
这指令好象没毛病。找了好几本书,都没有详细讲解这条指令的。唉
超级版主
2万
当然不对。
箭头所处位置是指令 CJNE A ,#data,rel ,A是与立即数比较。红色方框说的可不是A与立即数比较。
红色方框应该放到箭头所在那一行才是。
这三行 CJNE,都是 “比较,不相等转移”。比较实际上是做减法。减法的结果为零,有个标志位置位,程序实际上是根据这个标志位跳转或者不跳转的。
但减法也会影响CY位,够减CY置0,不够减CY置1。这就是红色方框中解释的由来。
一粒金砂(高级)
143
1
楼主学得这么认真,碰到这种疑惑,应该去看8051编译器附带的说明书,比如 Keil,这些是官方权威的解释。不用什么都上来问。
image.png (84.4 KB, 下载次数: 0) 下载附件 保存到相册 2022-8-16 12:46 上传
image.png (84.4 KB, 下载次数: 0)
2022-8-16 12:46 上传
CJNE指令,比较的结果会影响CY,这个功能对两个数字比较有用。
例如,我们要把A中数据和某立即数进行比较,A中数等于该立即数,执行程序(1),大于该立即数,执行程序(2),小于该立即数,执行程序(3)。那么可以使用 CJNE #data,rel,在rel处放置一条JC指令,那么A中数与该立即数不等时会跳到rel处,如果A中数小于该立即数,JC指令将产生跳转(因为CY为1),而A中数大于该立即数,则执行JC这条指令之后的指令。
224
感觉没毛病啊?
“试减”不够减则CY置位
跟第一行跳不跳转无关,不过A和direct相等的话,也没CY什么事了,直接向下执行
发表回复 回帖后跳转到最后一页
EEWorld Datasheet 技术支持
查看 »