




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 MCS-51指令系統(tǒng)微機(jī)原理及應(yīng)用尋址方式;數(shù)據(jù)傳送指令;算術(shù)運(yùn)算指令;邏輯移位指令;控制轉(zhuǎn)移指令;位操作指令;偽指令3.1 概述 3.1.1 基礎(chǔ)知識(shí)1)機(jī)器語(yǔ)言:用二進(jìn)制編碼表示的指令。 01110100(74H) 01010101(55H) 00100100(24H) 00001111(0FH) 11110101(F5H) 01010000(50H)2)匯編語(yǔ)言:用助記符表示的指令。 74H,55H: MOV A, #55H 24H,0FH: ADD A, #0FH F5H,50H: MOV 50H, A3)指令系統(tǒng): 計(jì)算機(jī)所能執(zhí)行的指令集合。4)指令格式: MAIN: MOV
2、 A,#0FH ;0FH-(A) 標(biāo)號(hào):等于該指令或數(shù)據(jù)塊存放的首地址。用于程序轉(zhuǎn)移的地址,子程序名,數(shù)據(jù)塊的地址。操作碼:表明指令執(zhí)行的操作。操作數(shù):表明指令操作的對(duì)象。注釋:3.2 尋址方式尋址方式:尋找操作數(shù)地址的方法。操作數(shù)的表示方法。7種尋址方式。1) 立即尋址:操作數(shù)在指令中。 MOV A,#70H MOV DPTR,#1234H2)直接尋址:內(nèi)部RAM地址在指令中 MOV A,10H ANL 70H,#48H 地址范圍:內(nèi)部RAM128字節(jié),SFR3)寄存器尋址:操作數(shù)在寄存器中。 MOV A, R1 MOV R7, #100寄存器:R0-R7, A, B, DPTR 4)寄存器
3、間接尋址:操作數(shù)地址在寄存器中。 MOV A,R1 ANL A,R0 寄存器:R0, R1, DPTR, SP例:假定R0寄存器的內(nèi)容是3AH, 則指令 MOV A , R0 ; 功能: 是以R0寄存器內(nèi)容3AH為地址,把該地址單元的內(nèi)容送累加器A。3AH76H76H3AH R0A內(nèi)部RAM5)變址尋址:操作數(shù)地址在基址寄存器和變址寄存器中。 MOVC A, A+DPTR MOVC A, A+PC訪問(wèn)ROM單元數(shù)據(jù)。3F21HDPTRA54H7FHROM+ 3F75H 6)相對(duì)尋址:轉(zhuǎn)移地址(目的地址)的相對(duì)偏移量在指令中。 JC 80H實(shí)際使用中使用標(biāo)號(hào),偏移量由匯編程序自動(dòng)計(jì)算。 JC N
4、EXT7)位尋址:位地址在指令中。 MOV C,20H位的表示方法:位名稱,字節(jié)名稱帶點(diǎn),字節(jié)地址帶點(diǎn),位地址。 MOV C, F0(PSW.5, D0H.5, D5H)3.3 指令系統(tǒng)3.3.1 符號(hào)約定Rn 8個(gè)通用寄存器R0-R7Ri R0,R1兩個(gè)寄存器.direct 8位直接地址# data 8位立即數(shù).#data16 16位立即數(shù).addr16 16位目的地址.addr11 11位目的地址.rel 相對(duì)轉(zhuǎn)移指令中的偏移量bit 位地址() 寄存器或存儲(chǔ)器單元的內(nèi)容.3.3.2 數(shù)據(jù)傳送指令(29條)1)以A為目的操作數(shù) MOV A, Rn - MOV A,R0 MOV A, dir
5、ect - MOV A, 20H MOV A, Ri - MOV A, R1 MOV A, #data - MOV A, #20H; 74H,20H P50 2)以Rn為目的操作數(shù) MOV Rn, A MOV Rn, direct MOV Rn, #data MOV R1,R0 ;? 3)以直接地址為目的操作數(shù) MOV direct, A MOV direct, Rn MOV direct1, direct2 MOV direct, Ri MOV direct, #data4)以寄存器間接地址為目的操作數(shù) MOV Ri, A MOV Ri, direct MOV Ri, #data5)16位數(shù)
6、傳送 MOV DPTR, #data16 例: MOV DPTR,#1234H (DPH)=12H, (DPL)=34H6)外部RAM數(shù)據(jù)傳送讀指令:MOVX A, DPTR MOVX A, Ri寫(xiě)指令:MOVX DPTR, A MOVX Ri, AMOVX A, DPTR,RiRD,WR7)程序存儲(chǔ)器數(shù)據(jù)傳送 MOVC A, A+PC MOVC A, A+DPTR 例:將ROM2000H單元數(shù)據(jù)送到A. MOV DPTR,#2000H MOV A,#0 MOVC A,A+DPTR8)數(shù)據(jù)交換指令 字節(jié)交換 XCH A, Rn XCH A, direct XCH A, Ri 半字節(jié)交換 XCH
7、D A, Ri;低4位交換,高4位不變 例:設(shè)(R0)=20H, (A)=3FH, (20H)=75H 則:XCHD A,R0 ;(R0)=? (A)=?,(20H)=? 累加器A高4位與低4位交換 SWAP A 設(shè)(A)=12H, 9) 堆棧操作指令組 進(jìn)棧:PUSH direct ;SP (SP)+1,(SP) (direct) 出棧:POP direct ;direct (SP),SP SP-110) 累加器清0和取反 CLR A; CPL A;例:1)把R7內(nèi)容傳送給R6. 2)把內(nèi)部RAM20H單元的數(shù)據(jù)送到外部RAM20H 3)把程序存儲(chǔ)器20H單元的數(shù)據(jù)傳送到內(nèi)部RAM20H單元
8、。 4)把內(nèi)部RAM20H的高4位與低4位進(jìn)行交換。3.3.3算術(shù)運(yùn)算指令加、減、乘、除, 8位無(wú)符號(hào)數(shù)1)加法指令不帶進(jìn)位位加法 ADD A, #data(direct, Rn, Ri)例:MOV A,#9EH ADD A,#71H ;(A)=? Cy=? Ac=? OV=? P=? 10011110B + 01110001B = 帶進(jìn)位位加法 ADDC A, #data(direct, Rn, Ri)加1指令 INC A(Rn, direct, Ri, DPTR)十進(jìn)制調(diào)整 DA A BCD數(shù)相加時(shí),需進(jìn)行調(diào)整:P60 例:MOV A,#78H ADD A,#89H DA A ;(A)=?
9、 Cy=?2)減法指令 SUBB A, Rn(direct, Ri, #data) DEC A(Rn, direct, Ri) 減1指令例: (P78)設(shè)(A)=0A9H,(R0)=20H,(20H)=98H CLR C SUBB A,R0 ;(A)=?3)乘法指令 MUL AB ;A*B結(jié)果:B高8位 A低8位例:設(shè)(A)=90H, (B)=62H, MUL AB ;(A)=? (B)=?4)除法指令 DIV AB; A/B結(jié)果:A商; B余數(shù)例:設(shè)(A)=65H, (B)=14H, DIV AB ; (A)=? (B)=? 3.3.4邏輯運(yùn)算及移位指令1)與指令: ANL A, Rn(di
10、rect, Ri, #data) ANL direct, A(#data) 例:設(shè)(A)=0BCH ANL A,#0FH (A)=10111100B 00001111B 00001100B 必要條件;對(duì)位清零; 2)或指令: ORL A, Rn(direct, Ri, #data) ORL direct, A(#data) 例:設(shè)(A)=0BCH ORL A,#0FH (A)=10111100B v 00001111B 10111111B 充分條件;對(duì)位置13)異或指令: XRL A, Rn(direct, Ri, #data) XRL direct, A(#data) 例:設(shè)(A)=0BCH
11、 XRL A,#0FH (A)=10111100B + 00001111B 10110011B 相同為0,不同為1;偶數(shù)次異或不變4)左移指令RL A;RLC A;例: MOV A,#5 RL A; (A)=? RL A; (A)=? MOV PSW,#80H RLC AD7D0D7D0Cy5)右移指令RR A;RRC A;例: MOV A,#32 RR A; (A)=? RR A; (A)=? MOV PSW,#80H RRC AD7D0D7D0Cy3.3.5 控制轉(zhuǎn)移指令一、無(wú)條件轉(zhuǎn)移指令1)長(zhǎng)轉(zhuǎn)移: LJMP addr16; 64K2)絕對(duì)轉(zhuǎn)移:AJMP addr11; 同一個(gè)2K3)相
12、對(duì)轉(zhuǎn)移:SJMP rel ;-128+1274)散轉(zhuǎn)指令:JMP A+DPTR實(shí)際編程時(shí)使用目的地址標(biāo)號(hào)例: LJMP MAIN SJMP NEXT二、條件轉(zhuǎn)移指令1)JZ rel A=0 JNZ rel A02)JC rel C=1 JNC rel C=03)JB bit,rel (bit)=1 JNB bit,rel (bit)=0 JBC bit, rel4)CJNE A, #data(direct),rel 不等轉(zhuǎn)移 CJNE Rn, #data, rel CJNE Ri, #data, rel 對(duì)Cy位有影響。 5)DJNZ Rn, rel 減1非零轉(zhuǎn)移 DJNZ direct, r
13、el編程時(shí),rel為目的地址的標(biāo)號(hào)三、子程序調(diào)用:ACALL addr11 ;絕對(duì)調(diào)用 LCALL addr16 ;長(zhǎng)調(diào)用實(shí)際編程時(shí),addr為子程序名返回:RET RETI ;中斷子程序返回四、空指令 NOP3.3.6 位操作指令1)位傳送 MOV C,bit MOV bit,C2)位修改 清零: CLR C CLR bit 置1: SETB C SETB bit3)位邏輯 與:ANL C,bit(/bit) 或:ORL C,bit(/bit) 非:CPL C CPL bit作業(yè):.已知(A)=98H, (B)=12H, (R0)=20H, (20H)=34H, (PSW)=80H, 分別執(zhí)
14、行下面的指令,寫(xiě)出A中的結(jié)果。1)MOV A, #20H 2) MOV A, 20H3) MOV A, R0 4) MOV A, R05) MOV 20H, A 6) ADD A, #20H7) SUBB A, R0 8) MUL AB9) DIV AB 10) ANL A, #0FH11) ORL A, R0 12) XRL A, 20H13) CLR A 14) CPL A15) RL A 16) RRC A17) MOV ACC.0, C 18) SETB ACC.019) CLR ACC.7 20) XCH A, 20H21) XCHD A, R0 22) SWAP A3.3.7偽指令
15、匯編:將匯編語(yǔ)言翻譯成機(jī)器語(yǔ)言;偽指令:告訴匯編程序匯編方法的命令,不生成機(jī)器代碼。1)ORG:程序或數(shù)據(jù)存放的起始地址 例: ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 000BH LJMP TIMER02)END:匯編結(jié)束 通常省略3)EQU:等值命令(定義常量)例:X EQU 20H Y EQU 21H Z EQU 22H程序中可用XYZ替代20H,21H,22H MOV A,X ADD A,Y MOV Z,A4)DATA:數(shù)據(jù)地址賦值X DATA 20HY DATA 21H5)BIT:定義位變量6)DB:在ROM單元存放字節(jié)數(shù)據(jù)(常數(shù))例 :
16、 ORG 2000H TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH7)DW:定義字3.4 程序匯編人工匯編;機(jī)器匯編分兩次匯編:1)查出各條指令的機(jī)器碼及起始地址;2)計(jì)算偏移地址例:偏移地址:rel=目的地址-當(dāng)前PC 用補(bǔ)碼表示 ORG 0000H MOV R2, #200 MOV DPTR,#2000HLOOP: MOVX A,DPTR MOV C, ACC.7 JNC POS CPL A MOV ACC.7, C ADD A, #1HPOS: MOVX DPTR, A INC DPTR DJNZ R2, LOOP SJMP $ E
17、ND0000H: 7AC80002H: 9020000005H: E00006H: A2E70008H: 50 rel1000AH: F4000BH: 92E7000DH: 2401000FH: F00010H: A30011H: DA rel20013H: 80FE0015H: ORG 0000H MOV R2, #200 MOV DPTR,#2000HLOOP: MOVX A,DPTR MOV C, ACC.7 JNC POS CPL A MOV ACC.7, C ADD A, #1HPOS: MOVX DPTR, A INC DPTR DJNZ R2, LOOP SJMP $ END3.5 仿真實(shí)驗(yàn)系統(tǒng)一.系統(tǒng)的組成: 計(jì)算機(jī);仿真器;實(shí)驗(yàn)箱(用戶板);仿真軟件二.仿真軟件:偉福2000 下載: 三.上機(jī)步驟1. 仿真器設(shè)置 1)選擇仿真器:LAB2000-MCS51-8031 2)通訊設(shè)置:COM1或COM22. 輸入源程序;文件后綴名test.asm3.編譯:語(yǔ)法錯(cuò)誤4.調(diào)試(可控運(yùn)行): 全速執(zhí)行;跟蹤;單步;執(zhí)行到光標(biāo)處 斷點(diǎn);5.數(shù)據(jù)查看
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年江蘇省農(nóng)村土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)合同范本
- 2025實(shí)驗(yàn)室裝修合同范本
- 2025精簡(jiǎn)版裝修施工合同樣本
- 代付款三方協(xié)議書(shū)范本
- ??谑蟹课葑赓U合同書(shū)
- 保險(xiǎn)車輛維修協(xié)議書(shū)
- 道路硬化捐贈(zèng)協(xié)議書(shū)
- 2025年03月河南安陽(yáng)市事業(yè)單位招才引智“綠色通道”引進(jìn)129人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 生物試題2025年?yáng)|北三省四城市聯(lián)考暨沈陽(yáng)市高三質(zhì)量監(jiān)測(cè)(二)及答案
- 廣西警察學(xué)院《藥理學(xué)A(實(shí)驗(yàn))》2023-2024學(xué)年第二學(xué)期期末試卷
- 《中國(guó)膿毒血癥指南》課件
- 工程信息轉(zhuǎn)讓合同范例
- 中國(guó)頭痛門診建設(shè)專家共識(shí)2024(全文)
- 研學(xué)基地與旅行社合作協(xié)議書(shū)
- 《冠心病病人的護(hù)理》課件
- 完整版2024年注安法規(guī)真題及答案(85題)
- 《Python程序設(shè)計(jì)基礎(chǔ)教程(微課版)》全套教學(xué)課件
- 牧場(chǎng)物語(yǔ)-礦石鎮(zhèn)的伙伴們-完全攻略
- 汽車營(yíng)銷知識(shí)競(jìng)賽題庫(kù)及答案(295題)
- 腎病綜合征的實(shí)驗(yàn)室檢查
- 2024年河北省邢臺(tái)市中考一模理綜物理試題(解析版)
評(píng)論
0/150
提交評(píng)論