單片機(jī)原理及應(yīng)用技術(shù)(第2版) 清華大學(xué)出版社第3章_第1頁(yè)
單片機(jī)原理及應(yīng)用技術(shù)(第2版) 清華大學(xué)出版社第3章_第2頁(yè)
單片機(jī)原理及應(yīng)用技術(shù)(第2版) 清華大學(xué)出版社第3章_第3頁(yè)
單片機(jī)原理及應(yīng)用技術(shù)(第2版) 清華大學(xué)出版社第3章_第4頁(yè)
單片機(jī)原理及應(yīng)用技術(shù)(第2版) 清華大學(xué)出版社第3章_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

3.1概述3.2尋址方式3.3數(shù)據(jù)傳送與交換指令3.4算術(shù)運(yùn)算指令3.5邏輯運(yùn)算指令3.6控制轉(zhuǎn)移指令3.7位操作指令3.8偽指令小結(jié)第3章MCS-51單片機(jī)的指令系統(tǒng)1一般格式為:

[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]在兩個(gè)操作數(shù)的指令中,通常目的操作數(shù)寫(xiě)在左邊,源操作數(shù)寫(xiě)在右邊。

3.1.1MCS-51單片機(jī)指令格式標(biāo)號(hào)是程序員根據(jù)編程需要給指令設(shè)定的符號(hào)地址,可有可無(wú)。標(biāo)號(hào)由1~8個(gè)字符組成,第一個(gè)字符必須是英文字母,不能是數(shù)字或其他符號(hào),標(biāo)號(hào)后必須用冒號(hào)。操作碼是指令的核心部分,用于指示機(jī)器執(zhí)行何種操作操作數(shù)是表示指令操作的對(duì)象,操作數(shù)可以是一個(gè)具體的數(shù)據(jù),也可以是參加運(yùn)算的數(shù)據(jù)所在的地址。注釋是對(duì)指令的解釋說(shuō)明,用以提高程序的可讀性,注釋前必須加分號(hào)。3.1概述2MCS-51單片機(jī)指令系統(tǒng)按指令所占的字節(jié)數(shù)可分為以下三類(lèi):(1)單字節(jié)指令(49條)例如:INCDPTR(2)雙字節(jié)指令(46條)例如:MOVA,#data(3)三字節(jié)指令(16條)例如:MOVDPTR,#datal6

3.1.2指令的字節(jié)33.1.3MCS-51單片機(jī)的助記符語(yǔ)言指令的助記符用英文單詞或縮寫(xiě)字母來(lái)表征指令功能,以便于人們識(shí)別、讀/寫(xiě)、記憶和交流,常用于程序設(shè)計(jì)。MCS-51指令系統(tǒng)中,操作碼采用了42種助記符。4不要嘗試去背指令,理解、實(shí)踐、會(huì)使用才是最主要的!按功能分為五大類(lèi):1.?dāng)?shù)據(jù)傳送類(lèi)指令(8種助記符)

MOV(Move)對(duì)內(nèi)部數(shù)據(jù)寄存器RAM和特殊功能寄存器SFR的數(shù)據(jù)進(jìn)行傳送;

MOVC(MoveCode)讀取程序存儲(chǔ)器數(shù)據(jù)表格的數(shù)據(jù)傳送;

MOVX(MoveExternalRAM)對(duì)外部RAM的數(shù)據(jù)傳送;

XCH(Exchange)字節(jié)交換;

XCHD(Exchangelow-orderDigit)低半字節(jié)交換;SWAP(Swap)低4位與高4位交換;

PUSH(PushontoStack)入棧;

POP(PopfromStack)出棧。5不要嘗試去背指令,理解、實(shí)踐、會(huì)使用才是最主要的!按功能分為五大類(lèi):2.算術(shù)運(yùn)算類(lèi)指令(8種助記符)

ADD(Addition)加法;

ADDC(AddwithCarry)帶進(jìn)位加法;

SUBB(SubtractwithBorrow)帶借位減法;

DA(DecimalAdjust)十進(jìn)制調(diào)整;

INC(Increment)加1;

DEC(Decrement)減1;

MUL(Multiplication、Multiply)乘法;

DIV(Division、Divide)除法。6不要嘗試去背指令,理解、實(shí)踐、會(huì)使用才是最主要的!按功能分為五大類(lèi):3.邏輯運(yùn)算類(lèi)指令(9種助記符)

ANL(ANDLogic)邏輯與;

ORL(ORLogic)邏輯或;

XRL(Exclusive-ORLogic)邏輯異或;

CLR(Clear)清零;

CPL(Complement)取反;

RL(Rotateleft)循環(huán)左移;

RLC(RotateLeftthroughtheCarryflag)帶進(jìn)位循環(huán)左移;

RR(RotateRight)循環(huán)右移;

RRC(RotateRightthroughtheCarryflag)帶進(jìn)位循環(huán)右移。7不要嘗試去背指令,理解、實(shí)踐、會(huì)使用才是最主要的!按功能分為五大類(lèi):4.控制轉(zhuǎn)移類(lèi)指令(13種助記符)

ACALL(AbsolutesubroutineCall)子程序絕對(duì)調(diào)用;

LCALL(LongsubroutineCall)子程序長(zhǎng)調(diào)用;

RET(Returnfromsubroutine)子程序返回;

RETI(ReturnfromInterruption)中斷返回;

JMP(Jump)相對(duì)長(zhǎng)轉(zhuǎn)移;

SJMP(ShortJump)短轉(zhuǎn)移;

AJMP(AbsoluteJump)絕對(duì)轉(zhuǎn)移;

LJMP(LongJump)長(zhǎng)轉(zhuǎn)移;

CJNE(CompareJumpifNotEqual)比較不相等則轉(zhuǎn)移;

DJNZ(DecrementJumpifNotZero)減1后不為0則轉(zhuǎn)移;

JZ(JumpifZero)結(jié)果為0則轉(zhuǎn)移;

JNZ(JumpifNotZero)結(jié)果不為0則轉(zhuǎn)移;

NOP(NoOperation)空操作。8不要嘗試去背指令,理解、實(shí)踐、會(huì)使用才是最主要的!按功能分為五大類(lèi):5.位操作指令(6種助記符)

SETB(SetBit)置位JC(JumpiftheCarryflagisset)有進(jìn)位則轉(zhuǎn)移;

JNC(JumpifNotCarry)無(wú)進(jìn)位則轉(zhuǎn)移;

JB(JumpiftheBitisset)位為1則轉(zhuǎn)移;

JNB(JumpiftheBitisNotset)位為0則轉(zhuǎn)移;

JBC(JumpiftheBitissetandClearthebit)位為1則轉(zhuǎn)移,并清除該位;93.1.4常用符號(hào)說(shuō)明103.2尋址方式尋址方式是指尋找操作數(shù)或指令的地址的方式。MCS-51的尋址方式有七種。即:立即尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、位對(duì)尋址和相對(duì)尋址。若不特別聲明,我們后面提到的尋址方式均指源操作數(shù)的尋址方式。11

指令中直接給出操作數(shù)的尋址方式稱(chēng)為立即尋址。立即數(shù)可以為一個(gè)字節(jié),也可以是兩個(gè)字節(jié),并要用符號(hào)“?!眮?lái)標(biāo)識(shí)。由于立即數(shù)是一個(gè)常數(shù),所以只能作為源操作數(shù)。

立即尋址所對(duì)應(yīng)的尋址空間為:ROM

3.2.1立即尋址如:MOVA,#30H;A←30HMOVDPTR,#1638H;DPH←16H,DPL←38H123.2.2直接尋址指令操作碼之后的字節(jié)存放的是操作數(shù)的地址,操作數(shù)本身存放在該地址指示的存儲(chǔ)單元中的尋址方式稱(chēng)為直接尋址。直接尋址中的SFR經(jīng)常采用符號(hào)形式表示。尋址空間為:片內(nèi)RAM低128字節(jié)、SFR。133.2.3寄存器尋址

操作數(shù)存放在寄存器中,指令中直接給出該寄存器名稱(chēng)的尋址方式。可以獲得較高的傳送和運(yùn)算速度。

寄存器可以是:R0~R7、A、B、DPTR。例:MOVA,R1;A←R114

寄存器中的內(nèi)容為地址,從該地址去取操作數(shù)的尋址方式稱(chēng)為寄存器間接尋址

。尋址的存儲(chǔ)空間為片內(nèi)RAM或片外RAM。片內(nèi)RAM的數(shù)據(jù)傳送采用“MOV”類(lèi)指令,間接尋址寄存器采用寄存器R0或R1(堆棧操作時(shí)采用SP)。片外RAM的數(shù)據(jù)傳送采用“MOVX”類(lèi)指令,這時(shí)間接尋址寄存器有兩種選擇:一是采用R0和R1作間址寄存器,這時(shí)R0或R1提供低8位地址(外部RAM多于256字節(jié)采用頁(yè)面方式訪問(wèn)時(shí),可由P2口未使用的I/O引腳提供高位地址);二是采用DPTR作為間址寄存器。

3.2.4寄存器間接尋址15例:MOVR0,#30H;R0←30HMOVA,@R0;A←(R0)即A←(30H)寄存器間接尋址對(duì)應(yīng)的空間為:片內(nèi)RAM(采用@R0,@R1)片外RAM(采用@R0,@R1或@DPTR)

163.2.5變址尋址

以一個(gè)基地址加上一個(gè)偏移量地址形成操作數(shù)地址的尋址方式稱(chēng)為變址尋址。在這種尋址方式中,以數(shù)據(jù)指針DPTR或程序計(jì)數(shù)器PC作為基址寄存器,累加器A作為偏移量寄存器,基址寄存器的內(nèi)容與偏移量寄存器的內(nèi)容之和作為操作數(shù)地址。

變址尋址所對(duì)應(yīng)的尋址空間為:ROM例如:MOVCA,@A+DPTR17

對(duì)位地址中的內(nèi)容進(jìn)行操作的尋址方式稱(chēng)為位尋址。采用位尋址指令的操作數(shù)是8位二進(jìn)制數(shù)中的某一位。指令中給出的是位地址。位尋址方式實(shí)質(zhì)屬于位的直接尋址。

尋址空間為:片內(nèi)RAM的20H~2FH單元中的128可尋址位;SFR的可尋址位。習(xí)慣上,特殊功能寄存器的尋址位常用符號(hào)位地址表示。例如:CLRACC.7MOVC,7FH3.2.6位尋址18相對(duì)尋址是以程序計(jì)數(shù)器PC的當(dāng)前值(指讀出該2字節(jié)或3字節(jié)的跳轉(zhuǎn)指令后,PC指向的下條指令的地址)為基準(zhǔn),加上指令中給出的相對(duì)偏移量rel形成目標(biāo)地址的尋址方式。

rel是一個(gè)帶符號(hào)的8位二進(jìn)制數(shù),取值范圍是-128~+127,以補(bǔ)碼形式置于操作碼之后存放。如:JCrel;rel=75H3.2.7相對(duì)尋址19例:指出下列各指令中操作數(shù)的尋址方式ADDA,40H;直接尋址PUSHAcc;直接尋址MOVB,20H;直接尋址ANLP1,#35H;立即數(shù)尋址MOV@R1,PSW;寄存器尋址20例:設(shè)A=11H,(44H)=22H,R0=33H,試求下列程序依次運(yùn)行后有關(guān)單元中的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論