![第3章80C51的指令系統(tǒng)1_第1頁](http://file4.renrendoc.com/view/98d0b709a11a3fa81a88dc9bd8dc449d/98d0b709a11a3fa81a88dc9bd8dc449d1.gif)
![第3章80C51的指令系統(tǒng)1_第2頁](http://file4.renrendoc.com/view/98d0b709a11a3fa81a88dc9bd8dc449d/98d0b709a11a3fa81a88dc9bd8dc449d2.gif)
![第3章80C51的指令系統(tǒng)1_第3頁](http://file4.renrendoc.com/view/98d0b709a11a3fa81a88dc9bd8dc449d/98d0b709a11a3fa81a88dc9bd8dc449d3.gif)
![第3章80C51的指令系統(tǒng)1_第4頁](http://file4.renrendoc.com/view/98d0b709a11a3fa81a88dc9bd8dc449d/98d0b709a11a3fa81a88dc9bd8dc449d4.gif)
![第3章80C51的指令系統(tǒng)1_第5頁](http://file4.renrendoc.com/view/98d0b709a11a3fa81a88dc9bd8dc449d/98d0b709a11a3fa81a88dc9bd8dc449d5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第3章80C51的指令系統(tǒng)指令格式及常用符號(hào)3.180C51的尋址方式3.2數(shù)據(jù)傳送指令(29條)3.3算數(shù)運(yùn)算指令(24條)3.4邏輯運(yùn)算與循環(huán)類指令(24條)3.5控制轉(zhuǎn)移類指令(17條)3.6位操作類指令(17條)3.72023/2/61●一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部的指令集合指令系統(tǒng)概述指令是計(jì)算機(jī)中具有特定功能的操作命令●程序與程序設(shè)計(jì)按預(yù)定要求編排的指令序列稱為程序。編排的過程稱為程序設(shè)計(jì)●指令系統(tǒng)設(shè)計(jì)一種CPU,一般從設(shè)計(jì)指令系統(tǒng)開始因而,一種機(jī)器的指令系統(tǒng)是機(jī)器本身固有的決定了機(jī)器的性能用戶無法改變,必須繼承、學(xué)習(xí)、掌握、應(yīng)用2023/2/62機(jī)器語言:二進(jìn)制代碼,是機(jī)器唯一能直接識(shí)別、執(zhí)行的語言。匯編語言:為了記憶和閱讀方便,制造商對(duì)指令系統(tǒng)每一條指令,都給出了指令助記符。用助記符,操作數(shù),標(biāo)號(hào)編寫的程序稱為匯編語言源程序。一、匯編語言匯編語言必須翻譯成機(jī)器語言才能被機(jī)器執(zhí)行●程序設(shè)計(jì)語言匯編語言:高級(jí)語言:符號(hào)語言:上頁下頁回目錄如P55,圖3-1所示。全是機(jī)器碼2023/2/63完成由匯編語言到機(jī)器代碼的過程叫匯編匯編的方法有兩種:自動(dòng)匯編、手工匯編由機(jī)器代碼到匯編語言的過程叫反匯編匯編語言源程序機(jī)器語言匯編反匯編交叉匯編2023/2/643.1指令格式及常用符號(hào)3.1.1機(jī)器指令的字節(jié)編碼形式
8位編碼僅為操作碼
單字節(jié)指令(49條)機(jī)器指令:計(jì)算機(jī)能直接識(shí)別和執(zhí)行的指令。
位號(hào)76543210字節(jié)opcode如:INCA編碼為:00000100即:04H
8位編碼含操作碼和寄存器編碼位號(hào)76543210字節(jié)opcoderrr如:MOVA,R0編碼為:11101000即:E8H操作數(shù)僅有A,AB,Rn,DPTR,C2023/2/65雙字節(jié)指令(45條)位號(hào)76543210字節(jié)opcodedata或direct三字節(jié)指令(17條)位號(hào)76543210字節(jié)opcodedata或directdata或direct如:MOVA,#50H編碼為:0111010001010000即:74H50H如:MOV20H,#50H編碼為:011101010100000001010000即:75H20H50H僅含有一個(gè)data8,direct,rel,address112023/2/66書寫格式注意:操作助記符不能缺少操作數(shù)個(gè)數(shù)可為:1、2、3個(gè)2個(gè)操作數(shù)的指令,目的操作數(shù)在左邊標(biāo)號(hào)表示符號(hào)地址一般格式[標(biāo)號(hào)]:操作助記符[目的操作數(shù)][,源操作數(shù)][;注釋]3.1.2符號(hào)指令的書寫格式2023/2/6775H81HROM60HMAIN:MOVSP,#60H;設(shè)置堆棧指針0030H0031H0032H0033H02H00H30H0000H……LJMPMAINORG0030HORG0000H2023/2/68描述符號(hào)Rn(n=0~7)-當(dāng)前工作寄存器組中的寄存器R0~R7之一Ri(i=0,1)-當(dāng)前工作寄存器組中的寄存器R0或R1@----------間址寄存器前綴#data------8位立即數(shù)/#data16-----16位立即數(shù)direct------片內(nèi)低128個(gè)RAM單元地址及SFR地址addr11------11位目的地址addr16------16位目的地址rel---------8位地址偏移量,范圍:-128~+127bit---------片內(nèi)RAM位地址、SFR的位地址(×)------表示×地址單元或寄存器中的內(nèi)容/----------位操作數(shù)的取反操作前綴2023/2/69我的信在他那!找信去!②①注:找信是尋找信的“地址”!你能說出第二封信的“地址”嗎?2023/2/610用何種方式尋找指令的操作數(shù)或指令的執(zhí)行地址1、立即尋址尋址空間:指令形式:操作碼立即數(shù)程序存儲(chǔ)器指令的操作數(shù)存放在程序存儲(chǔ)器中操作數(shù)緊跟操作碼后面立即尋址:在哪里?用何種方式尋找OP#dataImmediateAddressing上頁下頁回目錄指令的尋址方式:指令的尋址方式:80C51的尋址方式3.22023/2/611MOVA,#30H;A#30H例1:操作碼立即數(shù)PCPCPC74H30HROM××A30HMOVDPTR,#8000H;DPTR#8000H例2:操作碼PCPCPC立即數(shù)的高8位立即數(shù)的低8位DPHDPLPC80H00H90H80HROM00H上頁下頁回目錄2023/2/6122、直接尋址尋址空間:指令的三種形式:操作碼操作數(shù)地址在指令中直接給出操作數(shù)的真實(shí)地址操作碼后面緊跟一個(gè)實(shí)際操作數(shù)地址操作碼操作數(shù)地址立即數(shù)操作碼源操作數(shù)地址目的操作數(shù)地址內(nèi)RAM的低128字節(jié)特殊功能寄存器SFR區(qū)直接尋址直接尋址是訪問SFR的唯一方法DirectAddressing上頁下頁回目錄00H~7FH80H~FFHCPU內(nèi)部直接間接2023/2/613“與”上頁下頁回目錄MOVA,30H;A(30H)例1:操作碼操作數(shù)地址PCPCPC74H30HROM××A內(nèi)RAM××30H××ANL30H,#30H;30H(30H)∧#30H
例2:操作碼PCPCPC直接地址立即數(shù)PC53H30HROM
30H××內(nèi)RAM××30H
××ALU“結(jié)果”另一類直接尋址是轉(zhuǎn)移目標(biāo)地址的尋址。如:LJMPADDR162023/2/6143、寄存器尋址尋址空間:指令的三種形式:操作碼當(dāng)前選定的寄存器內(nèi)容就是實(shí)際操作數(shù)操作碼立即數(shù)操作碼直接地址R0~R7,由RS0、RS1確定寄存器區(qū)/4A、B(AB形式)和DPTRMOVA,R3;A(R3)
例1:ADDA,R3;A(A)+(R3)例2:寄存器尋址:RegisterAddressing操作數(shù)隱含操作數(shù)顯然隱含尋址上頁下頁回目錄2023/2/6154、寄存器間接尋址尋址空間:指令的三種形式:操作碼操作碼立即數(shù)操作碼直接地址內(nèi)部RAM(@R0,@R1,SP)外部RAM(@R0,@R1,@DPTR)寄存器間接尋址:指令選定的寄存器內(nèi)容就是實(shí)際的操作數(shù)地址RegisterIndirectAddressing上頁下頁回目錄2023/2/616MOV@R0,A例1:操作碼PCPCF6HROMR030H;累加器傳送指令內(nèi)RAM××30HA××××MOVXA,@DPTR例2:操作碼PCPCE0HROMDPTR2000H外RAM××2000HA×××ד讀”RD“讀”上頁下頁回目錄2023/2/6175、變址尋址基址寄存器加變址寄存器間接尋址:以DPTR或PC作基址寄存器,A作變址寄存器兩者相加形成操作數(shù)地址。尋址空間:程序存儲(chǔ)器(@A+DPTR、@A+PC)指令形式:操作碼上頁下頁回目錄2023/2/618MOVCA,@A+DPTR例:操作碼PCPCDPTR2400HA
0FH93HROM……××240FH設(shè)(A)=0FH(DPTR)=2400H××ALU“讀”PSEN“讀”MOVCA,@A+DPTR上頁下頁回目錄2023/2/6196、相對(duì)尋址程序存儲(chǔ)器尋址空間:指令的三種形式:操作碼
rel操作碼直接地址
rel操作碼立即數(shù)
rel相對(duì)尋址以當(dāng)前PC值為基準(zhǔn)地址,加上指令的偏移量“rel”,結(jié)果為目標(biāo)地址。rel為有符號(hào)補(bǔ)碼數(shù),范圍:-128~+127一般為雙字節(jié)或三字節(jié)指令RelativeAddressing上頁下頁回目錄尋址指令執(zhí)行地址目標(biāo)地址2023/2/620JNZrel例:;累加器A不等零則轉(zhuǎn)移設(shè):rel=23H2025H2002H2001H2000H
ROM70H23H下一條指令.......操作碼PCPCPC(PC)=2002Hrel=23H修正后轉(zhuǎn)移目標(biāo)地址D(PC)=2025HPCALU偏移量上頁下頁回目錄(PC)=2002HRel=23H)005202HD=2023/2/6212025H2112H2111H2110H
ROMDFHF2H下一條指令.......操作碼PCPCPC(PC)=2112Hrel=F2H修正后轉(zhuǎn)移目標(biāo)地址D(PC)=2104HALU偏移量上頁下頁回目錄例:DJNZR7,rel;(R7)–1不為“0”則轉(zhuǎn)PC2104H指令(PC)=2112HRel=F2H)FF4012HD=2023/2/6227、位尋址尋址空間:片內(nèi)RAM的20H~2FH字節(jié)地址位地址:00H~7FH
共128位SFR中12個(gè)能被8整除的字節(jié)地址位地址請(qǐng)參看P43
表2-16共93位BitAddressing以訪問觸發(fā)器的方式,對(duì)內(nèi)部RAM、SFR的位地址空間進(jìn)行訪問,稱為位尋址。位地址用于布爾指令。共221位上頁下頁回目錄位尋址方式實(shí)質(zhì)屬于位的直接尋址。
2023/2/623【例】位地址00H內(nèi)容為1,MOVC,00H執(zhí)行后,位地址PSW.7的內(nèi)容為1。2023/2/624尋址方式與相應(yīng)的尋址空間小結(jié):寄存器R0~R7,A,BCY,DPTR片內(nèi)內(nèi)RAM的低128字節(jié)特殊功能寄存器SFR直接尋址direct寄存器間址@R0,@R1,SP@R0,@R1,@DPTR片內(nèi)RAM、片外RAM與I/O口立即數(shù)#data程序存儲(chǔ)器程序存儲(chǔ)器變址@A+DPTR,@A+PC程序存儲(chǔ)器相對(duì)尋址PC+rel位尋址片內(nèi)RAM20H~2FH部分SFRbit利用的變量使用的空間方式2023/2/625一般不影響標(biāo)志寄存器PSW的狀態(tài)。傳送類指令有兩大類
一般傳送(MOV)特殊傳送,如:MOVCMOVXPUSH、POPXCH、XCHDSWAP
數(shù)據(jù)傳送指令(29條)3.32023/2/6263.3.1一般傳送指令1、16位傳送(僅1條)MOVDPTR,#data16;DPTR←data16例:執(zhí)行指令MOVDPTR,#1234H后(DPH)=12H,(DPL)=34H。三字節(jié)指令
12H
34H
90H機(jī)器碼2023/2/6273.3.1一般傳送指令2、8位傳送通用格式:MOV<目的字節(jié)>,<源字節(jié)>;功能:把源字節(jié)內(nèi)容送目的字節(jié),源字節(jié)內(nèi)容不變目的地址源地址數(shù)據(jù)MOVA,#20H20HA20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data※(1)源操作數(shù)和目的操作數(shù)不相同(direct除外)
(2)Rn、@Ri之間不可相互傳送。
(3)立即數(shù)不可以做目的操作數(shù)2023/2/628MOVdirect,directMOVR0,R7×MOVA,R7
MOVR0,A√MOV00H,07H√MOVR0,07H√MOV00H,R7√MOVSP,R0MOV81H,00H2B2T3B2T2B2T2B2T2023/2/6293.3.2特殊傳送指令
以DPTR內(nèi)容為基址讀ROM中常數(shù)表項(xiàng)指令MOVC(查表指令)ROM中可以存放程序代碼,還經(jīng)常存放常數(shù)表
MOVCA,@A+DPTR;A←((A)+(DPTR))
以PC內(nèi)容為基址MOVCA,@A+PC;A←((A)+(PC))常數(shù)表存放約束小,稱為遠(yuǎn)程查表指令。占用DPTR
常數(shù)表存放約束大,稱為近程查表指令。不占用DPTR
93H機(jī)器碼1B2T83H機(jī)器碼1B2T2023/2/630MOVDPTR,#TAB
MOVCA,@A+DPTR2004H2003H2002H2001H2000H2008H2009H2005H2006H2007H存儲(chǔ)器00H01H04H09H10H19H24H31H40H51HTAB:例:在外部ROM中存放0~9的平方值。根據(jù)累加器A中的數(shù)(0~9),查找對(duì)應(yīng)的平方值。TAB:DB0,1,4,9,16DB25,36,49,64,812023/2/631操作碼PCPCDPTR2000HA
03H
09HMOVDPTR,#TABMOVCA,@A+DPTR
93HROM……00H2000H01H04H09H2001H2002H2003H…;設(shè)(A)=03H,查“3”的平方ALU2023/2/632用PC作基址寄存器,它并不指向表格首址;是PC當(dāng)前值與所查表格首址之間的距離;即(PC)+#dataTAB表格首址設(shè)(A)=03H,是表格中的第3項(xiàng);單字節(jié)指令,設(shè)指令在ROM中的地址為1FF0HADDA,#dataMOVCA,@A+PC2000H1FF1H-000FH;#data是變址調(diào)整值#dataPC當(dāng)前值表格首址TABBEL:DB00HDB01HDB04H…DB09H2000H12HA……PCPC2003HTAB:2023/2/633PCPC操作碼MOVCA,@A+PC
93HROM……00H2000H01H04H09H2001H2002H2003H…1FF0H1FF1H(PC)=1FF1HA12H09H;查“3”的平方ALUTAB:A03H+0FH2023/2/634
讀片外RAM讀片外RAM及接口單元數(shù)據(jù)的指令MOVX片外RAM中經(jīng)常存放數(shù)據(jù)采集與處理的中間數(shù)據(jù)
MOVXA,@DPTR;A←((DPTR))MOVXA,@Ri;A←((Ri))
寫片外RAMMOVX@DPTR,A;((DPTR))←AMOVX@Ri,A;((Ri))←A注意:用@Ri尋址時(shí),高8位地址由P2口提供
E0HRD1B2TE2H~E3H1B2TF0H1B2TF2H~F3H1B2TWR2023/2/635【例】
0BF02H:MOVDPTR,#0BFF8H0BF05H:MOVXA,@DPTR0BF06H:INCDPTR0BF07H:MOVX@DPTR,A2023/2/6362023/2/6372023/2/638
入棧指令PUSH堆棧操作指令PUSH和POP堆棧是一片存儲(chǔ)區(qū),遵循“后進(jìn)先出”原則,棧頂由SP指示。80C51的堆棧設(shè)在片內(nèi)RAM低端的128個(gè)單元,向上生長。PUSHdirect;SP←(SP)+1,(SP)←(direct)出棧指令POPPOPdirect;(direct)←((SP)),SP←(SP)-1注:堆棧用于子程序調(diào)用時(shí)保護(hù)返回地址,或者用于保護(hù)子程序調(diào)用之前的某些重要數(shù)據(jù)(即保護(hù)現(xiàn)場),還可以用于數(shù)據(jù)交換。
2023/2/639利用堆棧完成40H與50H單元內(nèi)容的交換的示例
MOVSP,#6FH;將堆棧設(shè)在70H以上RAM空間PUSH40H;①將40H單元的“23H”入棧,之后(SP)=70HPUSH50H;②將50H單元的“45H”入棧,之后(SP)=71HPOP40H;③將SP指向的71H單元的內(nèi)容彈到40H單元,之后(SP)=70HPOP50H;④將SP指向的70H單元的內(nèi)容彈到50H單元,之后(SP)=6FH(a)初始狀態(tài)(b)2條PUSH指令執(zhí)行后(c)2條POP指令執(zhí)行后2023/2/640SPSP例:堆棧操作設(shè)(40H)=23H,(50)=45H’建立堆?!瘔喝氩僮鳌瘡棾霾僮?/p>
6FH70H71H72H73H
23H
45HSPMOVSP,#6FHPUSH40HPUSH50HPOP50HSP結(jié)果:50H的內(nèi)容45H,SP的內(nèi)容為70H45H2023/2/641
字節(jié)交換指令XCH數(shù)據(jù)交換指令XCH、XCHD和SWAP【例3-20】若(R0)=80H,(A)=20H。執(zhí)行指令XCHA,R0
后,(A)=80H,(R0)=20H。
2023/2/642
半字節(jié)交換指令XCHD【例】若(R0)=30H,(30H)=67H,(A)=20H。執(zhí)行指令
XCHDA,@R0指令后,(A)=27H,(30H)=60H。
【例3】若(A)=30H,執(zhí)行指令SWAPA后,(A)=03H。
A(Ri)AXCHD是間址操作數(shù)的低半字節(jié)與A的低半字節(jié)互換。SWAP是累加器的高低4位互換經(jīng)常用于非壓縮BCD碼的使用2023/2/6431、當(dāng)(01H)=00H,將78H入R0中,PSW中RS1RS0=00,有幾種方法?分別是什么?MOVR0,#78HMOV@R1,#78HMOV00H,#78H2、將內(nèi)部RAM中30H和31H的低半字節(jié)組成一個(gè)字節(jié)放入片內(nèi)RAM中32H中。3、片外RAM中0060H內(nèi)容片內(nèi)RAM31H內(nèi)容低4位互換后送回到片外0061H中。思考:2023/2/644算數(shù)運(yùn)算結(jié)果要影響PSW中標(biāo)志位
CY為1,無符號(hào)數(shù)(字節(jié))加減發(fā)生進(jìn)位或借位OV為1,有符號(hào)數(shù)(字節(jié))加減發(fā)生溢出錯(cuò)誤
AC為1,十進(jìn)制數(shù)(BCD碼)加法的結(jié)果應(yīng)調(diào)整
P為1,存于累加器A中操作結(jié)果的“1”的個(gè)數(shù)為奇數(shù)
標(biāo)志位意義標(biāo)志位與相關(guān)指令影響指令標(biāo)志ADD、ADDC、SUBBDAMULDIVCY√√00AC√√××OV√×√√P√√√√算數(shù)運(yùn)算指令(24條)3.42023/2/645算數(shù)運(yùn)算影響標(biāo)志位示例【例3-23】有2個(gè)參與相加的機(jī)器數(shù),一個(gè)是84H,另一個(gè)是8DH。試分析運(yùn)算過程及其對(duì)狀態(tài)標(biāo)志的影響。結(jié)果:CY為1;AC為1;OV為1;P為0
2023/2/6463.4.1加法不帶進(jìn)位加法【例3-24】若有2個(gè)無符號(hào)數(shù)存于累加器A和RAM的30H單元,即(A)=84H,(30H)=8DH,試分析執(zhí)行指令A(yù)DDA,30H
后的結(jié)果。由于對(duì)無符號(hào)數(shù)相加,要考察CY。由上頁圖可知,CY=1,因此知道運(yùn)算的結(jié)果發(fā)生了進(jìn)位,即實(shí)際值應(yīng)該是100H+11H。所以,編程者應(yīng)確保單字節(jié)無符號(hào)數(shù)運(yùn)算結(jié)果不要超過255
2023/2/647【例3-25】若有2個(gè)有符號(hào)數(shù)存于累加器A和RAM的30H單元,即(A)=84H,(30H)=8DH,試分析執(zhí)行指令A(yù)DDA,30H后的結(jié)果。有符號(hào)數(shù)相加,只需考察溢出標(biāo)志OV即可。由上圖可見OV=1,因此可知運(yùn)算的結(jié)果發(fā)生了溢出,這說明累加器A中的結(jié)果已經(jīng)不是正確的值了。
編程者應(yīng)確保單字節(jié)有符號(hào)數(shù)運(yùn)算結(jié)果不超過-128~127。否則,就要將數(shù)據(jù)用多字節(jié)表示或在程序運(yùn)行中對(duì)狀態(tài)標(biāo)志進(jìn)行判斷:無符號(hào)數(shù)用JNC或JC,有符號(hào)數(shù)要用JNB或JB。2023/2/648帶進(jìn)位加法(這組指令方便了多字節(jié)加法的實(shí)現(xiàn))
加12023/2/649將內(nèi)部RAM33H~30H與RAM43H~40H連續(xù)四字節(jié)的內(nèi)容相加后結(jié)果存于內(nèi)部RAM33H~30H中
MOVR7,#4MOVR0,#30HMOVR1,#40HCLRCLOP:MOVA,@R0ADDCA,@R1MOV@R0,AINCR0INCR1DJNZR7,LOPRET2023/2/650十進(jìn)制調(diào)整DAA;調(diào)整A的內(nèi)容為正確的BCD碼兩個(gè)壓縮的BCD碼按二進(jìn)制相加后,必須經(jīng)過調(diào)整方能得到正確的和。
當(dāng)A中低4位出現(xiàn)了非BCD碼(1010~1111)或低4位的進(jìn)位AC=1,則應(yīng)在低4位加6調(diào)整。當(dāng)A中高4位出現(xiàn)了非BCD碼(1010~1111)或高4位的進(jìn)位CY=1,則應(yīng)在高4位加6調(diào)整。
執(zhí)行十進(jìn)制調(diào)整指令后,PSW中的CY表示結(jié)果的百位值2023/2/651【例3-24】若(A)=01101001B,表示的BCD碼為(R2)=01011000B,表示的BCD碼為,執(zhí)行指令:ADDA,R2DAA(A)=00100111B,即且(CY)=1,即正確的結(jié)果為:127
2023/2/652例:設(shè)(A)=37H;(R3)=36H,執(zhí)行下面的程序:
00110111(37H)
00110110(36H)(6DH)
01101101過“9”
00000110
01110011補(bǔ)“6”(73H);(A)=6DH;(A)=73H
01110011(73H)
10011001(99H)
1
00001100(0CH)
CY
01100110
01110010(72H);(A)=0CHCY=1;(A)=72H過“9”補(bǔ)“6”110111100ADDA,R3DAAADDA,#99HDAA“+99”就等于減“-1”互補(bǔ)DAA只能跟在加法指令之后2023/2/6533.4.2減法帶借位減法用此組指令完成不帶借位的減法,只需先清CY為0即可
CY為1,表示D7位需借位
AC為1,表示D3位需借位OV為1,表示“D6有借位D7無借位”或“D7有借位D6無借位”2023/2/654【例3-25】若(A)=C9H,(R2)=54H,(CY)=1,試分析指令SUBBA,R2執(zhí)行后,累加器的內(nèi)容及狀態(tài)標(biāo)志。(A):11001001(201)-(CY):
1(1)11001000-(R2):01010100(84)結(jié)果:01110100(116)即:(A)=74H,(CY)=0,(AC)=0,(OV)=1,(P)=0。分析:數(shù)據(jù)為無符號(hào)類型。該指令執(zhí)行前CY=1,說明此指令不是運(yùn)算的最低字節(jié),即在此指令執(zhí)行之前,一定執(zhí)行過低字節(jié)的減法并產(chǎn)生了借位。因此,本次相減(201-1-84=116=74H)結(jié)果為74H。2023/2/655減1這組指令僅DECA
影響P標(biāo)志。其余指令都不影響標(biāo)志位的狀態(tài)。2023/2/6563.4.3乘法僅有一條乘法指令MULAB;A與B相乘無符號(hào)結(jié)果:B中為積的高8位,A中為積的低8位。
CY總是被清0;OV=1表示積大于FFH
3.4.4除法僅有一條除法指令DIVAB;A除以B
無符號(hào)結(jié)果:A中為商的整數(shù)部分,B中為余數(shù)
CY總是被清0;OV=1表示除數(shù)為02023/2/6573.5邏輯運(yùn)算與循環(huán)類指令(24條)3.5.1邏輯與邏輯:與、或、異或、清0和取反循環(huán):左、右移,帶進(jìn)位位左、右移【例】(A)=C3H,(R0)=AAH,執(zhí)行指令A(yù)NLA,R0
后,(A)=82H與操作常用于對(duì)某些不關(guān)心位進(jìn)行“清0”,同時(shí)“保留”另一些關(guān)心位
11010110∧010001010100010011010110∧11010110∧000000000000000011010110∧11010110∧000011110000011011010110∧11010110∧111100001101000011010110∧11010110∧100000001000000011010110∧11111111110001102023/2/6583.5.2邏輯或【例】(A)=C3H,(R0)=55H,執(zhí)行指令ORLA,R0
后,(A)=D7H或操作常用于對(duì)某些關(guān)心位進(jìn)行“置1”,不關(guān)心位保持不變
11010110∨010001011101011100000101∨100000001000010100000101∨001100000011010100000101∨100000001000010100000101∨001100000011010100000101∨00000000000001012023/2/6593.5.3邏輯異或【例】(A)=C3H,(R0)=AAH,執(zhí)行指令XRLA,R0
后,(A)=69H異或操作常用于對(duì)某些關(guān)心位進(jìn)行“取反”,不關(guān)心位保持不變
11010110⊕010001011101011111010110⊕110101100000000011010110⊕01011001100011112023/2/6603.5.4邏輯清0和取反3.5.5累加器循環(huán)移位?多字節(jié)循環(huán)怎么做?2023/2/661例:將片內(nèi)RAM31H30H整體帶進(jìn)位的左移1位。CLRCMOVA,30HRLCAMOV30H,AMOVA,31HRLCAMOV31H,AA.0A.7CYA.0A.7CY30H.6……30H.0CY(原)31H.6……31H.030H.730H.731H.72023/2/6623.6控制轉(zhuǎn)移類指令(17條)3.6.1無條件轉(zhuǎn)移短跳轉(zhuǎn)AJMPaddr11;PC←(PC)+2,PC10~0←addr112023/2/663長跳轉(zhuǎn)LJMPaddr16;PC←addr16相對(duì)轉(zhuǎn)移SJMPrel;PC←(PC)+2,PC←(PC)+rel目標(biāo)地址rel
對(duì)應(yīng)范圍為+127~-128。
2023/2/664【例】若“NEWADD”為地址1022H,PC的當(dāng)前值為1000H。執(zhí)行指令SJMPNEWADD后,程序?qū)⑥D(zhuǎn)向1022H處執(zhí)行(rel=20H=1022H-1000H-2)。解析如下:2023/2/665散轉(zhuǎn)移JMP@A+DPTR;PC←(PC)+1,PC←(A)+(DPTR)
可完成多條判跳指令的功能mova,r7adda,r7
MOVDPTR,#TABLEJMP@A+DPTRTABLE:AJMPROUT0AJMPROUT1AJMPROUT2AJMPROUT3據(jù)R7內(nèi)容轉(zhuǎn)移2023/2/6663.6.2條件轉(zhuǎn)移累加器判0轉(zhuǎn)移比較不等轉(zhuǎn)移2023/2/667減1不為0轉(zhuǎn)移2023/2/668【例】有一段程序如下,該程序執(zhí)行后,(A)=10+9+8+7+6+5+4+3+2+1=37HMOV23H,#0AHCLRALOOPX:ADDA,23HDJNZ23H,LOOPXSJMP$2023/2/669條件轉(zhuǎn)移類指令范例——方案一還有什么方法實(shí)現(xiàn)循環(huán)的終止?將00H~0FH這16個(gè)數(shù)順序地置入片內(nèi)RAM20H~2FH單元中。
MOVR0,#20H MOVR7,#16 CLRALOOP:MOV@R0,AINCAINCR0DJNZR7,LOOPSJMP$2023/2/670條件轉(zhuǎn)移類指令范例——方案二
MOVR0,#20H CLRALOOP:MOV@R0,AINCAINCR0CJNEA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保工程合同(2篇)
- 湘教版數(shù)學(xué)八年級(jí)上冊(cè)2.1《三角形的有關(guān)概念及三邊關(guān)系》聽評(píng)課記錄1
- 商務(wù)星球版地理七年級(jí)下冊(cè)第九章《全球化與不平衡發(fā)展》(第1課時(shí))聽課評(píng)課記錄
- s版語文五年級(jí)下冊(cè)聽評(píng)課記錄
- 人教部編版道德與法治七年級(jí)下冊(cè):5.1 《我們的情感世界》 聽課評(píng)課記錄
- 湘教版數(shù)學(xué)七年級(jí)上冊(cè)1.2.1《數(shù)軸》聽評(píng)課記錄2
- 湘教版數(shù)學(xué)九年級(jí)上冊(cè)5.2《統(tǒng)計(jì)的簡單應(yīng)用》聽評(píng)課記錄2
- 蘇教版三年級(jí)數(shù)學(xué)下冊(cè)期末復(fù)習(xí)口算練習(xí)題一
- 私募股權(quán)投資基金(雙GP)合作框架協(xié)議書范本
- HAHXCA砂(石料)委托檢驗(yàn)協(xié)議書范本
- 電網(wǎng)工程設(shè)備材料信息參考價(jià)(2024年第四季度)
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2025江蘇連云港市贛榆城市建設(shè)發(fā)展集團(tuán)限公司招聘工作人員15人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語期末試卷(含答案無聽力原文無音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 《軌道交通工程盾構(gòu)施工技術(shù)》 課件 項(xiàng)目2 盾構(gòu)構(gòu)造認(rèn)知
- 《港珠澳大橋演講》課件
- 《有機(jī)化學(xué)》課件-第十章 羧酸及其衍生物
- 人教版道德與法治五年級(jí)下冊(cè)《第一單元 我們一家人》大單元整體教學(xué)設(shè)計(jì)2022課標(biāo)
- 2024年海南公務(wù)員考試申論試題(A卷)
評(píng)論
0/150
提交評(píng)論