mcs-51的七種尋址方式

(尋址方式:所謂尋址方式就是CPU執行那一條指令時如何找到該指令所要求操作數的方式)

  • 寄存器尋址
    • 操作數放在寄存器中,在指令中直接以寄存器的名字來表示操作數的地址。例如MOV A, RO,即將R0寄存器的內容送到累加器A中
  • 立即尋址
    • 操作數直接出現在指令中,緊跟在操作碼的後面,作爲指令的一-部分與操作碼一起存放在程序存儲器中,可以立即得到並執行,例如: MOVA #30H指令中30H就是立即數,。這一條指令的功能是執行將立即數30H傳送到累加器A中的操作。
  • 寄存器間接尋址
    • 由指令指出某一寄存器的內容作爲操作數地址的尋址方法,例如: MOVA, @R1,將以工作寄存器R1中的內容爲地址的片內RAM單元的數據傳送到A中去
  • 直接尋址
    • 指令中直接給出操作數所在的存儲器地址,以供取數或存數的尋址方式稱爲直接尋址。例如: MOVA, 40H指令中的源操作數就是直接尋址,40H爲操作數的地址。該指令的功能是把片內RAM地址爲40H單元的內容送到A中
  • 変址尋址
    • 基地址寄存器加變址寄存器間接尋址
  • 相對尋址
    • 相對尋址是以當前程序計數器PC值加上指令中給出的偏移量rel,而構成實際操作數地址的尋址方法。它用於訪問程序存儲器,常出現在相對轉移指令中。
  • 位尋址
    • 位尋址是在位操作指令中直接給出位操作數的地址,可以對片內RAM中的128  位和特殊功能寄存器SFR中的93位進行尋址
  • 課後練習題:比較下列兩條指令的區別
    • MOV A,#24H 與 MOV A,24H
      • 前者是立即尋址,功能是將立即數24H直接傳送到累加器A中
      • 後者是直接尋址,功能是將地址爲24H的操作數傳送到累加器A中
    • MOV A,R0 與 MOV A,@R0 
      • 前者是寄存器尋址,直接將R0寄存器中的數據傳送到A中
      • 後者是寄存器間接尋址,功能是將地址指針R0所指向內部數據存儲器單元中的數據送入累加器A中
    • MOV A,@R0 與 MOVX A,@R0
      • 前者是寄存器間接尋址,功能是將R0中的數據作爲地址進行尋址所得到的片內數據送入片內寄存器A中
      • 後者是寄存器間接尋址,功能是將R0中的數據作爲地址進行尋址所得到的片外RAM數據送入A中
    • MOVX A,@DPTR
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章