中職中專(zhuān)-單片機(jī)原理電子教案3_第1頁(yè)
中職中專(zhuān)-單片機(jī)原理電子教案3_第2頁(yè)
中職中專(zhuān)-單片機(jī)原理電子教案3_第3頁(yè)
中職中專(zhuān)-單片機(jī)原理電子教案3_第4頁(yè)
中職中專(zhuān)-單片機(jī)原理電子教案3_第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)介

1、單片機(jī)原理與應(yīng)用電子教案課 題第3章 指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)3.1 尋址方式學(xué) 時(shí) 2學(xué)時(shí)授課類(lèi)型理論講授授課班級(jí)14工業(yè)教學(xué)目標(biāo)1知識(shí)目標(biāo)了解單片機(jī)的指令格式,掌握MCS-51系列單片機(jī)的尋址方式。2能力目標(biāo)通過(guò)直觀教學(xué)和教師的具體講解,培養(yǎng)學(xué)生的邏輯思維和抽象思維能力;培養(yǎng)學(xué)生歸納總結(jié)問(wèn)題的能力。3情感目標(biāo)通過(guò)對(duì)專(zhuān)業(yè)入門(mén)知識(shí)的生動(dòng)形象的教學(xué),使學(xué)生對(duì)本課程的產(chǎn)生濃厚興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情。教學(xué)重點(diǎn)1MCS-51系列單片機(jī)的尋址方式。教 法采用“媒體演示分析概括鞏固提高”的教學(xué)模式教學(xué)過(guò)程過(guò)程設(shè)計(jì)創(chuàng)設(shè)情景導(dǎo)入:一臺(tái)計(jì)算機(jī)所能執(zhí)行的指令集合就是它的指令系統(tǒng)。一般來(lái)說(shuō),不同系列CPU的指令

2、系統(tǒng)不同,本章主要講解MCS-51系列單片機(jī)指令系統(tǒng)。單片機(jī)中主要使用機(jī)器語(yǔ)言和匯編語(yǔ)言,由于機(jī)器語(yǔ)言具有不易書(shū)寫(xiě)等缺點(diǎn),所以單片機(jī)一般采用使用符號(hào)指令的匯編語(yǔ)言。本節(jié)主要講述MCS-51系列單片機(jī)的尋址方式。理解MCS-51的各指令掌握各種尋址方式并理解它們的使用范圍一、尋址方式 尋址方式是指在指令執(zhí)行過(guò)程中,如何找到操作數(shù)有效地址的方法。MCS-51單片機(jī)指令系統(tǒng)提供了7種不同的尋址方式。1立即尋址方式 指令提供的操作數(shù)為直接參與操作的8位或16位數(shù)據(jù)。這種方式的操作數(shù)又稱(chēng)為立即數(shù)。書(shū)寫(xiě)時(shí),在立即數(shù)面前加“#”標(biāo)志。 例如:MOV A,#20H。MOV DPTR, # data16。第一條

3、指令是將立即數(shù)20H送累加器A,指令執(zhí)行后A = 20H。第二條指令是將立即數(shù)data16送數(shù)據(jù)指針DPTR中,指令執(zhí)行后DPTR= data16。2直接尋址方式 直接尋址是指在指令中直接給出操作對(duì)象的存儲(chǔ)單元地址。直接尋址方式的尋址范圍包括:內(nèi)部RAM低128單元、特殊功能寄存器和一些程序控制指令。例如:MOV A,3AH。該指令將內(nèi)部RAM中3AH單元的內(nèi)容送給累加器A,若(3AH)=20H,執(zhí)行示意圖如圖3.1。執(zhí)行結(jié)果A=20H。圖3.1 “MOV A,3AH”示意圖3寄存器尋址方式寄存器尋址就是操作對(duì)象放在寄存器中,指令只提供存放操作對(duì)象的寄存器,執(zhí)行時(shí)通過(guò)尋找寄存器得到操作對(duì)象。書(shū)

4、寫(xiě)時(shí),用符號(hào)名稱(chēng)表示寄存器。 寄存器尋址方式的尋址范圍包括:四個(gè)工作寄存器組共32個(gè)通用寄存器、部分特殊功能寄存器。例如:MOV A,R0。該指令把寄存器R0的內(nèi)容送到累加器A中,若R0=20H,執(zhí)行過(guò)程如圖3.2。指令執(zhí)行后A=20H。圖3.2 “MOV A,R0”指令示意圖4寄存器間接尋址方式 寄存器間接尋址就是操作對(duì)象的存儲(chǔ)器單元地址存放在寄存器中,執(zhí)行時(shí)通過(guò)尋找指定的寄存器,取出其內(nèi)容作為存儲(chǔ)單元地址,從而得到操作的對(duì)象。書(shū)寫(xiě)時(shí),用“”和寄存器符號(hào)表示。寄存器間接尋址的尋址范圍包括:內(nèi)部RAM低128字節(jié)、外部RAM 64KB、堆棧操作指令。例如:設(shè)寄存器R1 = 60H,A = 20

5、H,執(zhí)行指令A(yù)DD A, R1。若(60H)=10H,執(zhí)行過(guò)程如圖3.3。執(zhí)行結(jié)果A=30H。圖3.4 “MOV A,R1”指令示意圖5相對(duì)尋址方式 相對(duì)尋址是指以指令中給出的操作數(shù)作為程序轉(zhuǎn)移的偏移量。書(shū)寫(xiě)時(shí),以“rel”表示地址偏移量。目標(biāo)地址表示為:目標(biāo)地址= 轉(zhuǎn)移指令首地址+ 轉(zhuǎn)移指令字節(jié)數(shù)+ rel例如:JC 3AH。執(zhí)行過(guò)程如圖3.4。圖3.4 “JC 3AH”指令示意圖6變址尋址方式(又稱(chēng)基址寄存器加變址寄存器間接尋址) 指令提供了以DPTR或PC為基址、以累加器A 為變址的兩種寄存器,通過(guò)將兩種寄存器的內(nèi)容相加形成的16位數(shù)據(jù),作為操作對(duì)象存儲(chǔ)單元的地址。 MCS - 51系列

6、單片機(jī)的變址尋址只能對(duì)程序存儲(chǔ)器進(jìn)行尋址,而且變址尋址指令只有三條: MOVC A, A + DPTRMOVC A, A + PCJMP A + DPTR例如:MOVC A, A + DPTR。若A=35H,DPTR=3F30H,那么操作對(duì)象存儲(chǔ)單元的地址為3F65H,若(3F65H)=5CH,執(zhí)行過(guò)程如圖3.5。則執(zhí)行結(jié)果為A=5CH。圖3.5 “MOVC A,A+DPTR”指令示意圖7位尋址方式 指令給出的操作數(shù)是內(nèi)部數(shù)據(jù)存儲(chǔ)器中的可尋址位。書(shū)寫(xiě)時(shí),有四種表示方法:直接使用位地址、位名稱(chēng)表示法、單元地址加位表示法、專(zhuān)用寄存器名稱(chēng)加位表示法。 MCS- 51單片機(jī)的位尋址范圍包括:內(nèi)部RAM

7、中的位尋址區(qū)、特殊功能寄存器的可尋址位。 例如:ANL C,21H. 5。該指令將進(jìn)位標(biāo)志CY和內(nèi)部RAM的21H單元的第5位進(jìn)行邏輯與運(yùn)算,結(jié)果保存到C中???結(jié)本節(jié)主要講解如何通過(guò)尋找操作數(shù)的有效地址,來(lái)獲得真正的操作對(duì)象。為匯編程序打基礎(chǔ)。板書(shū)設(shè)計(jì)第3章 指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)3.1 尋址方式一、立即尋址方式1、定義 2、舉例二、直接尋址方式1、定義 2、舉例三、寄存器尋址方式1、定義 2、舉例四、寄存器間接尋址方式1、定義 2、舉例五、相對(duì)尋址方式1、定義 2、舉例六、變址尋址方式1、定義 2、舉例七、位尋址方式1、定義 2、舉例思 考 題名詞解釋?zhuān)簩ぶ贩绞?、操作?shù)、P74 3.1

8、 (5)課后反思34課 題第3章 指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)3.2 指令系統(tǒng)學(xué) 時(shí) 4學(xué)時(shí)授課類(lèi)型理論講授授課班級(jí)14工業(yè)教學(xué)目標(biāo)1知識(shí)目標(biāo)掌握MCS-51指令系統(tǒng)的數(shù)據(jù)傳送指令、算術(shù)指令、邏輯運(yùn)算指令、位操作指令和控制轉(zhuǎn)移指令。2能力目標(biāo)通過(guò)直觀教學(xué)和教師的具體講解,培養(yǎng)學(xué)生的邏輯思維和抽象思維能力;培養(yǎng)學(xué)生歸納總結(jié)問(wèn)題的能力。3情感目標(biāo)通過(guò)對(duì)專(zhuān)業(yè)入門(mén)知識(shí)的生動(dòng)形象的教學(xué),使學(xué)生對(duì)本課程的產(chǎn)生濃厚興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情。教學(xué)重點(diǎn)1MCS-51指令系統(tǒng)的數(shù)據(jù)傳送指令、算術(shù)指令、邏輯運(yùn)算指令、位操作指令和控制轉(zhuǎn)移指令。教 法采用“媒體演示分析概括鞏固提高”的教學(xué)模式教學(xué)過(guò)程過(guò)程設(shè)計(jì)創(chuàng)設(shè)情景導(dǎo)入

9、:復(fù)習(xí)MCS-51單片機(jī)的指令和尋址方式,不同的指令助記符和不同的尋址方式的組合構(gòu)成了MCS-51的指令系統(tǒng),本節(jié)著重介紹MCS-51指令系統(tǒng)。熟記描述指令的符號(hào)通過(guò)舉例來(lái)熟記29條數(shù)據(jù)傳送指令的書(shū)寫(xiě)及其功能通過(guò)舉例熟記算術(shù)指令的書(shū)寫(xiě)及其功能通過(guò)舉例熟練掌握24條邏輯運(yùn)算指令注意指令執(zhí)行對(duì)位操作位的影響掌握程序控制指令各指令的功能及應(yīng)用通過(guò)舉例來(lái)掌握位操作指令 按指令的功能,MCS-51指令系統(tǒng)可分為五大類(lèi): ·數(shù)據(jù)傳送指令 ·算術(shù)運(yùn)算指令 ·邏輯運(yùn)算指令 ·程序控制指令 ·位操作指令 描述指令的一些符號(hào)的意義: ·R n (n =

10、07):表示當(dāng)前工作寄存器組R0R7中的某一個(gè)寄存器。 ·R i(i= 07): 可以作間接尋址的寄存器,只能是R0和R1兩個(gè)寄存器,“”是間接尋址標(biāo)識(shí)符。 ·direct: 內(nèi)部RAM的8位地址,可以是內(nèi)部RAM的單元地址(00H7FH)或特殊功能寄存器地址。 ·# data:8位立即數(shù),其中“#”是立即數(shù)標(biāo)識(shí)符。 ·# data16:16位立即數(shù)。 ·addr11:11位目的地址。用于ACALL和AJMP指令中,轉(zhuǎn)移范圍為2KB。 ·addr16:16位目的地址。用于LCALL和LJMP指令中,轉(zhuǎn)移范圍為64KB。 ·r

11、el:相對(duì)轉(zhuǎn)移指令中的8位偏移地址,范圍是-128+127。 ·DPTR:數(shù)據(jù)指針,用作16位的地址寄存器。 ·bit:內(nèi)部RAM或特殊功能寄存器中的直接尋址位。 ·rrr:在操作碼中,表示R0R7寄存器的編碼。 ·A:累加器,寫(xiě)作“A”時(shí),是寄存器尋址;寫(xiě)作“ACC”時(shí),是直接尋址。 ·B:特殊功能寄存器,用于MUL和DIV指令中。 ·/ :位操作數(shù)的前綴,表示對(duì)該位操作數(shù)取反。 ·(存儲(chǔ)單元地址):表示某存儲(chǔ)單元的內(nèi)容。 ·(間址寄存器):由寄存器間接尋址的單元中的內(nèi)容。一、數(shù)據(jù)傳送指令 功能是實(shí)現(xiàn)計(jì)算機(jī)內(nèi)不同

12、存儲(chǔ)區(qū)域之間的信息傳遞。MCS-51數(shù)據(jù)傳送如下圖3.6:圖3.6 數(shù)據(jù)傳送示意圖1內(nèi)部RAM、特殊功能寄存器之間的數(shù)據(jù)傳送 ·立即數(shù)傳送指令 MOV A, # data ; AdataMOV direct, # data ; (direct)dataMOV Rn, # data ; Rn dataMOV Ri, # data ; (Ri)dataMOV DPTR, # data16 ; DPH data 高8位,DPLdata 低8位例3.1 分析下列指令的尋址方式以及指令執(zhí)行后存儲(chǔ)單元和寄存器的內(nèi)容。 MOV A, # 20H ;目的操作數(shù)采用寄存器尋址,A=20H MOV 32

13、H, # 23H ;目的操作數(shù)采用直接尋址,(32H)=23H MOV R4, # 2FH ;目的操作數(shù)采用寄存器尋址,R4=2FH MOV R0, # 5AH ;目的操作數(shù)采用寄存器間接尋址,(R0)=5AH MOV DPTR, # 203FH ;目的操作數(shù)采用寄存器尋址,DPTR=203FH·內(nèi)部RAM單元之間的數(shù)據(jù)傳送指令 MOV direct1,direct2 ;(direct1)(direct2)MOV direct,Rn ;(direct)RnMOV Rn,direct ;Rn(direct)MOV direct, Ri ;(direct)(Ri)MOV Ri,direc

14、t ;(Ri)(direct) 例3.2 分析指令的尋址方式和執(zhí)行結(jié)果 MOV P2,R2;目的操作數(shù)采用直接尋址,源操作數(shù)為寄存器尋址;P2 = R2,該指令等價(jià)于MOV 0A0H,R2MOV 2FH,30H;兩個(gè)操作數(shù)均采用直接尋址,(2FH)= (30H)MOV 20H, R1;目的操作數(shù)為直接尋址,源操作數(shù)為寄存器間接;尋址,執(zhí)行結(jié)果:(20H)= (R1) ·與累加器有關(guān)的數(shù)據(jù)傳送指令 MOV A,Rn ;ARnMOV Rn,A ;RnA MOV A,direct ;A(direct)MOV direct,A ;(direct)AMOV A, Ri ;A(Ri)MOV Ri

15、,A ;(Ri)A 例3.3 分析下列指令的尋址方式和執(zhí)行結(jié)果 MOV A,R5 ;兩操作數(shù)均采用寄存器尋址,A=R5 MOV A,0F0H ;原操作數(shù)為直接尋址,A=(0F0H) MOV A, R1 ;源操作數(shù)為寄存器間接尋址,A=(R1)2累加器與外部RAM之間的數(shù)據(jù)傳送 MOVX A, DPTR ;A(DPTR)MOVX DPTR,A ;(DPTR)AMOVX A, Ri ;A (Ri)MOVX Ri,A ;(Ri)A 例3.4 已知DPTR=2000H,片外RAM (2000H)=05H,R1=0F0H,片外RAM (0F0H)=0A0H。 MOVX A, DPTR ;指令執(zhí)行后,A=

16、05H MOVX R1,A ;指令執(zhí)行后,片外RAM (0F0H)=05H3程序存儲(chǔ)器中的數(shù)據(jù)傳送到累加器A的指令 只能從程序存儲(chǔ)器向累加器傳送數(shù)據(jù)。 MOVC A,A+DPTR ;A(ADPTR) MOVC A,A+PC ;A(APC) 例3.5 把累加器A中的十六進(jìn)制數(shù)字00H0FH轉(zhuǎn)換成ASCII碼。 INC A ;調(diào)整偏移量(數(shù)據(jù)表的首地址與MOVC指令間隔1個(gè)單元)MOVC A, A + PC ;查表取數(shù)RET ;子程序返回DB 30H,31H,32H,33H,34H ;在程序存儲(chǔ)器中順序存放DB 35H,36H,37H,38H,39H ;0F的ASCII碼DB 41H,42H,43

17、H,44H,45H,46H 假如上述指令代碼在程序存儲(chǔ)器的存儲(chǔ)如下圖3.7所示。如果累加器A=0FH,則執(zhí)行INC A 后,A = 10H,程序存儲(chǔ)器取出MOVC指令后,PC = 2001H,則A + PC=2011H,于是執(zhí)行 MOVC 指令后A=(2011H)=46H,即將累加器A 中十六進(jìn)制數(shù)字F 轉(zhuǎn)換成相應(yīng)的ASCII 碼46H。圖3.7 例3.5程序存儲(chǔ)器數(shù)據(jù)分布圖4內(nèi)部RAM單元與累加器A之間數(shù)據(jù)交換指令 ·字節(jié)交換指令 XCH A,Rn ; A RnXCH A,direct ; A (direct)XCH A, Ri ; A (Ri) ·半字節(jié)交換指令XCHD

18、 A, Ri ;A(D3 D0) (Ri)(D3 D0),即累加器A的低4位與Ri間址的內(nèi)部RAM單元的低4位交換。 ·累加器A 的高4 位與低4 位交換指令SWAP A ; A(D3 D0) A(D7 D4) 例3.6 設(shè)A=4FH,R1=20H,內(nèi)部RAM中(20H)=35H,則 XCH A, R1 ;執(zhí)行指令后,A=35H,(20H)=4FH 例3.7 設(shè)R0=50H,A=3FH,內(nèi)部RAM中(50H)=21H,則 XCHD A, R0 ;指令執(zhí)行后,A=31H,(50H)=2FH5堆棧操作指令 ·進(jìn)棧指令PUSH direct ;SPSP + 1,(SP)(dire

19、ct) ·出棧指令POP direct ; (direct)(SP),SPSP 1 例3.8 已知SP = 3AH,DPTR= 1234H,則 PUSH DPL ;SPSP + 1=3BH,(3BH)=34H POP DPH ;SPSP + 1=3CH,(3CH)=12H 執(zhí)行指令后,SP=3CH,(3CH)=12H,(3BH)=34H 例3.9 設(shè)SP=4FH,內(nèi)部RAM的(4FH)=45H,(4EH)=01H 則 POP PSW ;PSW(4FH)= 45H,SPSP-1 = 4EHPOP ACC ;ACC(4EH)= 01H,SPSP1 = 4DH 執(zhí)行結(jié)果為:SP = 4DH

20、,ACC = 01H,PSW = 45H 例3.10 堆棧操作指令常用于子程序中 子程序入口處,保護(hù)現(xiàn)場(chǎng)的指令:PUSH ACCPUSH PSW子程序返回時(shí),恢復(fù)現(xiàn)場(chǎng)的指令:POP PSWPOP ACC注:1內(nèi)部RAM的前128字節(jié)、特殊功能寄存器之間可以互相傳送數(shù)據(jù),但最多只允許一個(gè)操作數(shù)使用寄存器間接尋址。2訪問(wèn)特殊功能寄存器必須采用直接尋址,不能采用寄存器間接尋址,否則會(huì)引起錯(cuò)誤。3MCS51指令系統(tǒng)沒(méi)有提供B寄存器尋址方式(乘法指令例外)。4注意累加器A 和ACC 兩種寫(xiě)法的區(qū)別:A 為寄存器尋址方式,ACC 為直接尋址方式。二、算術(shù)運(yùn)算指令1加減運(yùn)算指令 加減運(yùn)算指令的目的操作數(shù)是累

21、加器A,源操作數(shù)可以是立即數(shù)、通用寄存器、內(nèi)部RAM或特殊功能寄存器和Ri 間址的內(nèi)部RAM。 ·加法指令 ADD功能:將累加器和源操作數(shù)相加,結(jié)果送累加器A,源操作數(shù)不變。形式:ADD A, Rn ;A+RnA ADD A, direct ;A+(direct)A ADD A, Ri ;A+(Ri)A ADD A, #data ;A+dataA注:ADD 指令影響程序狀態(tài)字PSW 的CY、AC、OV 位。例如,A=0C0H,R1=0AEH,執(zhí)行 ADD A,R1 指令。 11000000 + 10101111 01101111運(yùn)算結(jié)果:A=6FH,AC=0,CY=1,OV=1。&#

22、183;帶進(jìn)位加法指令 ADDC功能:將累加器A、源操作數(shù)以及進(jìn)位標(biāo)志CY相加,結(jié)果送累加器A。形式:ADD A, Rn ;A+Rn+CYA ADD A, direct ;A+(direct) +CYA ADD A, Ri ;A+(Ri) +CYA ADD A, #data ;A+data+CYA注:ADDC 指令影響程序狀態(tài)字PSW 的CY、AC、OV 位。·帶借位減法指令SUBB 功能:將累加器和源操作數(shù)相減,結(jié)果送累加器A,源操作數(shù)不變。 形式: SUBB A, Rn ;A-Rn-CYA SUBB A, direct ;A-(direct)-CYA SUBB A, Ri ;A-

23、(Ri)-CYA SUBB A, #data ;A-data-CYA注:SUBB 指令影響程序狀態(tài)字PSW 的CY、AC、OV 位。 ·加1指令 INC 功能:該指令只有一個(gè)操作數(shù),執(zhí)行時(shí)把操作數(shù)的內(nèi)容加1,結(jié)果送回原單元。 形式: INC A ;A + 1AINC Rn ;Rn + 1RnINC direct ;(direct)+ 1(direct)INC Ri ;(Ri)+ 1(Ri)INC DPTR ;DPTR + 1DPTR注:加1指令主要用于修改地址指針和計(jì)數(shù)次數(shù),它對(duì)CY、AC、OV 沒(méi)有影響。 ·減1指令 DEC 功能:該指令只有一個(gè)操作數(shù),執(zhí)行時(shí)把操作數(shù)的內(nèi)

24、容減1,結(jié)果送回原單元。 形式:DEC A ;A-1A DEC Rn ;Rn1Rn DEC direct ;(direct)-1(direct) DEC Ri ;(Ri)-1(Ri)注:該指令不影響CY、AC、OV。2乘除法指令 ·乘法指令 MUL功能:把累加器A 和寄存器B 中的無(wú)符號(hào)數(shù)相乘,所得16 位乘積的低位字節(jié)存入A中,高位字節(jié)存入B 中。形式:MUL AB例如:A=1AH,B=20H,執(zhí)行指令MUL AB執(zhí)行結(jié)果為A=40H,B=03H,OV = 1,CY = 0 ·除法指令 DIV 功能:用A 中8 位無(wú)符號(hào)數(shù)除以B 中8 位無(wú)符號(hào)數(shù),所得商存入A 中,余數(shù)存

25、入B中,并將CY 和OV 置0。 形式:DIV AB 例如:A=0F4H,B=0AH,執(zhí)行指令DIV AB執(zhí)行結(jié)果為A=18H,B=04H,OV=0,CY=03十進(jìn)制調(diào)整指令 功能:把A 中的數(shù)作為兩個(gè)BCD 數(shù)相加之和進(jìn)行調(diào)整,得到兩位正確的BCD數(shù)。 形式:DA A 例如:73-54=19 先執(zhí)行9AH-54H,得到補(bǔ)熟46H,再執(zhí)行73H+46H=0B9H,最后執(zhí)行調(diào)整指令將0B9H加上60H得到19H,即得到正確的BCD數(shù)。三、邏輯運(yùn)算指令1邏輯與運(yùn)算指令 邏輯與運(yùn)算指令常用作字節(jié)清零或位清零。共有6條指令:ANL A,Rn ;ARnA ANL A,direct ; A(direct)

26、AANL A,Ri ;A(Ri)AANL A, # data ;AdataA ANL direct,A ;(direct)A(direct) ANL direct, # data ;(direct)data(direct)例如:若A=0A6H,R1=0A4H,執(zhí)行ANL A,R1 后,A=0A4H2邏輯或運(yùn)算指令 邏輯或運(yùn)算可以實(shí)現(xiàn)對(duì)某個(gè)單元的某些位置1,其余位不變。共有6條指令: ORL A, Rn ;ARnAORL A, direct ;A(direct)AORL A, Ri ;A(Ri)AORL A, # data ;AdataAORL direct, A ;(direct)A(dire

27、ct)ORL direct, # data ;(direct)data(direct)3邏輯異或運(yùn)算 邏輯異或運(yùn)算可以用來(lái)比較兩個(gè)數(shù)據(jù)是否相等。當(dāng)兩個(gè)數(shù)據(jù)異或結(jié)果為0,則表示相等,否則表示不相等。共有6條指令。 XRL A,Rn ;ARnAXRL A,direct ;A(direct)AXRL A,Ri ;A(Ri)AXRL A, # data ;AdataAXRL direct,A ;(direct)A(direct)XRL direct, # data ;(direct)data(direct)例如:若A=7FH,R1=0A5H,則執(zhí)行指令 XRL A,R1后,A=0DAH。4累加器清0和

28、取反指令 累加器清0指令: CLR A ;0A 累加器按位取反指令:CPL A ;A 例如:若 A=55H,則執(zhí)行指令: CPL A ;執(zhí)行結(jié)果A=0AAH CLR A ;執(zhí)行結(jié)果A=00H5循環(huán)移位指令 ·循環(huán)右移指令:RR A 功能:將累加器A的內(nèi)容逐位循環(huán)右移一位。如圖所示: 例如,若A=6AH=01101010B,執(zhí)行RR A 指令后,A=35H。 ·循環(huán)左移指令:RL A功能:將累加器A的內(nèi)容逐位左移一位,如圖所示:例如,若A=0A3H=10100011B,執(zhí)行 RL A 指令后,A=47B。 ·帶進(jìn)位循環(huán)右移指令:RRC A 功能:將累加器A的內(nèi)容和進(jìn)

29、位位一起逐位循環(huán)右移一位,如圖所示: 例如,若A=4BH=01001011B,CY=1,執(zhí)行 RRL A 指令后,A=0A5H,CY=1。注:此操作影響CY位。 ·帶進(jìn)位循環(huán)左移指令:RLC A功能:將累加器A的內(nèi)容和進(jìn)位位一起逐位循環(huán)左移一位,如圖所示:注:此操作影響CY位。四、程序控制指令程序控制指令完成程序的轉(zhuǎn)移、子程序的調(diào)用與返回、中斷返回等功能。指令運(yùn)行的實(shí)質(zhì)是改變程序計(jì)數(shù)器PC 的值,使程序不按順序執(zhí)行,從而實(shí)現(xiàn)程序的分支、循環(huán)等功能。1無(wú)條件轉(zhuǎn)移指令 ·相對(duì)轉(zhuǎn)移指令:SJMP rel執(zhí)行指令時(shí),先將PC+2,再把指令中帶符號(hào)的偏移量rel加到PC上,得到轉(zhuǎn)移目

30、標(biāo)地址。·絕對(duì)轉(zhuǎn)移指令:AJMP addr11 指令執(zhí)行時(shí),先將PC+2,然后將addr11送入PC10PC0,而PC15PC11保持不變。這樣就得到轉(zhuǎn)移目標(biāo)地址。注:絕對(duì)轉(zhuǎn)移范圍是以AJMP指令的下一條指令高5位地址所確定的2KB范圍內(nèi)。·長(zhǎng)轉(zhuǎn)移指令:LJMP addr16 ;addr16PC 執(zhí)行指令時(shí),把16位地址addr16裝入程序計(jì)數(shù)器PC,轉(zhuǎn)移范圍可達(dá)64KB。·間接轉(zhuǎn)移指令:JMP A+DPTR ; A+DPTRPC 執(zhí)行指令時(shí),數(shù)據(jù)指令DPTR和累加器A的內(nèi)容相加裝入程序計(jì)數(shù)器PC。2條件轉(zhuǎn)移指令 ·累加器判零轉(zhuǎn)移指令JZ rel ;若A

31、=0,則PC+2+relPC,否則PC+2PCJNZ rel ;若A0,則PC+2+relPC,否則PC+2PC ·比較轉(zhuǎn)移指令CJNE A,direct,rel ; A(direct),則轉(zhuǎn)移CJNE A,#data,rel ; Adata,則轉(zhuǎn)移CJNE Rn,#data,rel ; Rndata,則轉(zhuǎn)移CJNE Ri,#data,rel ; (Ri)data,則轉(zhuǎn)移操作如下:若目的操作數(shù)=源操作數(shù),則PC+3PC,0CY 若目的操作數(shù)>源操作數(shù),則PC+3+relPC,0CY 若目的操作數(shù)<源操作數(shù),則PC+3+relPC,1CY·減1不為0轉(zhuǎn)移指令 DJ

32、NZ Rn,rel ;Rn-1Rn,若Rn0,則PC+2+relPC,否則PC+2PC DJNZ direct,rel ;(direct)-1(direct),若(direct)0,則PC+3+relPC,否PC+3PC這兩種指令主要用于控制程序循環(huán)。·位控制轉(zhuǎn)移指令 JC rel ;若CY = 1,則PC + 2 + relPC,否則PC + 2PCJNC rel ;若CY = 0,則PC + 2 + relPC,否則PC + 2PCJB bit,rel ;若(bit)= 1,則PC + 3 + relPC,否則PC + 3PCJNB bit,rel ;若(bit)= 0,則PC

33、+ 3 + relPC,否則PC + 3PCJBC bit,rel ;若(bit)= 1,則PC + 3 + relPC,且(bit)= 0,否則PC+ 3PC3調(diào)用和返回指令 ·絕對(duì)調(diào)用指令:ACALL addr11 操作過(guò)程: PCPC + 2 ;取出指令SPSP + 1 , (SP)PC (D7 D0)SPSP + 1, (SP)PC (D15 D8) ;斷點(diǎn)地址入棧PC (D10 D0)addr11,PC (D15 D11)不變 ;進(jìn)入子程序例如,若SP = 60H,PC = 2100H,子程序sub1首地址為23A0H。執(zhí)行下面指令:2100H:ACALL sub1 ;指令

34、代碼是71A0H執(zhí)行過(guò)程:PC= PC + 2 = 2102H,將PC 壓棧,即(61H)= 02H,(62H) = 21H,SP = 62H;用指令提供的11 位地址01110100000B (3A0H)替換PC 的低11 位,形成目的地址0010001110100000B,即進(jìn)入sub1子程序。 ·長(zhǎng)調(diào)用指令:LCALL addr16 操作過(guò)程:PCPC + 3 ;取出指令SPSP + 1,(SP)PC (D7 D0)SPSP + 1,(SP)PC (D15 D8) ;斷點(diǎn)地址入棧PCaddr16 ;進(jìn)入子程序 ·返回指令 RET ;子程序返回指令 RETI ;中斷返回

35、指令操作過(guò)程:(SP)PC (D15D8) , SP - 1SP , (SP)PC (D7 D0) , SP - 1SP功能:子程序返回指令通常用在由ACALL 或LCALL 調(diào)用的子程序的末尾。中斷返回指令作為中斷服務(wù)程序的結(jié)束指令,還具有清除中斷響應(yīng)時(shí)被置位的優(yōu)先級(jí)狀態(tài)、恢復(fù)中斷邏輯等功能。4空操作指令NOP ;PC+1PC操作:該指令不執(zhí)行任何操作,常用于程序的等待或時(shí)間的延遲。五、位操作指令 在位操作指令中,進(jìn)位標(biāo)志CY的作用類(lèi)似于字節(jié)運(yùn)算指令中的累加器A,因此CY被稱(chēng)為“位累加器”。1位傳送指令 MOV C,bit ;(bit) CY MOV bit,C ;CY(bit)例如, 把2

36、0H位傳送到30H位。MOV 10H,C ;暫存CY內(nèi)容MOV C,20H ;20H位送CYMOV 30H,C ;CY送30H位MOV C,10H ;恢復(fù)CY 內(nèi)容2置位/復(fù)位指令 CLR C ;0CYCLR bit ;0(bit)SETB C ;1CYSETB bit ;1(bit)例如, P0 = 01011010B,CY = 0,執(zhí)行指令:SETB CSETB P0. 0CLR P0. 3執(zhí)行結(jié)果為:CY = 1,P0 = 01010011B3位邏輯運(yùn)算指令 ANL C,bit ;CY(bit)CYANL C, / bit ;CYCYORL C,bit ;CY(bit)CYORL C,

37、/ bit ;CYCYCPL C ;CYCPL bit ; (bit)例:設(shè)D、E、F代表位地址,計(jì)算F = DE = E+ D。 MOV C,EANL C, / D ;ECYMOV F,CMOV C,DANL C,/ E ;DCYORL C,F(xiàn) ;D+ ECYMOV F,C ;DEF總 結(jié)本節(jié)主要通過(guò)舉例來(lái)加強(qiáng)對(duì)MCS-51指令系統(tǒng)的的數(shù)據(jù)傳送指令、算術(shù)指令、邏輯運(yùn)算指令、位操作指令和控制轉(zhuǎn)移指令的理解和掌握。板書(shū)設(shè)計(jì)3.2 指令系統(tǒng)一、數(shù)據(jù)傳送類(lèi)指令1、內(nèi)部RAM、特殊功能寄存器之間的數(shù)據(jù)傳送2、累加器與外部RAM之間的數(shù)據(jù)傳送3、程序存儲(chǔ)器中的數(shù)據(jù)傳送到累加器的指令4、內(nèi)部RAM單元與累

38、加器之間數(shù)據(jù)交換指令5、堆棧操作指令二、算數(shù)運(yùn)算指令1、加減運(yùn)算指令 2、乘除法指令三、邏輯運(yùn)算指令 1、邏輯與運(yùn)算指令 2、邏輯或運(yùn)算指令3、邏輯異或運(yùn)算指令 4、累加器清0與取反指令5、循環(huán)移位指令 四、程序控制指令1、五條件轉(zhuǎn)移指令 2、條件轉(zhuǎn)移指令3、子程序調(diào)用與返回指令 4、空操作指令五、位操作指令1、位傳送指令 2、置、復(fù)位指令 3、位邏輯運(yùn)算指令 思 考 題P74 3.1、(3)(6)、(8) 3.2、(1)、(2)、(3)、(4)課后反思課 題第3章 指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)3.3 匯編語(yǔ)言程序的匯編與調(diào)試學(xué) 時(shí) 2學(xué)時(shí)授課類(lèi)型理論講授授課班級(jí)14工業(yè)教學(xué)目標(biāo)1知識(shí)目標(biāo)熟悉匯

39、編語(yǔ)言程序的編輯與調(diào)試方法。2能力目標(biāo)通過(guò)直觀教學(xué)和教師的具體講解,培養(yǎng)學(xué)生的邏輯思維和抽象思維能力;培養(yǎng)學(xué)生歸納總結(jié)問(wèn)題的能力。3情感目標(biāo)通過(guò)對(duì)專(zhuān)業(yè)入門(mén)知識(shí)的生動(dòng)形象的教學(xué),使學(xué)生對(duì)本課程的產(chǎn)生濃厚興趣,激發(fā)學(xué)生的學(xué)習(xí)熱情。教學(xué)重點(diǎn)1MCS-51單片機(jī)的偽指令。2匯編語(yǔ)言源程序的匯編與調(diào)試。教 法采用“媒體演示分析概括鞏固提高”的教學(xué)模式教學(xué)過(guò)程過(guò)程設(shè)計(jì)創(chuàng)設(shè)情景導(dǎo)入:在掌握MCS-51指令系統(tǒng)的基礎(chǔ)上,進(jìn)入對(duì)匯編語(yǔ)言程序設(shè)計(jì)的初步認(rèn)識(shí)。了解匯編語(yǔ)言程序設(shè)計(jì)的組成了解流程圖,掌握各圖形的表示能夠讀懂流程圖掌握匯編程序中的偽指令了解源程序的匯編過(guò)程與調(diào)試過(guò)程一、 匯編語(yǔ)言程序的一般組成及設(shè)計(jì)方法

40、匯編語(yǔ)言是一種面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。匯編語(yǔ)言程序的匯編過(guò)程:1匯編語(yǔ)言的語(yǔ)句種類(lèi)和格式 ·匯編語(yǔ)言語(yǔ)句有三種基本類(lèi)型:可執(zhí)行指令語(yǔ)句;偽指令語(yǔ)句;宏指令語(yǔ)句。 ·匯編語(yǔ)言語(yǔ)句的格式 MCS-51匯編語(yǔ)言的指令語(yǔ)句格式為:標(biāo)號(hào): <操作碼> 操作數(shù)表;注釋 偽指令語(yǔ)句的格式:標(biāo)號(hào) <定義符> 參數(shù)表;注釋 兩種語(yǔ)句都由四個(gè)部分組成, 其中方括號(hào)括起來(lái)的內(nèi)容是可選部分,各部分之間用分隔符分隔,常用的分隔符有空格、冒號(hào)、逗號(hào)和分號(hào)。各部分的意義為: 標(biāo)號(hào)是語(yǔ)句的符號(hào)地址,用來(lái)說(shuō)明指令的地址。 操作碼用以規(guī)定指令所執(zhí)行的操作,通常以指令助記符或偽指令定義符

41、來(lái)表示。 操作數(shù)用以提供指令操作所需的數(shù)據(jù)或地址。 注釋部分以分號(hào)開(kāi)頭,是關(guān)于語(yǔ)句功能、性質(zhì)及執(zhí)行結(jié)果的文字說(shuō)明,僅供人們閱讀程序時(shí)使用,機(jī)器并不執(zhí)行。2匯編語(yǔ)言程序設(shè)計(jì)所謂匯編語(yǔ)言程序設(shè)計(jì),就是使用匯編語(yǔ)言指令來(lái)編寫(xiě)計(jì)算機(jī)程序。其步驟可以概括如下:·分析問(wèn)題,確定算法。·根據(jù)算法,畫(huà)出程序流程圖。 ·合理地分配存儲(chǔ)空間和寄存器。·編寫(xiě)程序。·上機(jī)調(diào)試程序。 3流程圖起止框 矩形框 判斷框 流線 連接點(diǎn) 在編寫(xiě)計(jì)算機(jī)程序時(shí),可以將解決問(wèn)題的方法和步驟用一些代表不同操作的圖形框來(lái)描述,然后用帶有箭頭的細(xì)線將這些圖形框連接起來(lái),表示某一事件的執(zhí)行過(guò)

42、程。這樣的圖形叫流程圖,也稱(chēng)為框圖。傳統(tǒng)的流程圖由下圖所示的幾種基本圖形框組成。起止框:表示程序的開(kāi)始或結(jié)束。表示程序開(kāi)始時(shí)只有一個(gè)出口,表示程序結(jié)束時(shí)只有一個(gè)入口。矩形框:也稱(chēng)功能框,表示計(jì)算或處理等基本操作,它有一個(gè)入口和一個(gè)出口。判斷框:用來(lái)判斷給出的條件是否成立,根據(jù)判斷的結(jié)果決定程序的流向。一般只有一個(gè)入口和兩個(gè)出口。流線:表示程序的流向。連接點(diǎn):表示相關(guān)兩框的連接處,圓圈內(nèi)數(shù)字相同表示連接在一起。例如,計(jì)算X的值。若X0,則計(jì)算X,并輸出計(jì)算結(jié)果;若X <0,則輸出“不能計(jì)算”。使用流程圖描述其計(jì)算過(guò)程如圖所示。二、偽指令偽指令又稱(chēng)偽操作,是源程序發(fā)送給匯編程序的指令,但并沒(méi)

43、有生成相應(yīng)的機(jī)器代碼。下面介紹MCS - 51匯編程序中常用的偽指令。1賦值偽指令EQU 指令格式:<符號(hào)名>EQU <賦值項(xiàng)> 例如:TTY EQU 1000H ;定義標(biāo)號(hào)TTY 值為1000HLOOP EQU TTY ;定義標(biāo)號(hào)LOOP 值為標(biāo)號(hào)TTY 的值2定義字節(jié)偽指令DB 指令格式: <標(biāo)號(hào)> DB <表達(dá)式表>功能:把表達(dá)式表中的字節(jié)數(shù)據(jù)存入從標(biāo)號(hào)開(kāi)始的連續(xù)存儲(chǔ)單元中。例如:TAB DB 32H,33H,34H,35H,36H,37H 表示把字節(jié)數(shù)據(jù)存入由標(biāo)號(hào)TAB開(kāi)始的連續(xù)存儲(chǔ)單元中。3定義字偽指令DW指令格式:<標(biāo)號(hào)>

44、 DW <表達(dá)式表>功能:把表達(dá)式表中的16 位數(shù)據(jù)存入由標(biāo)號(hào)開(kāi)始的連續(xù)存儲(chǔ)單元,低地址單元存放高字節(jié),高地址單元存放低字節(jié)。例如:ABC DW 1234H,100H 表示從ABC 地址開(kāi)始按順序存入12H,34H,01H,00H。4存儲(chǔ)區(qū)定義偽指令DS 指令格式:<標(biāo)號(hào)>DS <表達(dá)式>功能:通知匯編程序,從指定的地址開(kāi)始,保留指定數(shù)目的字節(jié)單元作為存儲(chǔ)區(qū),供程序運(yùn)行使用。例如:ADDR1 DS 20H 指令表示從標(biāo)號(hào)ADDR1代表的地址開(kāi)始,保留20H個(gè)存儲(chǔ)單元。5位定義偽指令BIT 指令格式:<符號(hào)名> BIT <位地址> 功能

45、:給符號(hào)名賦以位地址。 例如:AA BIT 1FH ;用符號(hào)名AA代表位地址1FH。6設(shè)置起始地址偽指令ORG 指令格式:<標(biāo)號(hào)>ORG <表達(dá)式>功能:指定目標(biāo)程序或數(shù)據(jù)塊在存儲(chǔ)器中的起始地址,其中,表達(dá)式通常為16 位地址碼。例如:ORG 1000HSTART:MOV A,0HORG 偽指令通知匯編程序,由START開(kāi)始的程序段,其起始地址為1000H。如果沒(méi)有設(shè)置起始地址,則目標(biāo)程序從0000H單元開(kāi)始存放。7匯編結(jié)束偽指令END指令格式:END功能:用于終止源程序的匯編工作。三、匯編與調(diào)試1匯編語(yǔ)言源程序的匯編 對(duì)單片機(jī)來(lái)說(shuō),有手工匯編和機(jī)器匯編兩種方法。 &#

46、183;機(jī)器匯編是指先將匯編語(yǔ)言源程序輸入計(jì)算機(jī),再利用匯編程序?qū)⑵浞g成二進(jìn)制代碼的目標(biāo)文件(. OBJ)的過(guò)程。 ·手工匯編是指通過(guò)人工查找指令表,將每一條指令的機(jī)器代碼查出,并分配存儲(chǔ)空間,計(jì)算地址偏移量,得到目標(biāo)文件的過(guò)程。2匯編語(yǔ)言程序的調(diào)試 編寫(xiě)好匯編語(yǔ)言程序之后,通過(guò)匯編過(guò)程,把目標(biāo)文件傳送到單片機(jī)中。在單片機(jī)中通過(guò)監(jiān)控程序?qū)δ繕?biāo)程序進(jìn)行調(diào)試運(yùn)行。總 結(jié)通過(guò)本節(jié)的學(xué)習(xí),初步了解匯編語(yǔ)言程序的設(shè)計(jì)過(guò)程。板書(shū)設(shè)計(jì)3.3 匯編語(yǔ)言程序的匯編與調(diào)試一、匯編語(yǔ)言程序的一般組成及設(shè)計(jì)方法1、匯編語(yǔ)言的語(yǔ)句種類(lèi)和格式 2、匯編語(yǔ)言程序設(shè)計(jì) 3、流程圖二、偽指令1、賦值偽指令EQU 2、定義字節(jié)偽指令DB3、定義字偽指令DW 4、存儲(chǔ)區(qū)定義偽指令DS5、位定義偽指令BIT 6、設(shè)置起始地址偽指令ORG7、匯編結(jié)束偽指令END三、匯編與調(diào)試1、機(jī)器匯編 2、手工匯編思 考 題課后反思課 題第3章 指令系統(tǒng)與匯編語(yǔ)言程序設(shè)計(jì)3.4 匯編語(yǔ)言程序設(shè)計(jì)舉例學(xué) 時(shí) 2學(xué)時(shí)授課類(lèi)型理論講授授課班級(jí)14工業(yè)教學(xué)目標(biāo)1知識(shí)目標(biāo)學(xué)會(huì)幾種典型的匯編語(yǔ)言程序設(shè)計(jì)方法;讀懂程序流程圖,掌握簡(jiǎn)單程序的編寫(xiě)。2能力目標(biāo)通過(guò)直觀教學(xué)和教師的具體講解,培養(yǎng)學(xué)生的邏輯思維

溫馨提示

  • 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)論