單片機的指令和尋址方式

2020-12-16 電子產品世界

單片機要正常運作,事先需編製程序,再把程序放入存貯器中,然後由CPU執行該程序。程序是由指令組成的,指令的基本組成是操作碼和操作數。單片機的品種很多,設計時怎樣表示操作碼和操作數,都有各自的規定,再有指令代碼也各不相同,因此,必須對所選單片機的全部指令,也就是所謂「指令系統」,有足夠的了解。各個系列的單片機雖然有不同的指令系統,但也有其共同性。掌握一種單片機的指令系統,對其它系列單片機可以起到觸類旁通的作用。MCS-51單片機應用廣泛,派生品種多,具有代表性,所以,這裡以MCS-51系列的指令系統為例說明「指令」的組成和應用。

  1、MOV A,#20H

本文引用地址:http://www.eepw.com.cn/article/201611/316207.htm

這條指令表示把20H這個數送入累加器A中(一個特殊功能寄存器)。

2、ADD A,70H

這條指令表示把累加器A中的內容(在上例中送入的#20H)和存貯器中地址為70H單元中的內容(也是一個數字),通過算術邏輯單元(英文縮寫為ALU)相加,並將結果保留在A中。這裡MOV、ADD等稱為操作碼,而A、#20H、70H等均稱為操作數。在彙編語言程序中,操作碼通常由英文單詞縮寫而成,這樣有助於記憶,所以又稱助記符。如MOV就是英文單詞MOVE的縮寫,含有搬移的意思;而ADD即為英文單詞,其意為相加。因此,對於略懂英語的用戶,掌握單片機指令的含意是較為方便的。操作數有多種表示法,如以上的#20H稱為立即數,即20H就是真正的操作數。而70H是存貯器中某個單元的地址,在該單元中,放著操作數(比如說是3AH),ADD A,70H不是將70H和A中的內容相加,而是從存貯器70H單元中將3AH取出和A中的內容相加。由上可知,要找到實際操作數,有時就要轉個彎,甚至轉幾個彎,這個過程稱為尋址,MCS-51共有7種尋址方式,現介紹如下:

一、立即尋址:操作數就寫在指令中,和操作碼一起放在程序存貯器中。把「#」號放在立即數前面,以表示該尋址方式為立即尋址,如#20H。

二、寄存器尋址:操作數放在寄存器中,在指令中直接以寄存器的名字來表示操作數的地址。例如MOV A,R0就屬於寄存器尋址,即將R0寄存器的內容送到累加器A中。

三、直接尋址:操作數放在單片機的內部RAM某單元中,在指令中直接寫出該單元的地址。如前例的ADD A,70H中的70H。

四、寄存器間接尋址:操作數放在RAM某個單元中,該單元的地址又放在寄存器R0或R1中。

如果RAM的地址大於256,則該地址存放在16位寄存器DPTR(數據指針)中,此時在寄存器名前加@符號來表示這種間接尋址。如MOV A,@ R0。其它還有變址尋址、相對尋址、位尋址等。

五、位尋址(即可尋找某位的內容)功能,適於按位進行邏輯運算的位處理器。除128位元組RAM、4k字節ROM和中斷、串行口及定時器模塊外,還有4組I/O口P0~P3,餘下的就是CPU的全部組成。把4kROM換為EPROM就是8751的結構,如去掉ROM/EPROM部分即為8031的框圖,如果將ROM置換為Flash存貯器或EEPROM,或再省去某些I/O,即可得到51系列的派生品種,如89C51、AT89C2051等單片機的框圖。

單片機尋址方式越多,找操作數越方便,單片機的功能就越強。


相關焦點

  • 51單片機的尋址方式
    本文引用地址:http://www.eepw.com.cn/article/201611/318119.htm尋址方式:指定操作數所在單元的方法。注意:源操作數、目的操作數都有各自的尋址方式。 掌握指令的7種尋址方式的作用以及不同尋址方式所查詢的存儲空間及範圍,對於常用的指令,能夠給出指令的尋址方式。
  • 51單片機彙編指令的記憶方法
    1 指令操作數的有關符號MCS-51的尋址方式共有六種:立即數尋址、直接尋址、寄存器尋址、寄存器間址、變 址尋址、相對尋址。2)Rn(n=0-7)、A、B、CY、DPTR寄存器尋址變量。3)@R0、@R1、@DPTR、SP表示寄存器間址變量。4)DPTR+A、PC+A表示變址尋址的變量。5)PC+rel(相對量)表示相對尋址變量。記住指令的助記符,掌握不同尋址方式的指令操作數的表示方法,為我們記憶彙編指 令打下了基礎。
  • 跟電師傅學單片機(12):單片機算術運算加減法指令圖文新解
    單片機算術運算類指令(24條)單片機算術運算指令是8位二進位數進行加、減、乘、除四則運算,以及加1、減1、十進位調整等。本節介紹其中加減法12條指令。ADD A,Rn;屬於寄存器尋址方式。指令功能是將寄存器Rn中的內容與累加器A中的內容相加,其結果送回A中。ADD A,direct;屬於直接尋址方式。指令功能是將直接地址direct中的內容與累加器A中的內容相加,其結果送回A中。ADD A,@Rn;屬於寄存器間接尋址方式。
  • 跟電師傅學單片機(20):單片機位操作指令圖文講解(一)
    位操作指令:指令中的操作數不是字節,而是字節中的某一位,每位取值只能是0或1;指令中的操作對象是單片機內部RAM的位尋址區:20H~2FH單元中的128個位和SFR中的11個可以位尋址的特殊功能寄存器。
  • 51單片機位及位操作指令
    可是如果用它來控制一些開關的打開和合上,燈的亮和滅,就有些不直接了?我們知道送往P1口的數值後並不能馬上知道哪個燈亮和來滅,而是要化成二進位才知道。工業中有很多場合需要處理這類開關輸出,繼電器吸合,用字節來處理就顯示有些麻煩,所以在8051單片機中特意引入一個位處理機制。
  • 跟電師傅學單片機(21):單片機位操作指令圖文講解(二)
    如同累加器A,都在單片機編程指令中使用頻率較高。Bit:位尋址區內的某一位的狀態。ANL為邏輯「與」指令:ANL C,bit;指令功能是將位累加器CY的內容與直接尋址位進行邏輯「與」操作,並將結果送回累加器CY中。ANL C,/bit;指令功能是將直接尋址位取反後再同位累加器CY的內容進行邏輯「與」操作,並將結果送回累加器CY中。
  • 跟電師傅學單片機(13):單片機算術運算類指令圖文講解
    單片機加一減一指令表1、INC:單片機加1指令(共5條),主要用於修改地址指針和計數次數,只有一個操作數。指令功能:是將操作數所確定的單元或寄存器中的內容加1,最後將結果還是送回原操作數單元中。操作數:累加器A、寄存器Rn、直接地址direct、寄存器間接尋址單元、數據指針寄存器DPTR中的內容。2、DEC:單片機減1指令(共4條),只有一個操作數,與INC指令類似。
  • 單片機之彙編指令系統
    MCS-51單片機指令系統按功能來分有五種.數據傳送指令:MOV Rn,#data ;立即尋址,data→RnMOV A,@Ri ;間接尋址,((Ri))→A,i=0,1MOV direct,Rn ;寄存器尋址,(Rn)→directMOV @Ri,A ;寄存器尋址,(A)→(Ri)MOV DPTR,#data16 ;把16位立即數傳送到數據指針
  • 8051單片機指令系統的用法介紹
    打開APP 8051單片機指令系統的用法介紹 21ic 發表於 2019-10-04 17:00:00 8051的指令系統共有111條指令,由42種助記符和7種尋址方式組合而成。 8051的指令通常包括操作碼,和操作數兩部分。操作碼規定指令進行什麼操作,採用助記表示;操作數表示指令的操作對象。 彙編語言指令的基本形式是:操作碼助記符 目的操作數,源操作數。 操作碼助記符與操作數分開書寫,操作數中目的操作數在前,源操作數在後,操作數之間用逗號分隔。
  • 跟電師傅學單片機(14):輕鬆學習單片機邏輯運算類指令
    單片機邏輯運算類指令:24條對2個8位二進位數進行與、或、非和異或等單片機邏輯運算,對單片機數據進行邏輯處理,適合於傳送、存儲和輸出等。一:邏輯與指令(共6條)ANL A,Rn;是將累加器A中的內容和寄存器Rn中的內容相「與」,其結果送回A中。ANL A,@Ri;是將累加器A中的內容和寄存器間接尋址單元中的內容相「與」,其結果送回A中。
  • 51單片機彙編語言:位操作指令有哪些?
    數據位傳送指令MOVC,bit;bit可直接尋址位C←(bit)>MOVbit,C;C進位位(bit)←C位變量修改指令CLRC;將C=0CLRbit
  • PIC單片機中BANK和PAGE的分析研究
    PIC單片機簡介  由美國Microchip公司推出的PIC單片機系列產品,首先採用了RISC結構的嵌入式微控制器,其高速度、低電壓、低功耗、大電流LCD驅動能力和低價位
  • 8051單片機指令定義詳解——ACALL addr11(1)
    8051單片機指令定義詳解——(ACALL addr11)符號說明本文引用地址:http://www.eepw.com.cn說明:ACALL指令實現無條件調用位於addr11參數所表示地址的子例程。在執行該指令時,首先將PC的值增加2,即使得PC指向ACALL的下一條指令,然後把16位PC的低8位和高8位依次壓入棧,同時把棧指針兩次加1.然後,把當前PC值的高5位、ACALL指令第一字節的7~5位和第2位元組組合起來,得到一個16位目的地址,該地址即為即將調用的子例程的入口地址。
  • 111條單片機彙編指令註解匯總
    B:.特殊功能寄存器B,用於MUL和DIV指令中.Adda11:表示11位的目的地址.用於ACALL和AJMP的指令中,目的地址必須和下一條指令第一個字節同處一頁.Rel:表示8位帶符號的相對偏移量.用語SJMP和所有的條件轉移指令中.偏移量相對於下一條指令的第一個字節計算,在-128~+127範圍內取值.
  • MCS-51單片機的結構和工作原理
    在每條指令執行完後,單片機根據ACC的內容對P位自動置位或復位。除DIP封裝外, 51單片機還採用44隻引腳的方形扁平(QFP——Quad Flat Package) 封裝方式(4隻引腳無用)。在執行加減運算指令時,如果運算結果的最高位(D7)發生了進位或借位,則CY由硬體自動置1。AC(PSW.6):半進位標誌位,也稱為輔助標誌位。在執行加減運算指令時,如果運算結果的低半字節(D3)發生了向高半字節進位或借位,則AC由硬體自動置1。F0、F1(PSW.5 和PSW.1):用戶標誌位。用戶可以根據需要對F0、F1賦予一定的含義,由用戶置1和清0,作為軟體標誌。
  • 【總結】MCS-51系列指令快速記憶法
    2.英文還原法單片機的操作碼助記符是該指令功能的英文縮寫,將縮寫還原成英語原文,再對照漢語有助於理解其助記符含義,從而加強記憶。ANL 邏輯與 LCALL 長調用ORL 邏輯或 ALALL 絕對調用XRL 邏輯異或 RET 子程序返回二、指令的記憶方法1.指令操作數的有關符號MCS-51的尋址方式共有六種:立即數尋址、直接尋址、寄存器尋址、寄存器間址、變址尋址、相對尋址。我們必須掌握其表示的方法。1)立即數與直接地址。
  • 8051單片機特殊功能存儲器SFR基礎詳解
    其內容為將要執行指令的地址,尋址範圍達64 KB。PC有自動加1功能,從而實現程序的順序執行。PC沒有地址,是不可尋址的,因此用戶無法對它進行讀寫,但可以通過轉移、調用、返回等指令改變其內容,以實現程序的轉移。因地址不在SFR(專用寄存器)之內,一般不計作專用寄存器。累加器(ACC—Accumulator)。累加器為8位寄存器,是最常用的專用寄存器,功能較多,地位重要。
  • MCS-51單片機試題及答案
    2.簡述變址尋址方式並舉例說明。  3.簡述中斷響應的主要內容。  4.簡述彙編語言中的標號有什麼規定  5.A/D轉換器轉換數據的傳送有幾種方式  四、讀程序(每小題4分,共20分)  1.執行下列程序段中第一條指令後,(1)(P1.7)=____ (P1.3)=_____,(P1.2)=_________;執行第二條指令後,(2)(P1.5)=________
  • PIC單片機指令系統基礎知識
    PIC單片機指令系統基礎知識:A 指令系統是指一種單片機所能識別的所有指令的集合.(PIC系列單片機指令系統採用的是精簡指令集RISC結構體系)B 指令系統是單片機的核心,人們必須通過指令指揮CPU來完成某項特定的操作.C 如果要為某種單片機編寫程序,首先要學習,記憶和應用該單片機指令系統的每一條指令.
  • 跟電師傅學單片機(15):單片機邏輯運算指令圖文講解
    累加器A清0和取反指令表累加器A清0指令CLR A;單片機軟體指令功能是將累加器影響單片機標誌寄存器PSW中的奇偶標誌位P。累加器A取反指令CPL A;單片機軟體指令功能是將累加器A中的內容全部取反,結果送回A中。影響單片機標誌寄存器PSW中的奇偶標誌位P。常用於單片機某個存儲器單元或某個存儲器區域中帶符號數的求補。