易码技术论坛

 找回密码
 加入易码
搜索
查看: 226|回复: 2

[求助]为什么ADC前加CLC而SBC前加SEC?

[复制链接]
发表于 2010-11-10 22:12:51 | 显示全部楼层 |阅读模式
RT,以前写程序的时候就知道开始做加法前要加CLC,开始做减法要加SEC
因为ADC是A+#$data+C,所以要加CLC,这我可以理解
那为什么用SBC前加的是SEC,按照奥秘里写的是
SBC--从累加器减去存储器和进位标志C,结果送累加器  A-M-C→A
那把C置1之后不是多减了1吗,可是在6502 Simlator中单步又发现不是这样,反而将C置0时会多减1
这是为什么呢?
在8086和C51里加减都是先置0的……
本来想发到底层汇编区的,结果发现不知道该选哪一类了……
发表于 2010-11-10 23:55:42 | 显示全部楼层
减法借位反着来的,LZ试试用0x0155-0x00aa就知道了

[ 本帖最后由 dragon_ 于 2010-11-11 00:04 编辑 ]
 楼主| 发表于 2010-11-13 17:56:50 | 显示全部楼层
我也做知道多位减法C标志变化效果,就是理解不了
不管为什么了,反了就反了吧,反正写程序无影响
感谢dragon_
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 17:27 , Processed in 0.008852 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表