jkm99的個(gè)人空間 http://selenalain.com/space-uid-71395.html [收藏] [復制] [RSS]

博客

PIC單片機匯編語(yǔ)言編程問(wèn)題-基于PIC12F509

已有 2372 次閱讀2014-2-12 19:50 |個(gè)人分類(lèi):單片機| PIC單片機

;mpu:  PIC12F509
;CALL指令僅限于調用前半頁(yè)的子函數。goto指令能跳轉到一頁(yè)的任何地方。
;如果要調用分布在程序頁(yè)中任意地方的函數,可使用這樣的方法:
 
    org 0x00 ;第0頁(yè)
    goto  Start
;---------------------------------------
DoSomething_1:
      ...  ...
      retlw 0x00
 
Start:
    call  DoSomething_1;直接調用無(wú)需切換程序頁(yè)
    ... ...
    bsf  STATUS,PA0 ;切換到函數DelayMs_V所在的程序頁(yè)
    call DelayMs_V
    BCF  STATUS,PA0 ;切換回第0頁(yè)
    ... ...
    bsf   STATUS,PA0
    call  Domething_2_V
    BCF   STATUS,PA0
 
;------------------------------------------------------
      org 0x200   ;第1頁(yè)
;如果要調用分布在程序頁(yè)中任意地方的函數,可使用這樣的方法,call間接調用DelayMs函數
DelayMs_V: goto    DelayMs   ;goto可以跳轉到一個(gè)程序頁(yè)的任何地方
DoSomething_2_V: GOTO   DoSomething_2
 
;---------------------------------------
    ... ...
;----------------------------------------
DoSomething_2:
   ... ...
   call  DelayMs_V  ;分布在同一頁(yè)中的函數之間的調用不需要切換程序頁(yè)。
   ... ...
     retlw  0x00
;----------------------------------------
org  0x360
DelayMs:
      ... ...
      retlw 0x00
;---------------------------------------------------
子函數最好不要跨頁(yè),不易于管理。
分布在同一頁(yè)中的函數之間調用時(shí)不需要切換到該頁(yè)。
分布在不同頁(yè)中的函數之間調用時(shí)要先切換到被調用函數所在的程序頁(yè),函數調用結束在切換回之前的程序頁(yè)。見(jiàn)上述例子。
 

評論 (0 個(gè)評論)

facelist

您需要登錄后才可以評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
返回頂部
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页