巨污gif动态图出处第900期_国产精品手机视频一区二区_狠狠色婷婷丁香综合久久韩国_操美女的软件

131 1300 0010
其他
當前位置: 首頁>> 元件技術>>其他>>
  • 導航欄目
  • 二極管
  • 整流橋
  • MOS管
  • 其他
  • 8051單片機指令系統的7種尋址方式解析
    8051單片機指令系統的7種尋址方式解析
  • 8051單片機指令系統的7種尋址方式解析
  •   發布日期: 2019-03-12  瀏覽次數: 2,927

    尋址方式:尋址就是尋找操作數的地址。絕大多數指令執行時都需要操作數,因此就存在如何確定操作數地址的問題。所謂尋址方式就是通過什么途徑獲取操作數的方式。根據指令操作的需要,計算機總是提供多種尋址方式。一般來說,尋址方式越多計算機的尋址能力就越強,但指令系統也就越復雜。

    8051指令系統有7種尋址方式:寄存器尋址,直接尋址,寄存器間接尋址,立即尋址,基址寄存器加變址寄存器間接尋址,相對尋址,位尋址,下面分別介紹。

     

    寄存器尋址

    寄存器尋址:寄存器尋址就是操作數在寄存器中,因此指定了寄存器就得到了操作數。采用寄存器尋址方式的指令都是一字節的指令,指令中以符號名稱來表示寄存器。例如:MOV A R1 這條指令的功能是把工作寄存器R1的內容傳送到累加器A中,由于操作數在R1中,因此指令中指定了R1,也就得到了操作數。

    8051單片機指令系統的7種尋址方式解析

    寄存器尋址方式的尋址范圍包括:工作寄存器組R0~R7,部分特殊寄存器ACC,B,DPTR等。

    直接尋址

    直接尋址:直接尋址就是在指令中直接給出操作數所在單元的真實地址。這里給出的操作數直接地址為8位二進制地址。程序中一般用十六進制數表示。例如:指令MOV A,30H 把內部RAM單元30H中的數據傳送給累加器A,指令中30H就是操作數的直接地址。

    直接尋址方式的尋址范圍包括:內部數據存儲器低128單元,特殊功能寄存器。

    特殊功能寄存器在指令的表示中除了可以以直接地址形式給出外,還可以以寄存器符號形式給出,如對累加器A,在指令中可使用其直接地址OEOH,也可使用其符號形式ACC。

    立即尋址

    立即尋址:立即尋址方式就是實際操作數作為指令的一部分,在指令中直接給出,取指令時,可在程序存儲器中直接取得操作數。

    通常把出現在指令中的操作數稱為立即數。采用立即尋址方式的指令,在立即數前面加上立即尋址符“#”。例如指令MOV A,#30H中30H就是立即數,指令功能為將30H賦給累加器A。

    8051中除了一條指令需16位長的立即數外,其余都是8位的立即數,這條16位的立即尋址指令是:MOV DPTR,#data16 指令的功能是將16位的立即數賦給數據指針DPTR寄存器。

    寄存器間接尋址

    寄存器間接尋址:寄存器間接尋址方式中,寄存器內存放的是操作數的地址,即操作數是通過寄存器間接得到的,因此稱為寄存器間接尋址。

    寄存器的間接尋址需要以寄存器符號的形式來表示,且在寄存器名稱前面加上間接尋址符號“@”。例如指令MOV A,@R0就使用了寄存器間接尋址方式,這條指令的意義為將地址指針R0指向的內部數據存儲器單元中的數據送入累加器A中。

    假設R0中內容為30H,則此指令的功能是以R0寄存器的內容30H為地址,把內部RAM 30H單元中的內容傳送給累加器A。

    8051規定,采用R0、R1 DPTR作為間接尋址寄存器,可尋址片內數據存儲器RAM的低128B單元和片外數據存儲器的低256單元。

    采用DPTR作間址寄存器,可尋址片外數據存儲器的整個64KB地址空間。堆棧指針SP用于指示堆棧操作的地址,因此,PUSH和POP指令也是寄存器間接尋址。

    基址寄存器加變址寄存器間接尋址

    基址寄存器加變址寄存器間接尋址:這種尋址方式用于尋址程序存儲器的地址空間,它是以DPTR或PC作基址寄存器,以累加器A作為變址寄存器,以兩者的內容之和形成的16位數作為操作數地址,也稱為變址尋址。

    例如指令MOVC A,@A+DPTR就是變址尋址,其功能為把DPTR和A的內容之和作為程序存儲器的地址,再將程序存儲器中該地址單元的內容傳送給累加器A。

    假如執行指令前,A=30H。 DPTR=22F1H。根據本尋址方式形成的操作數地址為22F1H+30H=2321H。程序存儲器ROM的地址單元2321H中內容為68H。故指令執行結果為A的內容變為68H。

    這種尋址方式是專門針對程序存儲器的尋址方式。基址寄存器不同,其尋址范圍不同。

    用PC作基址寄存器時,尋址范圍為以當前PC值為起始的256B。

    MOVC A,@A+PC 尋址范圍為64KB程序存儲器空間。

    采用這種尋址方式的指令只有3條。MOVC A,@A+DPTR MOVC A,@A+PC JMP @A+DPTR前2條是程序存儲器讀指令,也稱查表指令。后1條是無條件轉移指令,又叫散轉指令。

    相對尋址

    相對尋址:相對尋址方式是為實現程序的相對轉移而設計,由相對轉移指令所采用。在這種尋址方式下,將程序計數器PC的當前值加上由指令中給出的偏移量rel,從而構成了程序轉移的目的地址。

    這里應注意,PC的當前值為該相對轉移指令的下一條指令的地址。因而轉移目的地地址可表示如下:目的地址=轉移指令地址+轉移指令字節數+rel,相對地址的偏移量rel是一個8位帶符號二進制補碼,范圍為+127—-128。即相對尋址時,向前可跳轉127字節,向后可跳轉128字節。

    例如在程序存儲器地址2000H處有一條采用相對尋址方式的兩字節轉移指令JC 35H,并且在執行此指令前進位CY=1,按照指令的功能應發生相對轉移JC 35H為兩字節指令,因此在計算目的地址時,PC的當前值為下一條指令的地址2002H,偏移量為35H,因此計算出的目的地址為2037H,將它賦給PC,則程序轉移到2037H地址繼續運行。

    位尋址

    位尋址:8051具有獨立的位處理機即布爾處理機,對尋址的位進行處理。相應的,在指令系統中有一類位操作指令,它們僅允許采用位尋址方式,直接尋址內部數據存儲器16個字節單元的128個位,以及特殊功能寄存器中可直接尋址的位,可位尋址的各位都具有獨立的8位二進制表示的位地址。

    在布爾處理機中,以進位位CY作為位累加器。例如指令ANL C,31H就是一條位尋址指令,其功能是布爾累加器C的值與位地址31H中的值進行邏輯“與”操作。

    位尋址方式的尋址范圍是內部ROM中字節地址20H~2FH的16字節單元共128個二進制位,位地址為00~7FH。在8051中,位地址的表示可以采用下面幾種形式:

    直接使用位地址表示 ,例如進位位CY的位地址為0D7H。

    采用字節單元地址加位的表示法,如20H.5,表示字節單元地址20H的位5。這種表示法可以避免查表或計算,比較方便。對可位尋址的特殊功能寄存器可直接用寄存器名稱加位的方法。如以PSW.7表示進位位CY,以ACC.5表示累加器ACC的第五位。

    使用位名稱:在可位尋址的特殊功能寄存器中,一些位是有符號名稱的,例如PSW中位5是F0標志,可用直接F0表示該位,進位位可用CY表示等。


  • ·上一篇:
    ·下一篇:
  • 其他關聯資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區松崗鎮潭頭第二工業城A區27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機:131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權所有:Copyright?2010-2023 m.267818.cn 電話:13113000010 粵ICP備2021111333號