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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機教程:單片機邏輯與或異或指令詳解

          51單片機教程:單片機邏輯與或異或指令詳解

          作者: 時間:2012-07-10 來源:網(wǎng)絡(luò) 收藏

          四、控制轉(zhuǎn)移類

          1.無條件轉(zhuǎn)移類

          1.短轉(zhuǎn)移類

          AJMPaddr11

          2.長轉(zhuǎn)移類指令

          LJMPaddr16

          3.相對轉(zhuǎn)移指令

          SJMPrel

          上面的三條指令,如果要仔細(xì)分析的話,區(qū)別較大,但初學(xué)時,可不理會這么多,統(tǒng)統(tǒng)理解成:JMP 標(biāo)號,也就是跳轉(zhuǎn)到一個標(biāo)號處。事實上,LJMP 標(biāo)號,在前面的例程中我們已接觸過,并且也知道如何來使用了。而AJMP和SJMP也是一樣。那么他們的區(qū)別何在呢?在于跳轉(zhuǎn)的范圍不一樣。好比跳遠(yuǎn),LJMP一下就能跳64K這么遠(yuǎn)(當(dāng)然近了更沒關(guān)系了)。而AJMP 最多只能跳2K距離,而SJMP則最多只能跳256這么遠(yuǎn)。原則上,所有用SJMP或AJMP的地方都可以用LJMP來替代。因此在初學(xué)時,需要跳轉(zhuǎn)時可以全用LJMP,除了一個場合。什么場合呢?先了解一下AJMP,AJMP是一條雙字節(jié)指令,也就說這條指令本身占用存儲器(ROM)的兩個單元。而LJMP則是三字節(jié)指令,即這條指令占用存儲器(ROM)的三個單元。下面是第四條跳轉(zhuǎn)指令。

          4. 間接轉(zhuǎn)移指令

          JMP @A+DPTR

          這條指令的用途也是跳轉(zhuǎn),轉(zhuǎn)到什么地方去呢?這可不能由標(biāo)號簡單地決定了。讓我們從一個實際的例子入手吧。

          MOV DPTR,#TAB ;將TAB所代表的地址送入DPTR

          MOV A,R0 ;從R0中取數(shù)(詳見下面說明)

          MOV B,#2

          MUL A,B ;A中的值乘2(詳見下面的說明)

          JMP A,@A+DPTR ;跳轉(zhuǎn)

          TAB: AJMP S1 ;跳轉(zhuǎn)表格

          AJMP S2

          AJMP S3

          7.gif

          6.gif
          圖2

          51單片機相關(guān)文章:51單片機教程


          單片機相關(guān)文章:單片機教程


          單片機相關(guān)文章:單片機視頻教程


          單片機相關(guān)文章:單片機工作原理




          關(guān)鍵詞: 單片機 詳解 指令 邏輯 教程

          評論


          相關(guān)推薦

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