單片機(jī)原理:3-1-3指令格式-尋址方式_第1頁
單片機(jī)原理:3-1-3指令格式-尋址方式_第2頁
單片機(jī)原理:3-1-3指令格式-尋址方式_第3頁
單片機(jī)原理:3-1-3指令格式-尋址方式_第4頁
單片機(jī)原理:3-1-3指令格式-尋址方式_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第3章

AT89S51單片機(jī)的

指令系統(tǒng)

1AT89S51單片機(jī)使用MCS-51指令系統(tǒng)。介紹指令系統(tǒng)尋址方式對111條基本指令按功能分類詳細(xì)講解。指令---是CPU按照人們的意圖來完成某種操作的命令,它以英文名稱或縮寫形式作為助記符。匯編語言指令---用助記符、符號地址、標(biāo)號等表示的書寫程序的語言。掌握匯編語言指令是程序設(shè)計的基礎(chǔ)。23.1指令系統(tǒng)概述簡明、易掌握、效率較高的指令系統(tǒng),復(fù)雜指令集。按所占字節(jié)分,分三種:(1)單字節(jié)指令49條;(2)雙字節(jié)指令45條;(3)三字節(jié)指令17條。按執(zhí)行時間來分,分三種:(1)1個機(jī)器周期(12個時鐘振蕩周期)的指令64條;(2)2個機(jī)器周期指令45條;(3)4個機(jī)器周期——乘、除指令。

12MHz晶振,每個機(jī)器周期為。31s

AT89S51一大特點是在硬件結(jié)構(gòu)中有一個位處理機(jī),一個處理位變量的指令子集。3.2指令格式

指令格式:指令的表示方法。指令通常由兩部分組成:操作碼和操作數(shù)。操作碼——指令進(jìn)行什么操作。操作數(shù)——指令操作的對象??赡苁且痪唧w數(shù)據(jù),也可能是指出到哪里取得數(shù)據(jù)的地址或符號。指令長度不同,格式也就不同。(1)單字節(jié)指令:操作碼和操作數(shù)同在一個字節(jié)中。(2)雙字節(jié)指令:一個字節(jié)為操作碼,另一個字節(jié)是操作數(shù)。(3)三字節(jié)指令:操作碼占一個字節(jié),操作數(shù)占二個字節(jié)。43.3指令系統(tǒng)的尋址方式尋址方式——在指令中說明操作數(shù)所在地址的方法。一般說,尋址方式越多,功能就越強(qiáng),靈活性則越大,指令系統(tǒng)就越復(fù)雜。尋址方式所要解決的主要問題就是如何在整個存儲器和寄存器的尋址空間內(nèi)快速地找到指定的地址單元。下面介紹指令系統(tǒng)7種尋址方式。51.寄存器尋址方式指令中的操作數(shù)為某一寄存器的內(nèi)容。例如:MOV A,Rn

;(Rn)→A,n=0~7把Rn中的源操作數(shù)送入到累加器A中。由于指令指定了從寄存器Rn中取得源操作數(shù),所以稱為寄存器尋址方式。本尋址方式的尋址范圍:(1)4組通用工作寄存區(qū)共32個工作寄存器。但只對當(dāng)前工作寄存器區(qū)的8個工作寄存器尋址,指令中的寄存器名稱只能是R0~R7。(2)部分特殊功能寄存器,如累加器A、寄存器B以及數(shù)據(jù)指針寄存器DPTR等。注:為方便分析代碼,可在桌面新建工程test.uvprj,在該工程中進(jìn)行代碼分析。:在d:0x00中查看data,即RAM區(qū);在C:0X00區(qū)查看代碼code,即ROM區(qū)62.直接尋址方式指令中直接給出操作數(shù)的單元地址。例如:

MOV A,direct;“direct”就是操作數(shù)的單元地址例如:

MOV A,40H

表示把內(nèi)部RAM40H單元的內(nèi)容傳送到A。源操作數(shù)(右邊的操作數(shù))采用的是直接尋址方式。

指令中兩個操作數(shù)都可由直接尋址方式給出。例如:

MOV direct1,direct2具體指令:MOV42H,62H把片內(nèi)RAM中62H單元的內(nèi)容送到片內(nèi)RAM中的42H單元中。直接尋址是訪問片內(nèi)所有特殊功能寄存器的唯一尋址方式。73.寄存器間接尋址方式寄存器中存的是操作數(shù)地址,即先從寄存器中找到操作數(shù)的地址,再按該地址找到操作數(shù)。為了區(qū)別寄存器尋址和寄存器間接尋址,在寄存器間接尋址方式中,應(yīng)在寄存器名稱前面加前綴標(biāo)志“@”。例如:MOVA,@

;i=0或1其中,

的內(nèi)容為40H,即把內(nèi)部RAM40H地址單元中的內(nèi)容傳送給A。84.立即數(shù)尋址方式直接在指令中給出操作數(shù)--也稱立即數(shù)。為了與直接尋址指令中的直接地址加以區(qū)別,需在操作數(shù)前加前綴標(biāo)志“#”。例如:

MOVA,#40H第一個字節(jié)是操作碼,第二字節(jié)是立即數(shù),就是放在程序存儲器內(nèi)的常數(shù)。95.基址寄存器加變址寄存器間址尋址方式以DPTR或PC作為基址寄存器;以累加器A作為變址寄存器以兩者內(nèi)容相加形成的16位地址作為目的地址進(jìn)行尋址。例如指令:

MOVC A,@A+DPTR

其中,(A)=05H,(DPTR)=0400H,指令執(zhí)行結(jié)果是把程序存儲器0405H單元的內(nèi)容傳送給A。本尋址方式的指令有3條:MOVC A,@A+DPTRMOVC A,@A+PCJMP A,@A+DPTR前兩條指令適用于讀程序存儲器中固定的數(shù)據(jù)。例如,將固定的、按一定順序排列的表格存放在程序存儲器中,在程序運(yùn)行中由A的動態(tài)參量來確定讀取對應(yīng)的表格參數(shù)。第3條為散轉(zhuǎn)指令,A中內(nèi)容為程序運(yùn)行后的動態(tài)結(jié)果,可根據(jù)A中不同內(nèi)容,實現(xiàn)跳向不同程序入口的跳轉(zhuǎn)。106.相對尋址方式解決程序轉(zhuǎn)移。該尋址是以該轉(zhuǎn)移指令的地址(PC值)加上它的字節(jié)數(shù),再加上相對偏移量(rel),形成新的轉(zhuǎn)移目的地址,從而程序轉(zhuǎn)移到該目的地址。轉(zhuǎn)移的目的地址用下式計算:

目的地址=轉(zhuǎn)移指令所在的地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel其中,偏移量rel是帶符號8位二進(jìn)制補(bǔ)碼數(shù),–128~+127。

11程序轉(zhuǎn)移范圍是以轉(zhuǎn)移指令的下條指令首地址為基準(zhǔn)地址,相對偏移在–128~+127之間。例如,LJMPrel程序要轉(zhuǎn)移到該指令的PC值加3再加上rel的目的地址處。編寫程序時,只需在轉(zhuǎn)移指令中直接寫要轉(zhuǎn)向的地址標(biāo)號。例如:

LJMPLOOP

“LOOP”為目的地址標(biāo)號。匯編時,由匯編程序自動計算和填入偏移量。但手工匯編時,偏移量的值由手工計算。127.位尋址方式對內(nèi)部RAM和特殊功能寄存器具有位尋址功能的某位內(nèi)容進(jìn)行置1和清0操作。位地址一般以直接位地址給出,位地址符號為“bit”。例如:MOVC,bit

具體指令:MOVC,40H把位地址為40H的值送到進(jìn)位位C。由于AT89S51具有位處理功能,可直接對數(shù)據(jù)位方便地實現(xiàn)置1、清0、求反、傳送、判跳和邏輯運(yùn)算等操作,為測控系統(tǒng)的應(yīng)用提供了最佳代碼和速度,增強(qiáng)了實時性。13問題:當(dāng)一條指令給定后,如何來確定該指令的尋址方式?例如:

MOVA,#40H,屬于立即數(shù)尋址還是寄存器尋址?要看以哪個操作數(shù)作為參照系。操作數(shù)分為源操作數(shù)和目的操作數(shù)。對于源操作數(shù)“#40H”來說,是“立即數(shù)尋址”方式;但對目的操作數(shù)“A”來說,是屬于“寄存器尋址”方式。一般而言,尋址方式指的是源操作數(shù),所以此例為立即數(shù)尋址方式。對指令系統(tǒng)7種尋址方式總結(jié),概括見表3-1。1415序號尋址方式尋址空間1寄存器尋址R0~R7、A、B、C(位)、DPTR等2直接尋址內(nèi)部12

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論