打印

SBC指令,2个资料运算结果不一样,来问大家。

[复制链接]
2663|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zgq800712|  楼主 | 2011-9-8 11:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
http://www.sinowealth.com/ftp/pu ... mming_Guide_V10.pdf  这个是英文的

http://bbs.sinowealth.com/attach ... 1BJVzZBUjZpMmhteUJV
http://bbs.sinowealth.com/attach ... 1BJVzZBUjZpMmhteUJV

这2个是印刷版本的




     这个是英文的这个例子                               这个是印刷版本的例子               
[ Example ] CY=0,6 - 5=?                         CY=0,06H - 05H=?           
:           ;CY=0                      :                                          ;CY=0                     
LDI 20H,05H ;AC=05H,$20H=05H              LDI 20H,05H ;AC=05H,$20H=05H
LDI 21H,06H ;AC=06H,$21H=06H              LDI 21H,06H ;AC=06H,$21H=06H   
LDA 20H,0   ;AC=05H                                 LDA 20H,0   ;AC=05H              
SBC 21H,0   ;AC=01H,CY=0,$21H=06H     SBC 21H,0   ;AC=00H,CY=1,$21H=06H
:                                      :                              
[ Example ] CY=1,6 - 5=?                         例2-4-12:CY=1,06H - 05H=?   
:           ;CY=1                      :                                          ;CY=1                        
LDI 20H,05H ;AC=05H,$20H=05H              LDI 20H,05H ;AC=05H,$20H=05H   
LDI 21H,06H ;AC=06H,$21H=06H              LDI 21H,06H ;AC=06H,$21H=06H   
LDA 20H,0   ;AC=05H                                 LDA 20H,0   ;AC=05H              
SBC 21H,0   ;AC=02H,CY=0,$21H=06H      SBC 21H,0   ;AC=01H,CY=1,$21H=06H


大家对比左边和右边的
沙发
zgq800712|  楼主 | 2011-9-8 11:53 | 只看该作者
第一个是 CY=0   06H-05H 的运算结果:
一个是AC=01H,CY=0,$21H=06H  另一个却是AC=00H,CY=1,$21H=06H     哪个是扯淡?
第二个是CY=1,06H - 05H的运算结果:
AC=02H,CY=0,$21H=06H     和   AC=01H,CY=1,$21H=06H


哪个在扯淡?

使用特权

评论回复
板凳
zgq800712|  楼主 | 2011-9-8 12:02 | 只看该作者
SBC 是  AC <-  Mx-AC+CY  资料上说如果Mx大于等于AC CY会被置1,否者置0。
**********************************************************
AC <-  Mx-AC+CY  我想问下 这里的CY是上次运算的CY还是  Mx-AC后的CY,

我就先认为是Mx-AC后的CY,如果Mx大于等于AC CY=1, 那就是 AC <-Mx-AC+1,进位标志CY=1
                                        如果Mx小于AC CY=0, 那就是 AC <- Mx-AC+0      ,进位标志CY=0

如果这 AC <-  Mx-AC+CY  是之前指令的CY呢? 然后  AC <-  Mx-AC+CY
                                然后就是AC <- Mx-AC+(之前指令的CY)  然后
                                      如果Mx大于等于AC ,这条指令后就是CY=1,
                                      如果Mx小于AC CY=0, 这条指令后就是CY=0,
我该怎么理解?

使用特权

评论回复
地板
zgq800712|  楼主 | 2011-9-8 15:38 | 只看该作者

使用特权

评论回复
5
neyo.zhong| | 2011-9-8 17:57 | 只看该作者
感谢 zgq800712 对中颖技术支持工作的监督与支持,英文版由于多年前写得,当时的指令集用法与现在的有些许出入,当然啦,也不排除是因为技术人员马虎写错了,今后我们会多多注意的。

使用特权

评论回复
6
Cortex-M0| | 2011-9-8 18:01 | 只看该作者
呵呵~~~

恭喜LZ, 练成神功~~~

使用特权

评论回复
7
Cortex-M0| | 2011-9-8 18:02 | 只看该作者
呵呵~~~

恭喜LZ, 练成神功~~~

使用特权

评论回复
8
gongche| | 2011-9-14 13:34 | 只看该作者
楼主真强悍~~~

使用特权

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

本版积分规则

3

主题

15

帖子

1

粉丝