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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 第12章 用到棧的跳轉(zhuǎn)(X86匯編教程)

          第12章 用到棧的跳轉(zhuǎn)(X86匯編教程)

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏
          X86匯編教程目錄http://www.51hei.com/mcu/2619.html

          用過高級語言的同學都知道.高級語言有函數(shù)概念.可以跳轉(zhuǎn)到某地方執(zhí)行代碼計算一些東西,計算完成后可以返回原處繼續(xù)執(zhí)行代碼.現(xiàn)在我們要用匯編實現(xiàn)這個了...嘛

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

          方法是這樣的:在跳轉(zhuǎn)前,先把IP寄存器的值壓入堆,然后跳轉(zhuǎn),計算后要返回再出棧到IP即可.是不是覺得稍微麻煩了點?其實8086提供了相關(guān)指令,幫我們輕松完成:


          指令名 :CALL

          指令說明 :和JMP相同,只是在跳轉(zhuǎn)前會把當前地址壓棧,方便返回


          指令名 :RET

          指令說明 :沒有操作數(shù),指令執(zhí)行效果相當于POP IP,也就是返回



          實例代碼:
          JMP START;跳轉(zhuǎn)到代碼開始處
          AXQingLing:;這里是"AX清零函數(shù)"的起點(其實就是個標號)
          MOV AX,0000H;AX清零
          RET;返回
          START:;代碼開始
          MOV AX,1234H;往AX隨便寫個數(shù)字
          CALL AXQingLing;調(diào)用"AX清零函數(shù)"(其實就是個跳轉(zhuǎn))
          ;代碼到此結(jié)束

          請把我的實例編譯后放進Debug試試吧.

          作業(yè):在我的實例中增加個"BX和CX一起清零函數(shù)",并在我的實例中"調(diào)用AX清零"之后"調(diào)用"一次,(記得用RET返回啊...)



          關(guān)鍵詞: 棧跳轉(zhuǎn)X86匯編教

          評論


          技術(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); })();