打印

求教PIC单片机汇编代码意义!高手救命啊

[复制链接]
2688|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xyhaxxy|  楼主 | 2011-12-12 12:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Label_007D  COMF    0x30      , f;30处值取反
            MOVLW   0x01
            ADDWF   0x30      , f;1+(30)的反码
            BTFSC   STATUS    , Z;判别Z位值
            DECF    0x31      , f;Z=1,则(31)-1
            COMF    0x31      , f;Z=0,则31处值取反
            BTFSC   STATUS    , Z;判别Z位值
            DECF    0x32      , f;Z=1,则(32)-1
            COMF    0x32      , f;Z=0,则32处值取反
            COMF    0x33      , f
            MOVLW   0x01
            ADDWF   0x33      , f
            BTFSC   STATUS    , Z
            DECF    0x34      , f
            COMF    0x34      , f
            BTFSC   STATUS    , Z
            DECF    0x35      , f
            COMF    0x35      , f
            RETURN
Label_002C  MOVF    0x30      , W;CALL到此,(32)(31)(30)+(35)(34)(33)三字节数加法子程序
            ADDWF   0x33      , f
            BTFSS   STATUS    , C
            GOTO    Label_007E
            MOVLW   0x01
            ADDWF   0x34      , f
            BTFSC   STATUS    , C
            INCF    0x35      , f
Label_007E  MOVF    0x31      , W;GOTO到此
            ADDWF   0x34      , f
            BTFSC   STATUS    , C
            INCF    0x35      , f
            MOVF    0x32      , W
            ADDWF   0x35      , f
            RETURN               ;加法子程序结束
沙发
xyhaxxy|  楼主 | 2011-12-12 12:10 | 只看该作者
请高手指教!上段代码的意义,解释一下.

使用特权

评论回复
板凳
XIEYUANBIN| | 2011-12-12 13:56 | 只看该作者
反汇编代码~~难看,不看

使用特权

评论回复
地板
xyhaxxy|  楼主 | 2011-12-12 14:37 | 只看该作者
求教PIC单片机汇编代码意义:
                 COMF    0x30      , f
                  MOVLW   0x01
                  ADDWF   0x30      , f
            BTFSC   STATUS    , Z
            DECF    0x31      , f
                  COMF    0x31      , f
            BTFSC   STATUS    , Z
            DECF    0x32      , f
                 COMF    0x32      , f
           RETURN

使用特权

评论回复
5
yewuyi| | 2011-12-12 21:26 | 只看该作者
自己对着ASM指令看去吧

使用特权

评论回复
6
宋业科| | 2011-12-13 07:22 | 只看该作者
三字节数加法子程序?

使用特权

评论回复
7
fzsw1980| | 2011-12-13 08:53 | 只看该作者
这个程序的算法跟实际工况挂钩的,靠凭空猜测是猜不出来的,除非碰到有人刚好做过类似的算法

使用特权

评论回复
8
xaq79| | 2011-12-13 09:42 | 只看该作者
软件SIM下,输入个值,看看结果运算结果

使用特权

评论回复
9
lnak| | 2011-12-13 12:44 | 只看该作者
貌似减法,取补码,再加

使用特权

评论回复
10
gdutxzy| | 2011-12-13 13:47 | 只看该作者
看看调用的地方在哪,搞清楚30 31 32  以及33 34 35 的关系是什么。
你能得到此程序,肯定知道此程序是在哪个应用上的啦,你自己比较容易猜,其它人哪知道。

使用特权

评论回复
11
xyhaxxy|  楼主 | 2011-12-13 16:20 | 只看该作者
谢谢各位高手朋友的热情解答!万分感谢!后来我仔细研究了一下,这看是加法,其实是用补码做三字节减法,是35 34 33 -32 31 30,他先把32 31 30取补码然后和35 34 33相加.其实,34 33 是TMR1H TMR1L定时器计数,35是HL的进位,32 31也是TMR1H TMR1L的值,只不过是两次采样而已.再次谢谢各位朋友了!

使用特权

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

本版积分规则

1

主题

4

帖子

1

粉丝