微控制器原理及應(yīng)用:第03章-1 尋址方式與指令系統(tǒng)_第1頁
微控制器原理及應(yīng)用:第03章-1 尋址方式與指令系統(tǒng)_第2頁
微控制器原理及應(yīng)用:第03章-1 尋址方式與指令系統(tǒng)_第3頁
微控制器原理及應(yīng)用:第03章-1 尋址方式與指令系統(tǒng)_第4頁
微控制器原理及應(yīng)用:第03章-1 尋址方式與指令系統(tǒng)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、同濟大學(xué)電子科學(xué)與技術(shù)系第三章 尋址方式與指令系統(tǒng)第一講 尋址方式同濟大學(xué)電子科學(xué)與技術(shù)系主要內(nèi)容尋址方式指令系統(tǒng)數(shù)據(jù)傳送類指令算術(shù)運算類指令邏輯運算類指令位操作類指令移位類指令程序控制類指令其它指令同濟大學(xué)電子科學(xué)與技術(shù)系參考資料同濟大學(xué)電子科學(xué)與技術(shù)系指令與尋址指令:對數(shù)據(jù)的操作。操作數(shù):指令中要操作的數(shù)據(jù)。 尋址:尋找指令執(zhí)行所需的操作數(shù)。尋址方式:尋找指令執(zhí)行所需的操作數(shù)的方式。MC68HC08系列:16種尋址方式 比HC05增加了8種140條基本指令 比HC05增加了78條270條具體指令同濟大學(xué)電子科學(xué)與技術(shù)系主要內(nèi)容尋址方式指令系統(tǒng)數(shù)據(jù)傳送類指令算術(shù)運算類指令邏輯運算類指令位操作

2、類指令移位類指令程序控制類指令其它指令1、內(nèi)在尋址INH內(nèi)在尋址 INH, Inherent addressing mode指令中已經(jīng)包含了操作數(shù)所在之處,它無須存儲器存儲,內(nèi)在尋址指令是沒有明顯之處操作數(shù)的指令,操作數(shù)由指令隱含。具有隱含尋址方式的指令均為單字節(jié)指令。這類指令只是在執(zhí)行內(nèi)在的數(shù)據(jù)操作。INCA;累加器A內(nèi)容加1INCX; 變址寄存器X內(nèi)容加1DECA;累加器A內(nèi)容減1DECX; 變址寄存器X內(nèi)容減1CLI; 中斷屏蔽位I清0SEI; 中斷屏蔽位I置12、立即尋址IMM在指令中直接給出操作數(shù)。立即尋址指令通常把立即數(shù)和累加器內(nèi)容或變址寄存器內(nèi)容進行操作。這種指令是二字節(jié)指令,第

3、一個字節(jié)為操作碼,第二字節(jié)為立即數(shù)。在立即尋址方式中操作數(shù)為立即數(shù)。立即數(shù)前要加符號前綴“#”,說明是操作數(shù)值而不是地址。立即尋址 IMM Immediate addressing modeLDA #%01011010 ;將二進制數(shù)01011010送累加器A,%表示后面的操作數(shù)是二進制數(shù)。ADD #$30 ;將累加器A的內(nèi)容與立即數(shù)$30進行不帶進位加運算,結(jié)果存至A,$表示后面的操作數(shù)為16進制數(shù)。LDHX #$8030 ;給變址寄存器H:X賦值$8030,執(zhí)行后H的(H)=$80,(X)=$303、直接尋址DIR直接尋址 DIR, Direct addressing mode指令的第一個字

4、節(jié)是操作碼,第二個字節(jié)是操作數(shù)地址。直接尋址指令為二字節(jié)指令。在直接尋址中,CPU自動把$00作為操作數(shù)高位地址,第二個字節(jié)為操作數(shù)的低位地址,由此直接尋址方式的尋址范圍在$0000$00FF。STA $40;將累加器A中的值送$40單元LDA $40;將$40單元內(nèi)容送累加器A中LDA #$7FSTA $40LDA $40STA $40A$40$7F$7FLDA $40A$40$7F$7F4、擴展尋址EXT擴展尋址 EXT, Extended addressing mode第一個字節(jié)是操作碼,第二個字節(jié)是操作數(shù)的高字節(jié)地址,第三個字節(jié)是低字節(jié)地址。擴展尋址指令為三字節(jié)指令,尋址范圍在$000

5、0$FFFF,相對于直接尋址方式,它的尋址范圍廣得多。LDA $0200;將$0200單元內(nèi)容送累加器ASTA $0200;將累加器A的內(nèi)容送$0200單元5、變址尋址_無偏移量變址尋址IX無偏移量變址尋址 IX , Indexed, no offset addressing mode操作數(shù)的有效地址在變址寄存器H:X中。由于H:X為16位,可對$0000$FFFF地址進行尋址。無偏移量變址尋址指令為單字節(jié)指令。LDA , X;將H:X指定的存儲單元的內(nèi)容送AH:X起到16位指針的作用0242$7FLDA ,XAHX$0240$0241$0242$0243$0244$7F6、變址尋址_8位偏移

6、量變址尋址IX18位偏移量變址尋址IX1, Indexed, 8-bit offset addressing modeCPU把變址寄存器H:X的內(nèi)容和指令第二個字節(jié)內(nèi)容相加,求和便是操作地址。8位偏移量變址尋址指令為雙字節(jié)指令,可對$0000$FFFF地址進行尋址 。LDA $10, X;將H:X中的值加上偏移量$10所得地址的存儲單元的內(nèi)容送A$7FLDA $10,X偏移量為$10H:X內(nèi)容不變0200AHX$0200$0201$020F$0210$7F7、變址尋址_16位偏移量變址尋址IX216位偏移量變址尋址IX2, Indexed, 16-bit offset addressing m

7、odeCPU把變址寄存器H:X的內(nèi)容和指令第二、三個字節(jié)內(nèi)容相加,得到的和是操作地址。16位偏移量變址尋址指令為三字節(jié)指令,可對$0000$FFFF地址進行尋址。LDA $100, X;將H:X中的值加上偏移量$100所得地址的存儲單元的內(nèi)容送A$7FLDA $100,X偏移量為$100H:X內(nèi)容不變0100AHX$0100$0101$020F$0200$7F變址尋址變址尋址以H:X作為指針無偏移量變址尋址(IX) STA , X 8位偏移量變址尋址 (IX1) ADD $10, X16位偏移量變址尋址(IX2) AND $1030, X 如(H:X)=$1030 操作數(shù)地址為$1030$10

8、40$2060堆棧堆棧由棧區(qū)和堆棧指針構(gòu)成。棧區(qū)是一組按后進先出(LIFO)方式工作的寄存器或存儲單元,用于存放數(shù)據(jù)。堆棧指針(SP)是用來指示棧頂?shù)刂返募拇嫫?,用于自動管理棧區(qū),指示數(shù)據(jù)存入(進棧)或取出(出棧)的位置。$0100$00FF$00FE$00FD$00FCSPA$0100$00FFB$00FE$0100$00FF$00FE$00FD$00FCSP$00FEBA$00FF$0100堆棧類型硬件堆棧:棧區(qū)由微處理器內(nèi)部的寄存器組構(gòu)成。軟件堆棧:由軟件在內(nèi)存中開辟一個特定的RAM區(qū)構(gòu)成棧區(qū)。堆棧指針用來指示棧頂(底)位置,可由用戶設(shè)初值,一旦設(shè)定后棧底位置即確定,此后SP內(nèi)容即棧頂位

9、置由CPU自動管理。隨著堆棧操作的進行,SP的值會自動變化,其變化方向因棧區(qū)的編址方式分為向下增長型和向上增長型。向下增長型堆棧: 數(shù)據(jù)進棧時,SP自動減量,向上浮動而指向 新棧頂。數(shù)據(jù)出棧時,SP自動增量,向下浮動指向新棧頂。M68HC08就是向下增長型。向上增長型堆棧與之相反。堆棧主要用于中斷處理和子程序調(diào)用。堆棧尋址堆棧尋址是將堆棧指針作變址寄存器使用的變址尋址方式。堆棧指針是16位寄存器,因此堆棧尋址有8位偏移量(SP1)和16位偏移量(SP2)兩種方式。8、8位偏移量堆棧變址尋址SP18位偏移量堆棧變址尋址SP1, Stack pointer, 8-bit offset addres

10、sing mode把指令給出的8位直接地址與堆棧指針(SP)相加形成操作數(shù)的地址。8位偏移量堆棧變址尋址指令為三字節(jié)指令,可對$0000$FFFF地址進行尋址 。LDA $10, SP;將SP中的值加上偏移量$10所得地址的存儲單元的內(nèi)容送A$7FLDA $10,SPA偏移量為$10SP內(nèi)容不變0200 SP$0200$0201$020F$0210$7F9、堆棧尋址_16位偏移量堆棧變址尋址SP216位偏移量堆棧變址尋址SP2, Stack pointer, 8-bit offset addressing mode把指令給出的16位直接地址與堆棧指針(SP)相加形成操作數(shù)的地址。16位偏移量堆

11、棧變址尋址指令為三字節(jié)指令,可對$0000$FFFF地址進行尋址 。LDA $100, SP;將SP中的值加上偏移量$100所得地址的存儲單元的內(nèi)容送A$7FLDA $100,SP偏移量為$100SP內(nèi)容不變0100A SP$0100$0101$01FF$0200$7F存儲器存儲器尋址這類指令將將一個存儲單元的內(nèi)容傳送到另一個存儲單元。存儲器存儲器尋址有4種:立即尋址到直接尋址(IMD)直接尋址到直接尋址(DD)自動變址尋址到直接尋址(IX+D)直接尋址到自動變址尋址(DIX+)10、立即尋址到直接尋址IMDMOV #$FF, $00;立即數(shù)$FF送$00單元源目的這類指令通常用于初始化寄存器

12、和變量,如MOV #$FF, PTA。把立即數(shù)放入直接地址,指令中給出的地址即作為目的地地址,立即數(shù)位于直接地址之前。三字節(jié)指令,第一個字節(jié)為操作碼,第二字節(jié)為立即數(shù),第三字節(jié)為直接地址。立即尋址到直接尋址IMD, Immediate source to direct destination addressing mode11、直接尋址到直接尋址DD需傳送的數(shù)據(jù)從源存儲單元直接送向目的存儲單元,中間不需經(jīng)過寄存器中轉(zhuǎn)。三字節(jié)指令,第一個字節(jié)為操作碼,源操作數(shù)和目的操作數(shù)都是直接地址。MOV $60, $00;$60單元內(nèi)容送$00單元源目的直接尋址到直接尋址DD, Direct to dire

13、ct addressing mode12、自動變址尋址到直接尋址IX+D, Indexed with post increment to direct addressing mode利用寄存器H:X作為變址寄存器,H:X中的值自動加1,指向下一單元,然后指令給出的地址作為目的地址。源地址是:目標(biāo)地址+HX。雙字節(jié)指令,第一字節(jié)是操作碼,第二字節(jié)為目的地址。LDA #$7FSTA $0100LDA #$66STA $0101LDHX #$0100MOV X+,$40MOV X+,$41立即尋址擴展尋址立即尋址擴展尋址立即尋址自動變址到直接尋址HX0100$7F$0040$0041$0140$01

14、41$0039$01420101$7FLDHX #$0100 MOV X+, $40$6613、直接尋址到自動變址尋址DIX+,Direct to indexed with post increment addressing mode利用寄存器H:X作為變址寄存器,H:X中的值自動加1,指向下一單元,然后將指令中給出的地址作為源地址。目標(biāo)地址是:源地址+HX。雙字節(jié)指令,第一字節(jié)是操作碼,第二字節(jié)為目的地址。MOV #$7F,$40MOV #$66,$41LDHX #$0240MOV $40,X+MOV $41,X+立即尋址到直接尋址立即尋址直接尋址到自動變址HX0240$7F$0041$00

15、42$0281$0282$0040$02830241$7FLDHX #$0240 MOV $40,X+$6614、相對尋址REL相對尋址只用于轉(zhuǎn)移指令。在相對尋址方式中,CPU首先測試給定的條件,如果轉(zhuǎn)移條件滿足,CPU就把指令中的偏移量和程序計數(shù)器PC中的內(nèi)容相加,得出轉(zhuǎn)移的目的地址。如果轉(zhuǎn)移條件不滿足,CPU執(zhí)行下一條指令。相對尋址方式的指令為雙字節(jié)指令,一個為操作碼,另一個是相對偏移量,轉(zhuǎn)移指令中的偏移量為-127+128。實際編程時,不必自己計算相對偏移量,只要寫出待跳轉(zhuǎn)的地址標(biāo)號代替偏移量,匯編程序會在匯編時自動計算偏移量,并檢查是否超過有效轉(zhuǎn)移范圍。相對尋址REL, Relativ

16、e addressing mode相對尋址例main: CLC;設(shè)置進位標(biāo)志位C為0 BCC P1 ;如C為0,轉(zhuǎn)P1 LDA #$FF;(A)$FF BRA P2;無條件轉(zhuǎn)P2P1: LDA #$00;(A) $00P2: BRA $ ;原地踏步 98 CLC 2404 BCC *+68003 A6FF LDA #0 xFF8005 2002 BRA *+48007 A600 LDA #0 x00 20FE BRA *+0800B 000000 BRSET地址 代碼 指令相對尋址執(zhí)行過程982404A6FF2002A60020FE0000008000800180038005800780098

17、00BCLCBCC P1LDA #$FFBRA P2LDA #$00BRA $BRSET CLC BCC P1; 2404 LDA #$FF BRA P2P1: LDA #$00P2: BRA $ 8000PC8001C=08003800715、無偏移量變址后加1尋址IX+在HC08指令系統(tǒng)中,只有一條指令采用這種尋址方式,這是一條相對轉(zhuǎn)移指令:CBEQ X+,rel首先將變址寄存器H:X的內(nèi)容加1放回H:X中,再把變址寄存器H:X的內(nèi)容作為操作數(shù)地址。編程時無需計算偏移量,寫成程序標(biāo)號即可。無偏移量變址后加1尋址IX+, Indexed, no offset, post increment

18、addressing mode16、8位偏移量變址后加1尋址IX18位偏移量變址后加1尋址IX+, Indexed, 8-bit offset, post increment addressing mode在HC08指令系統(tǒng)中,只有一條指令采用這種尋址方式,這是一條相對轉(zhuǎn)移指令:CBEQ opr, X+,rel首先將變址寄存器H:X的內(nèi)容加1放回H:X中,CPU把變址寄存器H:X的內(nèi)容和指令給出的直接地址相加,其和便是操作數(shù)地址。編程時無需計算偏移量,寫成程序標(biāo)號即可。尋址方式小結(jié)隱含尋址(INH)立即尋址(IMM)直接尋址(DIR)擴展尋址(EXT)變址尋址變址寄存器變址堆棧指針變址無偏移量變址尋址(IX)8位偏移量變址尋址(IX1)16位偏移量變址尋址(IX2)8位偏移量堆棧尋址(SP1)16位偏移量堆棧尋址(SP2)存儲器到存儲器尋址立即尋址到直接尋址(IMD)直接尋址到直接尋址(DD)自動變址尋址到直接尋址(IX+D)直接尋址到自動變址尋址(DIX+)轉(zhuǎn)移用到的尋址方式相對尋址(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論