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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 8051尋址方式總結(jié)

          8051尋址方式總結(jié)

          作者: 時間:2016-11-11 來源:網(wǎng)絡(luò) 收藏
          8051單片機共有7種尋址方式。尋址方式是指令中確定操作數(shù)的形式,用來確定操作數(shù)所處的存儲空間。

          1.立即尋址:在指令中直接給出操作數(shù)
          MOV A, #80H 8位操作數(shù)
          MOV A, #2000H 16位操作數(shù)

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

          2.直接尋址:指令中直接給出操作數(shù)地址
          (1)SFR,這一存儲空間只能使用直接尋址
          MOV PSW, #50H
          (2)內(nèi)部數(shù)據(jù)RAM,這一存儲空間可以使用直接尋址和寄存器間接尋址
          MOV A, 30H

          3.寄存器尋址:以通用寄存器的內(nèi)容作為操作數(shù)(通用寄存器包括A, B, DPTR, R0~R7)
          INC DPTR
          注意:A、B既是通用寄存器,也是SFR(直接尋址)

          4.寄存器間接尋址:以寄存器中的內(nèi)容作為操作數(shù)的地址
          能夠用于寄存器間接尋址的寄存器有:R0,R1,DPTR,SP
          區(qū)分內(nèi)部數(shù)據(jù)RAM尋址和外部數(shù)據(jù)RAM尋址:外部數(shù)據(jù)RAM尋址指令上采用MOVX
          對內(nèi)部數(shù)據(jù)RAM尋址:使用8位的R0或者R1即可
          MOV @R0, A
          對外部數(shù)據(jù)RAM尋址:使用P2端口提供高8位地址,使用R0或者R1提供低8位地址;或者使用16位的DPTR提供地址
          MOVX A, @R1
          MOVX @DPTR, A

          5.變址尋址:以基址寄存器PC或者DPTR與變址寄存器A中的內(nèi)容之和作為操作數(shù)的地址
          變址尋址只能對程序存儲器中的數(shù)據(jù)進行尋址,由于程序存儲器是只讀的,因此變址尋址只有讀操作,指令上采用MOVC
          MOVC A, @A+DPTR
          MOVC A, @A+PC

          6.相對尋址:用于修改PC的值,使得PC加上指令中給出的一字節(jié)的偏移量
          由于轉(zhuǎn)移指令有兩字節(jié)和三字節(jié)這兩種形式,因此偏移量的范圍分別為-126~+129和-125~+130
          SJMP 80H

          7.位尋址:以位地址中的內(nèi)容為操作數(shù)
          SETB 20H
          MOV 32H, C

          總結(jié)一下各種尋址方式的使用場合:
          立即尋址:常數(shù)
          直接尋址:SFR和內(nèi)部數(shù)據(jù)RAM
          寄存器尋址:寄存器區(qū)
          寄存器間接尋址:內(nèi)部數(shù)據(jù)RAM和外部數(shù)據(jù)RAM
          變址尋址:程序存儲器
          相對尋址:PC
          位尋址:位地址區(qū)



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