打印
[PIC®/AVR®/dsPIC®产品]

汇编子程序调用求教.

[复制链接]
745|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
JLennon|  楼主 | 2017-10-24 09:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Label_0051  MOVLW   0xA0                          
            BSF     STATUS    , RP0         
            MOVWF   VRCON                          
            MOVLW   0x32                          
            BCF     STATUS    , RP0         
            MOVWF   0x3D                          
Label_0015  BTFSC   CMCON     , COUT  
            GOTO    Label_0013                  
            MOVLW   0xAF                          
            BSF     STATUS    , RP0         
            SUBWF   VRCON     , W         
            BTFSS   STATUS    , C         
            INCF    VRCON     , F         
            BCF     STATUS    , RP0         
            CALL    Label_0014                  
Label_004D  BSF     STATUS    , RP0         
            BCF     TRISA     , TRISA0
            BCF     STATUS    , RP0   
            CLRF    0x28                          
            CLRF    0x33                          
            CLRF    0x34                          
            CLRF    0x37                          
            CLRF    0x38                          
            CLRF    0x29                          
            CLRF    0x2B                          
            CLRF    0x2C                          
            CLRF    0x25                          
            MOVLW   0x04                          
            MOVWF   CMCON                          
            MOVLW   0x01                          
            CALL    Label_0032                  
            CALL    Label_0051                  ;这里执行Label_0051段代码,但是Label_0051段最后没有return,是不是就接着执行Label_0015段代码?


沙发
NE5532| | 2017-10-24 09:42 | 只看该作者
完全正确,这是汇编的一种技巧。

使用特权

评论回复
板凳
mcu5i51| | 2017-10-24 09:52 | 只看该作者
没有return的代码,用call的话和goto相仿,可以正常运行,不过不要这样用;
原因是没有返回的调用就是递归了,没有完成条件的递归是完全失控的,每次会用掉一些栈,并不会释放;

使用特权

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

本版积分规则

147

主题

687

帖子

8

粉丝