嵌入式技術(shù)基礎(chǔ)與實(shí)踐課件章核_第1頁(yè)
嵌入式技術(shù)基礎(chǔ)與實(shí)踐課件章核_第2頁(yè)
嵌入式技術(shù)基礎(chǔ)與實(shí)踐課件章核_第3頁(yè)
嵌入式技術(shù)基礎(chǔ)與實(shí)踐課件章核_第4頁(yè)
嵌入式技術(shù)基礎(chǔ)與實(shí)踐課件章核_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章

HC08/S08/RS08CPU

主要內(nèi)容HC08CPU基本構(gòu)成尋址方式指令系統(tǒng)

HCS08CPU與HC08CPU的比較RS08CPU簡(jiǎn)介

08匯編語(yǔ)言基礎(chǔ)3.1HC08CPU基本構(gòu)成

M68HC08系列單片機(jī)的各種型號(hào)CPU均使用HC08CPU,有時(shí)也將HC08CPU稱(chēng)為CPU08,它具有如下特點(diǎn):①目標(biāo)代碼與M68HC05系列單片機(jī)向上兼容。②具有16位堆棧指針SP。③具有16位變址寄存器HX。④8MHzCPU內(nèi)部總線頻率。⑤64KB程序/數(shù)據(jù)存儲(chǔ)器空間。⑥16種尋址方式。⑦不經(jīng)過(guò)累加器A的存儲(chǔ)器之間數(shù)據(jù)直接傳送。⑧快速8位×8位乘法指令、快速16位與8位相除指令,增強(qiáng)的BCD指令。⑨模塊化結(jié)構(gòu),可擴(kuò)展的內(nèi)部總線定義可使尋址范圍超過(guò)64KB。⑩低功耗的STOP、WAIT模式。3.1CPU12基本構(gòu)成HC08中有5個(gè)寄存器:

3.2尋址方式指令是對(duì)數(shù)據(jù)的操作,通常把指令中所要操作的數(shù)據(jù)稱(chēng)為操作數(shù),HC08CPU所需的操作數(shù)可能來(lái)自:寄存器、指令代碼、存儲(chǔ)單元。而確定指令中所需操作數(shù)的各種方法稱(chēng)為尋址方式(AddressingMode)。尋址方式越多,指令系統(tǒng)的功能就越強(qiáng),靈活性也越大。MC68HC08系列單片機(jī)的尋址方式共有16種,比MC68HC05單片機(jī)增加了8種。

3.2尋址方式內(nèi)在尋址方式(INH,Inherentaddressingmode)立即尋址方式(IMM,Immediateaddressingmode)直接尋址方式(DIR,Directaddressingmode)擴(kuò)展尋址方式(EXT,Extendedaddressingmode)無(wú)偏移量變址方式(IX,Indexed,nooffsetaddressingmode)八位偏移量變址方式(IX1,Indexed,8-bitoffsetaddressingmode)

十六位偏移量變址方式(IX2,Indexed,16-bitoffsetaddressingmode)相對(duì)變址尋址方式(REL,Relativeaddressingmode)存儲(chǔ)器:直接地址—直接地址尋址方式(DD)存儲(chǔ)器:直接地址—變址、變址加1的尋址方式(DIX+)

存儲(chǔ)器:立即數(shù)—直接地址尋址方式(IMD)

存儲(chǔ)器:變址—直接地址、變址加1的尋址方式(IX+D)3.3指令系統(tǒng)

CPU的功能是從外部設(shè)備獲得數(shù)據(jù),通過(guò)加工、處理,再把處理結(jié)果送到CPU的外部世界。設(shè)計(jì)一臺(tái)計(jì)算機(jī),首先需要設(shè)計(jì)一套可以執(zhí)行特定功能的操作命令,這種操作命令稱(chēng)為指令。CPU所能執(zhí)行的各種指令的集合,稱(chēng)為該微處理器的指令系統(tǒng)。設(shè)計(jì)一種微處理器,一般從設(shè)計(jì)它的指令系統(tǒng)開(kāi)始。指令系統(tǒng)因機(jī)器不同而不同。HC08CPU共有118個(gè)保留字,加上尋址方式形成了270條具體指令,比HC05CPU增加了78條指令。為了方便學(xué)習(xí),將這些指令分為數(shù)據(jù)傳送、算術(shù)運(yùn)算、邏輯運(yùn)算、位操作、移位、程序控制及其它等七類(lèi)。本節(jié)分別介紹這些指令,并對(duì)每條具體指令進(jìn)行統(tǒng)一編號(hào)。

3.3.1數(shù)據(jù)傳送類(lèi)指令

數(shù)據(jù)傳送類(lèi)指令

取數(shù)指令存數(shù)指令

堆棧操作指令

寄存器間數(shù)據(jù)傳送指令

存儲(chǔ)器間數(shù)據(jù)傳送指令

3.3.2算術(shù)運(yùn)算類(lèi)指令

算術(shù)運(yùn)算類(lèi)指令

加、減指令

乘/除法指令

加1/減1指令

取反/求補(bǔ)指令

比較指令

清零指令

測(cè)試是否為0指令SP與HX增加指令

3.3.3邏輯運(yùn)算類(lèi)指令

邏輯運(yùn)算類(lèi)指令

與運(yùn)算或運(yùn)算異或運(yùn)算3.3.4位操作類(lèi)指令

位操作類(lèi)指令back3.3.5移位類(lèi)指令

單向移位指令在算術(shù)左移ASL指令中,ASLA、ASLX是對(duì)A、X進(jìn)行左移,其它指令是對(duì)存儲(chǔ)器單元的內(nèi)容左移。它把8位操作數(shù)左移一位,首先將b7位移入C中,其它左移一位,0移入b0,相當(dāng)于操作數(shù)乘以2。ASL指令與邏輯左移指令LSL功能完全相同,只是同一功能的不同名稱(chēng)。算術(shù)右移指令A(yù)SR指令比較特別,它把要操作的字節(jié)當(dāng)作有符號(hào)數(shù),而符號(hào)位(b7)保持不變,其它位右移一位,即首先將b0位移入C中,其它位(b1~b6)右移一位,相當(dāng)于操作數(shù)除以2。為保證符號(hào)不變,ASR指令使符號(hào)位b7返回本身。邏輯右移指令LSR把8位操作數(shù)右移一位,首先將b0位移入C中,其它右移一位,0移入b7。單向移位指令(1)

單向移位指令(2)

循環(huán)移位指令

3.3.6程序控制類(lèi)指令

一般轉(zhuǎn)移指令

常用的一般轉(zhuǎn)移指令包括:標(biāo)志位測(cè)試轉(zhuǎn)移指令無(wú)符號(hào)數(shù)比較轉(zhuǎn)移指令有符號(hào)數(shù)比較轉(zhuǎn)移指令位測(cè)試轉(zhuǎn)移指令無(wú)條件相對(duì)轉(zhuǎn)移指令

特殊轉(zhuǎn)移指令

特殊轉(zhuǎn)移指令跳轉(zhuǎn)指令

3.3.7其它指令

中斷指令二~十進(jìn)制編碼指令

特殊指令

3.4

HCS08CPU與HC08CPU的比較

MCS08系列單片機(jī)的內(nèi)核使用HCS08CPU。與HC08CPU相比,HCS08CPU速度更快,內(nèi)部總線頻率由最高8MHz提高到20MHz,即執(zhí)行一條基本指令的時(shí)間是50ns。從HC08CPU可以自然過(guò)渡到HCS08CPU,這就是本節(jié)比較的目的。在未來(lái)一段時(shí)間內(nèi),HC05將逐步淘汰,HC08將逐漸發(fā)展,HCS08也將逐漸發(fā)展,根據(jù)實(shí)際需要,可以在HC08與HCS08系列內(nèi)選型,使用上不會(huì)有什么困難。3.4

HCS08CPU與HC08CPU的比較

HCS08CPU與指令集只是在HC08CPU指令集基礎(chǔ)上增加了以下幾條指令:對(duì)LDHX指令,增加了EXT、IX、IX1、IX2、SP1尋址方式對(duì)STHX、CPHX增加了EXT、SP1尋址方式增加了BGND(background)指令,用于調(diào)試3.5RS08CPU簡(jiǎn)介3.5.1

RS08CPU和RAM的寄存器

RS08的內(nèi)核中只有一個(gè)8位的累加器A,兩個(gè)14位的程序計(jì)數(shù)器PC及SPC,以及一個(gè)2位的條件碼寄存器

3.5.2RS08分頁(yè)方案3.5.2RS08分頁(yè)方案

RS08的分頁(yè)方案示意圖

3.5.3RS08的尋址方式3.5.3RS08的尋址方式

表2-2MC9S12XD和MC9S12NE64CPU異同RS08的CPU有九種不同尋址方式:第一種是隱含尋址。第二種尋址方式為立即尋址。第三種是直接尋址方式。第四種是小型尋址方式。第五種是短型尋址方式。第六種是相對(duì)尋址方式。第七種是擴(kuò)展尋址方式。第八種是變址尋址方式。第九種是存儲(chǔ)器到存儲(chǔ)器尋址方式。3.5.4RS08的子程序調(diào)用3.5.4

RS08的子程序調(diào)用

HC(S)08和RS08的子程序調(diào)用比較指令HC(S)08RS08BSR函數(shù)壓當(dāng)前的PC入棧將PC存儲(chǔ)在SPC中JSR函數(shù)將函數(shù)地址載入PC將函數(shù)地址載入PCRTS從堆棧中彈出返回地址并設(shè)置PC值將SPC復(fù)制到PC中3.5.5RS08的指令集3.5.5RS08的指令集表3-2RS08的指令集指令類(lèi)別指令存儲(chǔ)器LDA,STA,MOV算術(shù)ADD,ADC,SUB,SBC,INC,INCA,DEC,DECA,CLR,CLRA,CMP邏輯AND,ORA,COMA,EOR,BSET,BCLR,LSLA,LSRA,ROLA,RORA轉(zhuǎn)移BCS,BCC,BEQ,BNE,BRA,BSR,JMP,JSR,BRSET,BRCLACBEQ,CBEQA,DBNZ,DBNZA隱含NOP,STOP,WAIT,SEC,CLC,RTS,SHA,SLA3.5.5RS08的指令集表3-3CodeWarrior提供的RS08的偽指令集指令類(lèi)別指令存儲(chǔ)器LDXSTXTAXLDA,XSTA,XTXA算術(shù)ADD,XSUB,XASLAADC,XSBC,XCLRXINCXDECXCLR,XINC,XDEC,XTSTACMP,XTSTopr8aTSTXCMPXTST,X邏輯AND,XORA,XEOR,X轉(zhuǎn)移BHSBRCLRusingX/D[X]BLOBRSETusingX/D[X]BRNCBEQ,XCBEQX,relDBNZ,X,rel測(cè)試TSTopr8aTSTXTST,xTSTA3.608匯編語(yǔ)言基礎(chǔ)能夠在單片機(jī)內(nèi)直接執(zhí)行的指令序列是機(jī)器語(yǔ)言。

用助記符號(hào)來(lái)表示機(jī)器指令便于記憶,這就形成了匯編語(yǔ)言。把匯編語(yǔ)言寫(xiě)成的源程序“翻譯”成機(jī)器語(yǔ)言的工具叫編譯器。為了能夠正確地產(chǎn)生目標(biāo)代碼以及方便匯編語(yǔ)言的編寫(xiě),編譯器還提供了一些在匯編時(shí)使用的命令、操作符號(hào),這些命令僅是為了更好地做好

“翻譯”工作,并不產(chǎn)生具體的機(jī)器指令,因此這些指令被稱(chēng)為偽指令。3.6.108匯編源程序格式匯編語(yǔ)言源程序以行為單位進(jìn)行設(shè)計(jì),每一行最多可以包含以下四個(gè)部分:標(biāo)號(hào)操作碼操作數(shù)注釋3.6.108匯編源程序格式標(biāo)號(hào)必須從第一列開(kāi)始書(shū)寫(xiě)可以組成標(biāo)號(hào)的有:A~Z、a~z、0~9、“_”、“$”,但開(kāi)頭的第一個(gè)符號(hào)不能為數(shù)字和$08編譯器區(qū)分標(biāo)號(hào)中字母的大小寫(xiě)標(biāo)號(hào)長(zhǎng)度基本上不受限制標(biāo)號(hào)后必須帶冒號(hào)“:”或雙冒號(hào)“::”一個(gè)標(biāo)號(hào)在一個(gè)程序中只能定義一次一行語(yǔ)句可以只有標(biāo)號(hào)標(biāo)號(hào)

操作碼指令碼偽指令碼3.6.108匯編源程序格式

操作數(shù)常數(shù)

“#”表示立即數(shù)圓點(diǎn)”.”符號(hào)星號(hào)”*”符號(hào)

內(nèi)存塊的使用字符串偽運(yùn)算符

操作數(shù)用”;”用”//”3.6.208偽操作指令

存儲(chǔ)區(qū)定義偽指令.blkbn

定義了一個(gè)存儲(chǔ)區(qū),預(yù)留n個(gè)字節(jié).blkwn

定義了一個(gè)存儲(chǔ)區(qū),預(yù)留n個(gè)字

常數(shù)定義偽指令.byte<expr>[,<expr>]*

定義程序區(qū)中的字節(jié)常數(shù)

.word<expr>[,<expr>]*

定義程序區(qū)中的字常數(shù)

賦值偽指令<symbol>=<value>定義一個(gè)符號(hào)等于常數(shù)值

3.6.208偽操作指令

文本替代符偽指令.define<symbol><value>

定義一個(gè)文本替代符指令存儲(chǔ)定位偽指令.org<value>定義程序或數(shù)據(jù)區(qū)的起始地文件包含偽指令.include<filename>把另一個(gè)源文件插入當(dāng)前的源文件一起匯編3.6.208偽操作指令

宏定義偽指令.mac

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論