




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022-2-101第第3 3章章 80C5180C51的指令系統(tǒng)的指令系統(tǒng)指令格式指令格式及及常用符號(hào)常用符號(hào)3.180C51的的尋址方式尋址方式3.2數(shù)據(jù)傳送數(shù)據(jù)傳送指令指令 (29條)條)3.3算數(shù)運(yùn)算算數(shù)運(yùn)算指令指令 (24條)條)3.4邏輯運(yùn)算邏輯運(yùn)算與與循環(huán)循環(huán)類(lèi)指令(類(lèi)指令(24條)條)3.5控制轉(zhuǎn)移控制轉(zhuǎn)移類(lèi)指令類(lèi)指令 (17條條)3.6位操作位操作類(lèi)指令類(lèi)指令 (17條)條)3.72022-2-1023.1 指令格式及常用符號(hào)指令格式及常用符號(hào)3.1.1 3.1.1 機(jī)器指令的字節(jié)編碼形式機(jī)器指令的字節(jié)編碼形式v 8 8位編碼僅為操作碼位編碼僅為操作碼v 單字節(jié)指令(單字節(jié)指
2、令(4949條)條)機(jī)器指令機(jī)器指令:計(jì)算機(jī)能直接識(shí)別和執(zhí)行的指令。:計(jì)算機(jī)能直接識(shí)別和執(zhí)行的指令。 位號(hào)位號(hào)7 6 5 4 3 2 1 0字節(jié)字節(jié)opcode如:如:INC A INC A 編碼為:編碼為:0 0 0 0 0 1 0 0即:即:04H04Hv 8 8位編碼含操作碼和寄存器編碼位編碼含操作碼和寄存器編碼位號(hào)位號(hào)7 6 5 4 3 2 1 0 字節(jié)字節(jié)opcoder r r如:如:MOV AMOV A,R0 R0 編碼為編碼為:1 1 1 0 1 0 0 0即:即:E8HE8H2022-2-103v 雙字節(jié)指令(雙字節(jié)指令(4545條)條)位號(hào)位號(hào)7 6 5 4 3 2 1 0字
3、節(jié)字節(jié)opcodedata或或directv 三字節(jié)指令(三字節(jié)指令(1717條)條)位號(hào)位號(hào)7 6 5 4 3 2 1 0字節(jié)字節(jié)opcodedata或或directdata或或direct如:如:MOV AMOV A,#50H #50H 編碼為編碼為:0 1 1 1 0 1 0 00 1 0 1 0 0 0 0即:即:74H74H 50H 50H如:如:MOV 20HMOV 20H,#50H #50H 編碼為編碼為:0 1 1 1 0 1 0 10 1 0 0 0 0 0 00 1 0 1 0 0 0 0即:即:75H75H 20H 20H 50H 50H2022-2-104v 書(shū)寫(xiě)格式書(shū)
4、寫(xiě)格式v 注意:注意:v 操作助記符不能缺少操作助記符不能缺少v 操作數(shù)個(gè)數(shù)可為:操作數(shù)個(gè)數(shù)可為:1 1、2 2、3 3個(gè)個(gè)v 2 2個(gè)操作數(shù)的指令,目的操作數(shù)在左邊個(gè)操作數(shù)的指令,目的操作數(shù)在左邊v 一般格式一般格式操作助記符操作助記符 目的操作數(shù)目的操作數(shù),源操作數(shù),源操作數(shù);注釋?zhuān)蛔⑨?3.1.2 3.1.2 符號(hào)指令的書(shū)寫(xiě)格式符號(hào)指令的書(shū)寫(xiě)格式2022-2-105v 描述符號(hào)描述符號(hào)v RnRn(n=0n=07 7)- -當(dāng)前工作寄存器組中的寄存器當(dāng)前工作寄存器組中的寄存器R0R0R7R7之一之一v RiRi(i=0,1i=0,1)- -當(dāng)前工作寄存器組中的寄存器當(dāng)前工作寄存器組中的寄
5、存器R0R0或或R1R1v - -間址寄存器前綴間址寄存器前綴v #data -8#data -8位立即數(shù)位立即數(shù)/ /v #data16-16#data16-16位立即數(shù)位立即數(shù)v direct-direct-片內(nèi)低片內(nèi)低128128個(gè)個(gè)RAMRAM單元地址及單元地址及SFRSFR地址地址v addr11-11addr11-11位目的地址位目的地址v addr16-16addr16-16位目的地址位目的地址v rel-8rel-8位地址偏移量,范圍:位地址偏移量,范圍:128128127127v bit-bit-片內(nèi)片內(nèi)RAMRAM位地址、位地址、SFRSFR的位地址的位地址v ()-表示表
6、示 地址單元或寄存器中的內(nèi)容地址單元或寄存器中的內(nèi)容v / -/ -位操作數(shù)的取反操作前綴位操作數(shù)的取反操作前綴2022-2-1063.2.1 3.2.1 寄存器尋址寄存器尋址v 尋址方式:尋找尋址方式:尋找(源)操作數(shù)(源)操作數(shù)或或指令轉(zhuǎn)移地址指令轉(zhuǎn)移地址的方式的方式v 80C5180C51單片機(jī)有單片機(jī)有7 7種尋址方式種尋址方式3.2 80C51的尋址方式的尋址方式v 操作數(shù)在寄存器中操作數(shù)在寄存器中v 尋址空間:尋址空間:R0R0R7R7、A A、B(ABB(AB形式)形式)和和DPTRDPTR特點(diǎn):特點(diǎn):傳送和執(zhí)行速度快傳送和執(zhí)行速度快【例例】若(若(R0)=30H, 執(zhí)行MOV
7、A,R0后,(A)=30H 2022-2-1073.2.2 3.2.2 直接尋址直接尋址v 操作碼后字節(jié)存放的是操作數(shù)的地址操作碼后字節(jié)存放的是操作數(shù)的地址v 尋址空間:尋址空間:v 片內(nèi)片內(nèi)RAMRAM低低128128字節(jié)字節(jié)v SFRSFR(符號(hào)形式)(符號(hào)形式)另一類(lèi)直接尋另一類(lèi)直接尋址是轉(zhuǎn)移目標(biāo)地址是轉(zhuǎn)移目標(biāo)地址的尋址。如:址的尋址。如:LJMP ADDR16LJMP ADDR16【例例】若(若(50H50H)=3AH =3AH , 執(zhí)行MOV A,50H后,(A)=3AH 2022-2-1083.2.3 3.2.3 寄存器間接尋址寄存器間接尋址v 寄存器中的內(nèi)容是操作數(shù)的地址寄存器中
8、的內(nèi)容是操作數(shù)的地址v 尋址空間:尋址空間:v 片內(nèi)片內(nèi)RAMRAM( RiRi、SPSP)v 片外片外RAMRAM( RiRi、DPTRDPTR)v i=0,1i=0,1【例例】若(若(R0)=30H,(30H)=5AH 執(zhí)行MOV A,R0后,(A)=5AH 片內(nèi):片內(nèi):MOVMOV片外:片外:MOVXMOVX2022-2-1093.2.4 3.2.4 立即尋址立即尋址v 操作數(shù)在指令編碼中操作數(shù)在指令編碼中v 尋址空間:尋址空間:v ROMROM對(duì)于對(duì)于MOV DPTRMOV DPTR,#2100H#2100H指令,立即數(shù)高指令,立即數(shù)高8 8位位“21H”21H”裝入裝入DPH DPH
9、 【例例】執(zhí)行執(zhí)行MOV AMOV A,#50H #50H 結(jié)果:(結(jié)果:(A A)=50H =50H 2022-2-10103.2.5 3.2.5 變址尋址變址尋址v 操作數(shù)地址:基地址操作數(shù)地址:基地址+ +偏移量偏移量v 尋址空間:尋址空間:v ROMROM變址尋址變址尋址還用于跳轉(zhuǎn)指令,如還用于跳轉(zhuǎn)指令,如JMP A+DPTR JMP A+DPTR 【例例】(A A)0FH 0FH (DPTRDPTR)=2400H =2400H 執(zhí)行執(zhí)行MOV A,A+DPTR”MOV A,A+DPTR”后后結(jié)果:(結(jié)果:(A A)=88H =88H 2022-2-10113.2.6 3.2.6 相對(duì)
10、尋址相對(duì)尋址v 用于跳轉(zhuǎn)指令,實(shí)現(xiàn)程序分支用于跳轉(zhuǎn)指令,實(shí)現(xiàn)程序分支RelRel常用符號(hào)地址表示,離源地址不要超過(guò)(常用符號(hào)地址表示,離源地址不要超過(guò)(128128127 127 ) 【例例】若若rel為75H,PSW.7為1,JC rel存于1000H開(kāi)始的單元。 執(zhí)行JC rel指令后,程序?qū)⑻D(zhuǎn)到1077H單元取指令并執(zhí)行。 2022-2-10123.2.7 3.2.7 位尋址位尋址v 尋址位數(shù)據(jù)尋址位數(shù)據(jù)v 尋址空間尋址空間v片內(nèi)片內(nèi)RAMRAM位空間位空間vSFRSFR位空間位空間【例例】位地址位地址00H00H內(nèi)容為內(nèi)容為1 1,MOV CMOV C,00H00H執(zhí)行后,位地址執(zhí)行
11、后,位地址PSW.7PSW.7的內(nèi)容為的內(nèi)容為1 1。位尋址方式實(shí)位尋址方式實(shí)質(zhì)屬于質(zhì)屬于位的直位的直接尋址接尋址。 2022-2-10133.3 數(shù)據(jù)傳送類(lèi)指令(數(shù)據(jù)傳送類(lèi)指令(29條)條)v一般不影響標(biāo)志寄存器一般不影響標(biāo)志寄存器PSWPSW的狀態(tài)。的狀態(tài)。v 傳送類(lèi)指令有兩大類(lèi)傳送類(lèi)指令有兩大類(lèi)v 一般傳送(一般傳送( MOVMOV )v 特殊傳送,如:特殊傳送,如:v MOVC MOVCv MOVX MOVXv PUSH PUSH、POPPOPv XCH XCH、XCHDXCHDv SWAP SWAP 2022-2-10143.3.1 3.3.1 一般傳送指令一般傳送指令v1616位傳
12、送(僅位傳送(僅1 1條)條)MOV DPTR,#data16; DPTR data16例:執(zhí)行指令例:執(zhí)行指令 MOV DPTRMOV DPTR,#1234H #1234H 后后 (DPHDPH)=12H=12H,(,(DPLDPL)=34H=34H。v8 8位傳送位傳送通用格式:通用格式: MOV MOV , ; 2022-2-1015v 以以A A為目的為目的dataA data#RiA RidirectA direct RnA Rn A MOV;)(;)(;)(;,【例例3-93-9】若若(R1)= 20H,(20H)= 55H。執(zhí)行指令 MOV A,R1 后,(A)= 55H。202
13、2-2-1016v 以以RnRn為目的為目的dataRn data#directRn direct A)Rn A Rn MOV;)(;(;,【例3-10】執(zhí)行指令 MOV R6,#50H 后,(R6)= 50H 2022-2-1017v 以以directdirect為目的為目的datadirect data# Ri direct Ridirect1direct direct1 )Rndirect Rn )Adirect A direct MOV;)(;)(;(;(;,【例3-11】若(R1)=50H,(50H)=18H,執(zhí)行指令 MOV 40H,R1 后,(40H)=18H 2022-2-10
14、18v 以以 RiRi為目的為目的dataRi data#directRi direct )ARi A Ri MOV);()();();(,【例3-12】若(R1)=30H,(A)=20H,執(zhí)行指令 MOV R1,A 后,(30H)=20H。 2022-2-10193.3.2 3.3.2 特殊傳送指令特殊傳送指令v 以以DPTRDPTR內(nèi)容為基址內(nèi)容為基址v讀讀ROMROM中常數(shù)表項(xiàng)指令中常數(shù)表項(xiàng)指令MOVCMOVCROMROM中可以存放程序中可以存放程序代碼代碼,還經(jīng)常存放,還經(jīng)常存放常數(shù)表常數(shù)表 MOVC AMOVC A,A+DPTRA+DPTR;A A (A A)+ +(DPTRDPTR
15、)v 以以PCPC內(nèi)容為基址內(nèi)容為基址MOVC AMOVC A,A+PC A+PC ;A A (A A)+ +(PCPC)常數(shù)表存放約束小,稱(chēng)為常數(shù)表存放約束小,稱(chēng)為遠(yuǎn)遠(yuǎn)程查表指令。程查表指令。占用占用DPTRDPTR 常數(shù)表存放約束大,稱(chēng)為常數(shù)表存放約束大,稱(chēng)為近近程查表指令。程查表指令。不占用不占用DPTRDPTR 2022-2-1020v 讀讀片外片外RAMRAMv讀片外讀片外RAMRAM及接口單元數(shù)據(jù)的指令及接口單元數(shù)據(jù)的指令MOVXMOVX片外片外RAMRAM中經(jīng)常存放數(shù)據(jù)采集與處理的中間數(shù)據(jù)中經(jīng)常存放數(shù)據(jù)采集與處理的中間數(shù)據(jù) MOVX AMOVX A,DPTR DPTR ;A A
16、(DPTRDPTR)MOVX AMOVX A,Ri Ri ;A A (RiRi)v 寫(xiě)寫(xiě)片外片外RAMRAMMOVX DPTRMOVX DPTR,A A ;(;(DPTRDPTR)AAMOVX RiMOVX Ri,A A ;(;(RiRi)AA注意:用注意:用RiRi尋址時(shí),尋址時(shí),高高8 8位地址位地址由由P2P2口提供口提供 2022-2-1021v 入入棧指令棧指令PUSHPUSHv堆棧操作指令堆棧操作指令PUSHPUSH和和POPPOP堆棧堆棧是一片存儲(chǔ)區(qū),遵循是一片存儲(chǔ)區(qū),遵循“后進(jìn)先出后進(jìn)先出”原則,棧頂由原則,棧頂由SPSP指示。指示。80C5180C51的堆棧的堆棧設(shè)在設(shè)在片內(nèi)
17、片內(nèi)RAMRAM低端的低端的128128個(gè)單元,向個(gè)單元,向上上生長(zhǎng)。生長(zhǎng)。 PUSH direct PUSH direct ;SPSP(SPSP)1 1,(,(SPSP)(directdirect)v 出出棧指令棧指令POPPOPPOP direct POP direct ;(;(directdirect)(SPSP),),SP SP (SPSP)1 1 注:堆棧用于子程序調(diào)用時(shí)注:堆棧用于子程序調(diào)用時(shí)保護(hù)返回地址保護(hù)返回地址,或者用于保護(hù),或者用于保護(hù)子程序調(diào)子程序調(diào)用之前的某些重要數(shù)據(jù)用之前的某些重要數(shù)據(jù)(即保護(hù)現(xiàn)場(chǎng)),還可以用于(即保護(hù)現(xiàn)場(chǎng)),還可以用于數(shù)據(jù)交換數(shù)據(jù)交換。 2022-2
18、-1022利用堆棧完成40H與50H單元內(nèi)容的交換的示例 vMOV SP,#6FH;將堆棧設(shè)在70H以上RAM空間vPUSH 40H ;將40H單元的“23H”入棧,之后(SP)=70H vPUSH 50H ;將50H單元的“45H”入棧,之后(SP)=71HvPOP 40H ;將SP指向的71H單元的內(nèi)容彈到40H單元,之后(SP)=70HvPOP 50H ;將SP指向的70H單元的內(nèi)容彈到50H單元,之后(SP)=6FH(a)初始狀態(tài) (b)2條PUSH指令執(zhí)行后 (c)2條POP指令執(zhí)行后2022-2-1023v 字節(jié)字節(jié)交換指令交換指令XCHXCHv數(shù)據(jù)交換指令數(shù)據(jù)交換指令XCHXCH
19、、XCHDXCHD和和SWAPSWAP數(shù)據(jù)交換屬于同時(shí)進(jìn)行的雙向傳送數(shù)據(jù)交換屬于同時(shí)進(jìn)行的雙向傳送 )(;)(;)(;,RiA RidirectA direct RnA Rn A XCH【例例3-203-20】若(若(R0)=80H,(A)=20H。 執(zhí)行指令 XCH A,R0 后,(A)=80H,(R0)=20H。 2022-2-1024v 半字節(jié)半字節(jié)交換指令交換指令XCHDXCHD【例例3-213-21】若(若(R0R0)30H30H,(,(30H30H)67H67H, (A A)20H20H。執(zhí)行指令。執(zhí)行指令 XCHD AXCHD A,R0 R0 指令后,(指令后,(A A)27H2
20、7H,(,(30H30H)60H60H。 )();()()();(,ACC.0ACC.3ACC.4ACC.7 A SWAPACC.0ACC.30 .Ri3 .Ri Ri A XCHDXCHDXCHD是間址操作數(shù)的低半字節(jié)與是間址操作數(shù)的低半字節(jié)與A A的低半字節(jié)互換。的低半字節(jié)互換。SWAPSWAP是累加器的高低是累加器的高低4 4位互換位互換【例例3-223-22】若(若(A A)30H30H,執(zhí)行指令,執(zhí)行指令SWAP ASWAP A后,(后,(A A)03H 03H 。 2022-2-10253.4 算數(shù)運(yùn)算類(lèi)指令(算數(shù)運(yùn)算類(lèi)指令(24條)條)v 算數(shù)算數(shù)運(yùn)算結(jié)果運(yùn)算結(jié)果要要影響影響PS
21、WPSW中標(biāo)志位中標(biāo)志位v CYCY為為1 1,無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)(字節(jié))加減發(fā)生(字節(jié))加減發(fā)生進(jìn)位進(jìn)位或或借位借位v OV OV為為1 1,有符號(hào)數(shù)有符號(hào)數(shù)(字節(jié))加減發(fā)生(字節(jié))加減發(fā)生溢出溢出錯(cuò)誤錯(cuò)誤v ACAC為為1 1,十進(jìn)制數(shù)十進(jìn)制數(shù)(BCDBCD碼)加法的結(jié)果應(yīng)碼)加法的結(jié)果應(yīng)調(diào)整調(diào)整v P P為為1 1,存于累加器,存于累加器A A中操作結(jié)果的中操作結(jié)果的“1”1”的個(gè)數(shù)的個(gè)數(shù)為為奇數(shù)奇數(shù) v 標(biāo)志位意義標(biāo)志位意義v 標(biāo)志位與相關(guān)指令影響標(biāo)志位與相關(guān)指令影響 指令指令標(biāo)志標(biāo)志ADD、ADDC、SUBBDAMULDIV CYCY0 00 0ACACOVOVP P2022-2-10
22、26v 算數(shù)運(yùn)算影響標(biāo)志位示例算數(shù)運(yùn)算影響標(biāo)志位示例【例例3-233-23】有有2 2個(gè)參與相加的機(jī)器數(shù),一個(gè)是個(gè)參與相加的機(jī)器數(shù),一個(gè)是84H84H,另一個(gè)是,另一個(gè)是8DH8DH。試分析運(yùn)算過(guò)程及其對(duì)狀態(tài)標(biāo)志的影響。試分析運(yùn)算過(guò)程及其對(duì)狀態(tài)標(biāo)志的影響。結(jié)果結(jié)果:CYCY為為1 1;ACAC為為1 1 ;OVOV為為1 1 ;P P為為0 0 2022-2-10273.4.1 3.4.1 加法加法v 不帶進(jìn)位加法不帶進(jìn)位加法dataAA data#RiAA RidirectAA direct RnAA Rn A ADD)(;)()(;)()(;)()(;,【例例3-243-24】若有若有2
23、2個(gè)個(gè)無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)存于累加器存于累加器A A和和RAMRAM的的30H30H單元,即(單元,即(A A)=84H=84H,(,(30H30H)=8DH=8DH,試分析執(zhí)行指令,試分析執(zhí)行指令 ADD AADD A,30H30H 后的結(jié)果。后的結(jié)果。由于對(duì)無(wú)符號(hào)數(shù)相加,要考察由于對(duì)無(wú)符號(hào)數(shù)相加,要考察CYCY。由上頁(yè)圖可知,。由上頁(yè)圖可知,CY=1CY=1,因此知道,因此知道運(yùn)算的結(jié)果發(fā)生了進(jìn)位,即實(shí)際值應(yīng)該是運(yùn)算的結(jié)果發(fā)生了進(jìn)位,即實(shí)際值應(yīng)該是100H100H+ +11H11H。所以,編程者所以,編程者應(yīng)確保應(yīng)確保單字節(jié)無(wú)符號(hào)數(shù)單字節(jié)無(wú)符號(hào)數(shù)運(yùn)算結(jié)果運(yùn)算結(jié)果不要超過(guò)不要超過(guò)255255 2
24、022-2-1028【例例3-253-25】若有若有2 2個(gè)個(gè)有符號(hào)數(shù)有符號(hào)數(shù)存于累加器存于累加器A A和和RAMRAM的的30H30H單元,單元,即(即(A A)=84H=84H,(,(30H30H)=8DH=8DH,試分析執(zhí)行指令,試分析執(zhí)行指令 ADD AADD A,30H 30H 后的結(jié)果。后的結(jié)果。 有符號(hào)數(shù)相加,有符號(hào)數(shù)相加,只需考察溢出標(biāo)志只需考察溢出標(biāo)志OVOV即可。由上圖可見(jiàn)即可。由上圖可見(jiàn)OV=1OV=1,因此可知運(yùn)算的結(jié)果發(fā)生了溢出,這說(shuō)明累加器,因此可知運(yùn)算的結(jié)果發(fā)生了溢出,這說(shuō)明累加器A A中的結(jié)果已經(jīng)不是正確的值了。中的結(jié)果已經(jīng)不是正確的值了。 編程者應(yīng)確保單字節(jié)有
25、符號(hào)數(shù)運(yùn)算結(jié)果不超過(guò)編程者應(yīng)確保單字節(jié)有符號(hào)數(shù)運(yùn)算結(jié)果不超過(guò)-128-128 127127。否則,就要將數(shù)據(jù)用多字節(jié)表示或在程序運(yùn)行中對(duì)狀態(tài)標(biāo)否則,就要將數(shù)據(jù)用多字節(jié)表示或在程序運(yùn)行中對(duì)狀態(tài)標(biāo)志進(jìn)行判斷:志進(jìn)行判斷: 無(wú)符號(hào)數(shù)用無(wú)符號(hào)數(shù)用JNCJNC或或JCJC,有符號(hào)數(shù)要用,有符號(hào)數(shù)要用JNBJNB或或JBJB。 2022-2-1029v 帶進(jìn)位加法(這組指令方便了多字節(jié)加法的實(shí)現(xiàn))帶進(jìn)位加法(這組指令方便了多字節(jié)加法的實(shí)現(xiàn)) )()(;)()()(;)()()(;)()()(;,CYdataAA data#CYRiAA RiCYdirectAA direct CYRnAA Rn A ADD
26、Cv 加加1 11DPTRDPTR DPTR1RiRi Ri1directdirect direct 1RnRn Rn 1AA A INC)(;)();()(;)(;)(;2022-2-1030v 十進(jìn)制調(diào)整十進(jìn)制調(diào)整DA A DA A ;調(diào)整;調(diào)整A A的內(nèi)容為正確的的內(nèi)容為正確的BCDBCD碼碼 兩個(gè)壓縮的兩個(gè)壓縮的BCDBCD碼按二進(jìn)制相加后,必須經(jīng)過(guò)調(diào)整方能碼按二進(jìn)制相加后,必須經(jīng)過(guò)調(diào)整方能得到正確的和。得到正確的和。 當(dāng)當(dāng)A A中低中低4 4位出現(xiàn)了非位出現(xiàn)了非BCDBCD碼(碼(10101010 11111111)或低)或低4 4位的位的進(jìn)位進(jìn)位AC=1AC=1,則應(yīng)在低,則應(yīng)在低
27、4 4位加位加6 6調(diào)整。調(diào)整。 當(dāng)當(dāng)A A中高中高4 4位出現(xiàn)了非位出現(xiàn)了非BCDBCD碼(碼(10101010 11111111)或高)或高4 4位的位的進(jìn)位進(jìn)位CY=1CY=1,則應(yīng)在高,則應(yīng)在高4 4位加位加6 6調(diào)整。調(diào)整。 執(zhí)行十進(jìn)制調(diào)整指令后,執(zhí)行十進(jìn)制調(diào)整指令后,PSWPSW中的中的CYCY表示結(jié)果的百位值表示結(jié)果的百位值 2022-2-1031【例例3-243-24】若(若(A A)0110 1001B0110 1001B,表示的,表示的BCDBCD碼為碼為 BCD69)(R2R2)0101 1000B0101 1000B,表示的,表示的BCDBCD碼為碼為 BCD58)(,
28、執(zhí)行指令:,執(zhí)行指令: ADD A,R2DA A(A A)0010 0111B0010 0111B,即,即 BCD27)(且(且(CYCY)1 1,即正確的結(jié)果為:,即正確的結(jié)果為:127127 2022-2-10323.4.2 3.4.2 減法減法v 帶借位減法帶借位減法)()(;)()()(;)()()(;)()()(;,CYdataAA data#CYRiAA RiCYdirectAA direct CYRnAA Rn A SUBB用此組指令完成不帶借位的減法,只需先清用此組指令完成不帶借位的減法,只需先清CYCY為為0 0即可即可 CYCY為為1 1,表示,表示D7D7位需借位位需借位
29、 ACAC為為1 1,表示,表示D3D3位需借位位需借位 OV OV為為1 1,表示,表示“D6D6有借位有借位D7D7無(wú)借位無(wú)借位”或或“D7D7有借位有借位D6D6無(wú)借無(wú)借位位”2022-2-1033【例例3-253-25】若(若(A A)=C9H=C9H,(,(R2R2)=54H=54H,(,(CYCY)=1=1,試分析,試分析指令指令SUBB ASUBB A,R2R2執(zhí)行后,累加器的內(nèi)容及狀態(tài)標(biāo)志。執(zhí)行后,累加器的內(nèi)容及狀態(tài)標(biāo)志。 (A):): 1 1 0 0 1 0 0 1(201) (CY):): 1(1)1 1 0 0 1 0 0 0(R2):): 0 1 0 1 0 1 0 0
30、(84)結(jié)果:結(jié)果: 0 1 1 1 0 1 0 0(116)即即: :(A A)= =74H74H, ,(CYCY)=0,=0,(ACAC)=0,=0,(OVOV)=1,=1,(P P)=0=0。分析:分析:數(shù)據(jù)為無(wú)符號(hào)類(lèi)型。該指令執(zhí)行前數(shù)據(jù)為無(wú)符號(hào)類(lèi)型。該指令執(zhí)行前CY=1CY=1,說(shuō)明此指令不是運(yùn)算,說(shuō)明此指令不是運(yùn)算的最低字節(jié),即在此指令執(zhí)行之前,一定執(zhí)行過(guò)低字節(jié)的減法并產(chǎn)生的最低字節(jié),即在此指令執(zhí)行之前,一定執(zhí)行過(guò)低字節(jié)的減法并產(chǎn)生了借位。因此,本次相減(了借位。因此,本次相減(201-1-84=116=74H201-1-84=116=74H)結(jié)果為)結(jié)果為74H74H。2022-2
31、-1034v 減減1 11RiRi Ri1directdirect direct 1RnRn Rn 1AA A DEC)();()(;)(;)(;這組指令僅這組指令僅 DEC ADEC A 影響影響P P標(biāo)志。其余指令都不影響標(biāo)志位的狀態(tài)。標(biāo)志。其余指令都不影響標(biāo)志位的狀態(tài)。2022-2-10353.4.3 3.4.3 乘法乘法僅有一條乘法指令僅有一條乘法指令 MUL AB MUL AB ;A A與與B B相乘相乘 無(wú)符號(hào)無(wú)符號(hào) 結(jié)果:結(jié)果:B B中為積的中為積的高高8 8位位,A A中為積的中為積的低低8 8位位。 CYCY總是被清總是被清0 0;OV=1OV=1表示積大于表示積大于FFHF
32、FH 3.4.4 3.4.4 除法除法僅有一條除法指令僅有一條除法指令 DIV AB DIV AB ;A A除以除以B B 無(wú)符號(hào)無(wú)符號(hào) 結(jié)果:結(jié)果:A A中為商的中為商的整數(shù)整數(shù)部分,部分,B B中為中為余數(shù)余數(shù) CYCY總是被清總是被清0 0;OV=1OV=1表示除數(shù)為表示除數(shù)為0 0 2022-2-10363.5 邏輯運(yùn)算與循環(huán)類(lèi)指令(邏輯運(yùn)算與循環(huán)類(lèi)指令(24條)條)3.5.1 3.5.1 邏輯與邏輯與 邏輯:與、或、異或、清邏輯:與、或、異或、清0 0和取反和取反 循環(huán):左、右移,帶進(jìn)位位左、右移循環(huán):左、右移,帶進(jìn)位位左、右移datadirect(direct) data#Adir
33、ect(direct) A direct ANL)(;)()(;,dataAA data#RiAA RidirectAA direct RnAA Rn A ANL)(;)()(;)()(;)()(;,【例例】(A A)=C3H=C3H,(,(R0R0)=AAH=AAH,執(zhí)行指令,執(zhí)行指令 ANL AANL A,R0R0 后,(后,(A A)=82H =82H 與與操作常用于對(duì)某些操作常用于對(duì)某些不關(guān)心位不關(guān)心位進(jìn)行進(jìn)行“清清0 0”,”,同時(shí)同時(shí)“保留保留”另一些關(guān)心位另一些關(guān)心位 2022-2-10373.5.2 3.5.2 邏輯或邏輯或datadirectA data#RndirectA
34、A direct ORL)(;)()(;,dataAA data#RiAA RidirectAA direct RnAA Rn A ORL)(;)()(;)()(;)()(;,【例例】(A A)=C3H=C3H,(,(R0R0)=55H=55H,執(zhí)行指令,執(zhí)行指令 ORL AORL A,R0R0 后,(后,(A A)=D7H =D7H 或或操作常用于對(duì)某些操作常用于對(duì)某些關(guān)心位關(guān)心位進(jìn)行進(jìn)行“置置1 1”,”,不關(guān)心位保持不變不關(guān)心位保持不變 2022-2-10383.5.3 3.5.3 邏輯異或邏輯異或datadirectA data#RndirectA A direct XRL)(;)()
35、(;,dataAA data#RiAA RidirectAA direct RnAA Rn A XRL)(;)()(;)()(;)()(;,【例例】(A A)=C3H=C3H,(,(R0R0)=AAH=AAH,執(zhí)行指令,執(zhí)行指令 XRL AXRL A,R0R0 后,(后,(A A)=69H =69H 異或異或操作常用于對(duì)某些操作常用于對(duì)某些關(guān)心位關(guān)心位進(jìn)行進(jìn)行“取反取反”,”,不關(guān)心位保持不變不關(guān)心位保持不變 2022-2-10393.5.4 3.5.4 邏輯清邏輯清0 0和取反和取反A0A;A;A CPLCLR;A RLCRLRRCRR3.5.5 3.5.5 累加器循環(huán)移位累加器循環(huán)移位20
36、22-2-10403.6 控制轉(zhuǎn)移類(lèi)指令(控制轉(zhuǎn)移類(lèi)指令(17條)條)3.6.1 3.6.1 無(wú)條件轉(zhuǎn)移無(wú)條件轉(zhuǎn)移v 短跳轉(zhuǎn)短跳轉(zhuǎn)AJMP addr11 AJMP addr11 ;PC PC (PCPC)+ 2+ 2,PC10PC10 0 addr11 0 addr11 2022-2-1041v 長(zhǎng)跳轉(zhuǎn)長(zhǎng)跳轉(zhuǎn)LJMP addr16 LJMP addr16 ;PC addr16 PC addr16 v 相對(duì)轉(zhuǎn)移相對(duì)轉(zhuǎn)移SJMP rel SJMP rel ;PC PC (PCPC)+ 2+ 2,PC PC (PCPC)+ rel + rel 目標(biāo)地址目標(biāo)地址relrel 對(duì)應(yīng)范圍為對(duì)應(yīng)范圍為 12
37、7 127 128128。 2022-2-1042【例例】若若“NEWADD”NEWADD”為地址為地址1022H1022H,PCPC的當(dāng)前值為的當(dāng)前值為1000H1000H。執(zhí)行。執(zhí)行指令指令 SJMP NEWADD SJMP NEWADD 后,程序?qū)⑥D(zhuǎn)向后,程序?qū)⑥D(zhuǎn)向1022H1022H處執(zhí)行(處執(zhí)行(rel=20H= rel=20H= 1022H1022H1000H1000H2 2)。解析如下:)。解析如下:2022-2-1043v 散轉(zhuǎn)移散轉(zhuǎn)移JMP A+DPTRJMP A+DPTR;PC PC (PCPC)+ 1+ 1,PC PC (A A)+ +(DPTRDPTR) 可完成多條判跳
38、指令的功能可完成多條判跳指令的功能 【例例】功能:當(dāng)(功能:當(dāng)(A A)=00H=00H時(shí),時(shí),程序?qū)⑥D(zhuǎn)到程序?qū)⑥D(zhuǎn)到 ROUT0ROUT0處執(zhí)行;當(dāng)處執(zhí)行;當(dāng)(A A)=02H=02H時(shí),程序?qū)⑥D(zhuǎn)到時(shí),程序?qū)⑥D(zhuǎn)到 ROUT1ROUT1處執(zhí)行;處執(zhí)行;。 MOV DPTR,#TABLEMOV DPTR,#TABLE JMP A+DPTR JMP A+DPTRTABLE:AJMP ROUT0TABLE:AJMP ROUT0 AJMP ROUT1 AJMP ROUT1 AJMP ROUT2 AJMP ROUT2 AJMP ROUT3 AJMP ROUT32022-2-10443.6.2 3.6.2
39、條件轉(zhuǎn)移條件轉(zhuǎn)移v 累加器判累加器判0 0轉(zhuǎn)移轉(zhuǎn)移 relPC)(PC0A)(relPC)(PC0A)( rel JNZJZ,則;若,則;若v 比較不等轉(zhuǎn)移比較不等轉(zhuǎn)移 rel3PC)(PCdata )(Ri( rel3PC)(PCdata )Rn( rel3PC)(PCdata )A(reldata,#RiRnA CJNZ rel3PC)(PC(direct) )A( relderectA CJNE,則;若,則;若,則;若,則;若,2022-2-1045v 減減1 1不為不為0 0轉(zhuǎn)移轉(zhuǎn)移 0 )Rn(rel,PC)(PC0 )Rn( 1-(Rn)Rn2,PC)(PC relRn DJNZ下
40、執(zhí)行,則結(jié)束循環(huán),程序往;若繼續(xù)循環(huán),則;若;, 0 )direct(rel,PC)(PC0 )direct( 1-(direct)direct3,PC)(PC reldirect DJNZ下執(zhí)行,則結(jié)束循環(huán),程序往;若繼續(xù)循環(huán),則;若;,2022-2-1046【例例】有一段程序如下,該程序執(zhí)行后,有一段程序如下,該程序執(zhí)行后,(A A)=10+9+8+7+6+5+4+3+2+1=37H =10+9+8+7+6+5+4+3+2+1=37H MOV 23H,#0AH CLR ALOOPX:ADD A,23H DJNZ 23H,LOOPX SJMP $2022-2-10473.6.3 3.6.3
41、調(diào)用與返回調(diào)用與返回v 調(diào)用調(diào)用 11addrPC),PC(SP)1,(SP)SP )PC(SP)1,(SP)SP2,PC)(PC addr11 ACALL01081507; 16addrPC),PC(SP)1,(SP)SP )PC(SP)1,(SP)SP3,PC)(PC addr16 ACALL81507; 指令執(zhí)行時(shí)將返回地址入棧指令執(zhí)行時(shí)將返回地址入棧 SPSP應(yīng)設(shè)為合適值(默認(rèn)值應(yīng)設(shè)為合適值(默認(rèn)值07H07H) 2022-2-1048【例例3 3】若(若(SPSP)=07H=07H,標(biāo)號(hào),標(biāo)號(hào)“XADD”XADD”表示表示的實(shí)際地址為的實(shí)際地址為0345H0345H,PCPC的當(dāng)前值為的當(dāng)前值為0123H0123H。 執(zhí)行指令執(zhí)行指令 ACALL XADDACALL XADD 后后: : 返回地址為:(返回地址為:(PCPC)+2=+2=0125H0125H。其低。其低8 8位的位的25H25H壓入堆棧的壓入堆棧的08H08H單元,其高單元,其高8 8位的位的01H01H壓入壓入堆棧的堆棧的09H09H單元單元(低地址對(duì)應(yīng)于低字節(jié))(低地址對(duì)應(yīng)于低字節(jié))。(PCPC)=0345H=0345H,程序轉(zhuǎn)向目標(biāo)地址,程序轉(zhuǎn)向目標(biāo)地址0345H 0345H 處處執(zhí)行。執(zhí)行。2022-2-10
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 16179:2025 EN Footwear - Critical substances potentially present in footwear and footwear components - Determination of organotin compounds in footwear materials
- 湖南文理學(xué)院芙蓉學(xué)院《建筑材料學(xué)B》2023-2024學(xué)年第二學(xué)期期末試卷
- 中國(guó)計(jì)量大學(xué)《地方教學(xué)名師課堂》2023-2024學(xué)年第二學(xué)期期末試卷
- 撫順職業(yè)技術(shù)學(xué)院《感覺(jué)統(tǒng)合訓(xùn)練》2023-2024學(xué)年第一學(xué)期期末試卷
- 河南醫(yī)學(xué)高等專(zhuān)科學(xué)校《廣告理論與實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 古代描寫(xiě)英雄的詩(shī)句
- 公共交通車(chē)輛更新淘汰制度
- 第3課 “開(kāi)元盛世”教案2024-2025學(xué)年七年級(jí)歷史下冊(cè)新課標(biāo)
- 煙道伸縮節(jié)施工方案
- 2025年醫(yī)藥產(chǎn)業(yè)布局洞察:數(shù)據(jù)解析A股市場(chǎng)走勢(shì)與板塊表現(xiàn)
- 《慢性阻塞性肺病的》課件
- 2023年沈陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握袛?shù)學(xué)模擬試題附答案解析
- 《企業(yè)經(jīng)營(yíng)統(tǒng)計(jì)學(xué)》課程教學(xué)大綱
- 六年級(jí)下冊(cè)道德與法治課件第一單元第三課
- 房地產(chǎn)合約規(guī)劃分類(lèi)明細(xì)
- 八年級(jí)物理(上冊(cè))知識(shí)點(diǎn)整理 (2)
- 高中物理萬(wàn)有引力定律知識(shí)點(diǎn)總結(jié)與典型例題
- 吊裝平臺(tái)施工方案
- 歐姆定律-中考復(fù)習(xí)課件
- 中學(xué)語(yǔ)文課程標(biāo)準(zhǔn)研究最新試題及答
- 如何激發(fā)學(xué)生學(xué)習(xí)物理的興趣PPT課件
評(píng)論
0/150
提交評(píng)論