[PIC®/AVR®/dsPIC®产品] 汇编子程序调用求教.

[复制链接]
1048|2
 楼主| JLennon 发表于 2017-10-24 09:40 | 显示全部楼层 |阅读模式
  1. Label_0051  MOVLW   0xA0                          
  2.             BSF     STATUS    , RP0         
  3.             MOVWF   VRCON                          
  4.             MOVLW   0x32                          
  5.             BCF     STATUS    , RP0         
  6.             MOVWF   0x3D                          
  7. Label_0015  BTFSC   CMCON     , COUT  
  8.             GOTO    Label_0013                  
  9.             MOVLW   0xAF                          
  10.             BSF     STATUS    , RP0         
  11.             SUBWF   VRCON     , W         
  12.             BTFSS   STATUS    , C         
  13.             INCF    VRCON     , F         
  14.             BCF     STATUS    , RP0         
  15.             CALL    Label_0014                  
  16. Label_004D  BSF     STATUS    , RP0         
  17.             BCF     TRISA     , TRISA0
  18.             BCF     STATUS    , RP0   
  19.             CLRF    0x28                          
  20.             CLRF    0x33                          
  21.             CLRF    0x34                          
  22.             CLRF    0x37                          
  23.             CLRF    0x38                          
  24.             CLRF    0x29                          
  25.             CLRF    0x2B                          
  26.             CLRF    0x2C                          
  27.             CLRF    0x25                          
  28.             MOVLW   0x04                          
  29.             MOVWF   CMCON                          
  30.             MOVLW   0x01                          
  31.             CALL    Label_0032                  
  32.             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

主题

695

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部