<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          符號說明

          本文引用地址:http://www.ex-cimer.com/article/201611/319697.htm


          表示數(shù)據(jù)傳送方向

          () 表示單元的內(nèi)容

          (()) 表示間接尋址的內(nèi)容

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

          dddddddd 數(shù)據(jù)位

          aaaaaaaa 地址位

          bbbbbbbb 表示某個位的地址

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

          eeeeeeee 8位的相對地址偏移量


          ACALL addr11


          功能:絕對調(diào)用。

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

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

          ACALL SUBRTN

          那么SP變?yōu)?9H,內(nèi)部RAM地址08H和09H單元的內(nèi)容分別為25H和01H,PC值變?yōu)?345H。

          指令長度(字節(jié)數(shù)): 2

          指令執(zhí)行周期: 2

          指令二進制編碼: aaa10001aaaaaaaa

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

          指令的操作:

          (PC)←(PC)+2

          (SP)←(SP)+1

          ((SP))←(PC7—PC0)

          (SP)←(SP)+1

          ((SP))←(PC15—PC8)

          (PC10—PC0)←頁面地址



          關(guān)鍵詞: 8051單片機指令定義詳

          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();