版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 播音主持人雇傭協(xié)議
- 銷(xiāo)售提成獎(jiǎng)金合同
- 培訓(xùn)學(xué)校專(zhuān)業(yè)職業(yè)指導(dǎo)培訓(xùn)服務(wù)合同
- 終止水泥購(gòu)銷(xiāo)合同協(xié)議
- 安全協(xié)議與合同
- 招標(biāo)投標(biāo)表格部分的內(nèi)容解讀與分析
- 網(wǎng)絡(luò)營(yíng)銷(xiāo)合同范本版合同協(xié)議解讀
- 數(shù)字風(fēng)向計(jì)儀表采購(gòu)合同
- 公司總公司與分公司合作合同
- 房屋購(gòu)買(mǎi)委托協(xié)議范本
- 2024年護(hù)校隊(duì)安全工作制度(3篇)
- 安全生產(chǎn)知識(shí)負(fù)責(zé)人復(fù)習(xí)題庫(kù)(附參考答案)
- 2024年安徽省廣播電視行業(yè)職業(yè)技能大賽(有線廣播電視機(jī)線員)考試題庫(kù)(含答案)
- 山東省濟(jì)南市濟(jì)陽(yáng)區(qū)三校聯(lián)考2024-2025學(xué)年八年級(jí)上學(xué)期12月月考語(yǔ)文試題
- 糖尿病酮酸癥中毒
- Unit 6 Food Lesson 1(說(shuō)課稿)-2024-2025學(xué)年人教精通版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 東北師大附屬中學(xué)2025屆高一物理第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- HSE(健康、安全與環(huán)境)計(jì)劃書(shū)
- 雨的形成課件教學(xué)課件
- 金蛇納瑞2025年公司年會(huì)通知模板
- 部編版小學(xué)五年級(jí)上冊(cè)道德與法治單元檢測(cè)試卷含答案(全冊(cè))
評(píng)論
0/150
提交評(píng)論