新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 8051單片機指令定義詳解——ACALL addr11(1)

        8051單片機指令定義詳解——ACALL addr11(1)

        作者: 時間:2016-11-22 來源:網絡 收藏
        8051單片機指令定義詳解——(ACALL addr11)

        符號說明

        本文引用地址:http://www.104case.com/article/201611/319697.htm


        表示數據傳送方向

        () 表示單元的內容

        (()) 表示間接尋址的內容

        rrr 8個工作寄存器之一;000=R0,001=R1等

        dddddddd 數據位

        aaaaaaaa 地址位

        bbbbbbbb 表示某個位的地址

        i 通過R0(i=0)或R1(i=1)間接尋址

        eeeeeeee 8位的相對地址偏移量


        ACALL addr11


        功能:絕對調用。

        說明:ACALL指令實現無條件調用位于addr11參數所表示地址的子例程。在執行該指令時,首先將PC的值增加2,即使得PC指向ACALL的下一條指令,然后把16位PC的低8位和高8位依次壓入棧,同時把棧指針兩次加1.然后,把當前PC值的高5位、ACALL指令第一字節的7~5位和第2字節組合起來,得到一個16位目的地址,該地址即為即將調用的子例程的入口地址。要求該子例程的起始地址必須與緊隨ACALL之后的指令處于同1個2KB的程序存儲頁中。ACALL指令在執行時不會改變各個標志位。

        示例:SP的初始值為07H,標號SUBRTN位于程序存儲器的0345H地址處,如果執行位于地址0123H處的指令:

        ACALL SUBRTN

        那么SP變為09H,內部RAM地址08H和09H單元的內容分別為25H和01H,PC值變為0345H。

        指令長度(字節數): 2

        指令執行周期: 2

        指令二進制編碼: aaa10001aaaaaaaa

        注意:aaa是11位目標地址addr11的A10~A8位,aaaaaaaa是addr11的A7~A0位。

        指令的操作:

        (PC)←(PC)+2

        (SP)←(SP)+1

        ((SP))←(PC7—PC0)

        (SP)←(SP)+1

        ((SP))←(PC15—PC8)

        (PC10—PC0)←頁面地址



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 石泉县| 义乌市| 富蕴县| 佳木斯市| 科尔| 隆安县| 阳西县| 临漳县| 雷州市| 东安县| 株洲县| 崇州市| 和平区| 青龙| 彭水| 桃园县| 安徽省| 大连市| 屏东县| 永仁县| 济源市| 凤台县| 乌兰浩特市| 枣阳市| 长子县| 徐闻县| 杭锦旗| 昂仁县| 乡宁县| 海口市| 会宁县| 姚安县| 濉溪县| 自贡市| 巴马| 凌海市| 绍兴市| 新邵县| 玉溪市| 织金县| 榆中县|