<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • 電子工程網

    標題: 本來運行正常的匯編程序,為什么加了一個中斷分支子程序就不能運行? [打印本頁]

    作者: lifs    時間: 2010-10-9 12:53
    標題: 本來運行正常的匯編程序,為什么加了一個中斷分支子程序就不能運行?
    RMRG1:     
        CLR        EA    MOV       DFLG,#8FH      LCALL     DSPL_FLG   
        LCALL     DLY1S
      RM10:     MOV        R3,#50
        MOV        R4,#2  
      RM14:     MOV        R6,#5
        ACALL     RMK0
        JZ           RM13
        LCALL     DLY0S
        MOV       R4,#2
        DJNZ      R3,RM14
        AJMP       RMRG0       NOP
        NOP
        LJMP       ERR
      RM13:     DJNZ     R4,RM14   
         MOV      R0Tr,#R0T   
         MOV      R1Tr,#R1T   
         MOV      DFLG,#0EH            LCALL      DSPL_FLG        
         LCALL     DLY1S
         AJMP     RMRG0        
         NOP
         NOP
         LJMP  ERRRMK0:      JNB      P3.2,RM11B
         MOV            P1,#0FFH            
         MOV      A,P1
         ANL      A,#0E0H
         SWAP     A
         RR      A
         CLR      C
         SUBB     A,R6
         RET
         
    RM11B:      MOV            R3,#100      RM11B1:                LCALL     DLY0S
         JB      P3.2,RM10
         DJNZ     R3,RM11B1   
         AJMP           RMRG0  
         NOP
         NOP
         LJMP  ERR
    作者: star2006star    時間: 2010-10-17 19:11
    寫清楚點啊
    作者: embcom010    時間: 2010-10-18 11:00
    中斷分支子程序的主要影響有:

    1、運行時序。
    2、R1~R4的沖突。
    3、堆棧的影響。

    仔細分析一下吧。
    作者: MCU_NEWER    時間: 2010-11-8 20:16
    匯編相對于C語言來說,讀起來較難入腦,導致思緒不能快速清晰的建立起來。

    因此,如要用匯編來寫程序,分段落、加注釋、排版對齊都是很必要的。

    一行只寫一個語句,各子程序的功能是什么都要注釋明白。

    不同的寄存器又是用來儲存什么量的?要注釋。

    程序調用會否導致某些變量的值發生意外的改變呢?

    程序調用前后是否要做、是否有做必要的現場保護、還原呢?

    變量的取值是否恰當呢?特別是控制程序走向的變量,有時可能根本不可能變化達到某一個界限值。

    時序是否恰當呢?

    有些程序段又沒寫出來,也不知它們會對哪些變量產生什么影響。

    如果可以的話,請把程序的目的寫出來,別人就更容易明白了。
    作者: MCU_NEWER    時間: 2010-11-8 20:27
    加注釋不只是為了給別人看,也可以方便自己日后的閱讀、修改、升級,也就是方便維護了。

    事實上本人沒編過什么大程序,也就只編過幾個小小的程序,程序閱讀能力不好,所以也沒細心分析。樓上發表的是部分心得,僅供參考,希望有助于樓主發現問題所在。
    作者: szw0117    時間: 2010-11-8 21:01
    學習了
    作者: 斑頭雁    時間: 2010-11-15 08:53
    加注釋不只是為了給別人看,也可以方便自己日后的閱讀、修改、升級,也就是方便維護了。

    事實上本人沒編過什么大程序,也就只編過幾個小小的程序,程序閱讀能力不好,所以也沒細心分析。樓上發表的是部分心得,僅 ...
    MCU_NEWER 發表于 2010-11-8 20:27


    同意,經驗之談。
    作者: zls261976514    時間: 2011-1-17 17:29
    加注釋不只是為了給別人看,也可以方便自己日后的閱讀、修改、升級,也就是方便維護了。

    事實上本人沒編過什么大程序,也就只編過幾個小小的程序,程序閱讀能力不好,所以也沒細心分析。樓上發表的是部分心得,僅 ...
    MCU_NEWER 發表于 2010-11-8 20:27
    養成良好的編程習慣
    作者: 奮斗六號    時間: 2011-2-5 15:44
    很給力
    作者: gsxpop    時間: 2011-2-15 13:22
    寫得太不清楚了!
    作者: wongfu72    時間: 2011-2-15 21:25
    學習了,
    作者: suwxdsp@163.com    時間: 2011-4-18 21:54
    匯編不加注釋,過一些天后自己都看不懂的。
    作者: klyzh2003    時間: 2011-4-20 20:01
    沒有注釋的匯編程序無異于天書!
    作者: alpha321    時間: 2011-9-17 08:38
    樓上各位都說得很有道理,特別是MCU_NEWER,發帖能遇上這么熱心的朋友不能不說是樓主的造化,可要好好珍惜呀。以后別發這種少頭沒尾的帖子了。
    我看了看程序,其中樓主沒有指出所說的分支,但這里有一個明顯的問題,在RM14標記下,有個調用“ACALL      RMK0”,而在RMK10中又有一個直接跳轉到RM10的“JB       P3.2, RM10”,RM10又在RM14的前邊。這樣反復調用多次,堆棧就會溢出。
    作者: pcbkey    時間: 2015-2-7 11:42
    支持一下




    歡迎光臨 電子工程網 (http://www.portaltwn.com/) Powered by Discuz! X3.4
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷