《單片微型計(jì)算機(jī)原理及應(yīng)用》課件第2章_第1頁(yè)
《單片微型計(jì)算機(jī)原理及應(yīng)用》課件第2章_第2頁(yè)
《單片微型計(jì)算機(jī)原理及應(yīng)用》課件第2章_第3頁(yè)
《單片微型計(jì)算機(jī)原理及應(yīng)用》課件第2章_第4頁(yè)
《單片微型計(jì)算機(jī)原理及應(yīng)用》課件第2章_第5頁(yè)
已閱讀5頁(yè),還剩147頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2章單片機(jī)指令系統(tǒng)2.1MCS—51單片機(jī)匯編語(yǔ)言與指令格式2.2尋址方式2.3MCS—51單片機(jī)指令系統(tǒng)2.1MCS—51單片機(jī)匯編語(yǔ)言與指令格式2.1.1單片機(jī)的匯編語(yǔ)言由于構(gòu)成計(jì)算機(jī)的電子器件特性所決定,計(jì)算機(jī)只能識(shí)別二進(jìn)制代碼。這種以二進(jìn)制代碼來描述指令功能的語(yǔ)言,稱之為機(jī)器語(yǔ)言,用機(jī)器語(yǔ)言組成的程序,稱為目標(biāo)程序。計(jì)算機(jī)就是按照機(jī)器語(yǔ)言的指令來完成各種功能操作的,它具有程序簡(jiǎn)捷、占用存儲(chǔ)空間小、執(zhí)行速度快、控制功能強(qiáng)等特點(diǎn)。2.1.2指令格式

MCS—51單片機(jī)匯編語(yǔ)言指令的標(biāo)準(zhǔn)格式如下:

[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋]例如:LOOP:ADD#A,#10H;(A)←(A)+10H(1)方括號(hào)[]表示該項(xiàng)是可選項(xiàng),可有可無。

(2)標(biāo)號(hào)是用戶設(shè)定的符號(hào),它實(shí)際代表該指令所在的地址。標(biāo)號(hào)必須以字母開頭,其后跟1~8個(gè)字母或數(shù)字,并以“:”結(jié)尾。(3)操作碼是用英文縮寫的指令功能助記符。它確定了本條指令完成什么樣的操作功能。如:ADD表示加法操作。任何一條指令都必須有該助記符項(xiàng),不得省略。

(4)目的操作數(shù)提供操作的對(duì)象,并指出一個(gè)目標(biāo)地址,表示操作結(jié)果存放單元的地址,它與操作碼之間必須以一個(gè)或幾個(gè)空格分隔。如上例中A表示操作對(duì)象是累加器A的內(nèi)容,并指出操作結(jié)果又回送A存放。(5)源操作數(shù)指出的是一個(gè)源地址(或立即數(shù)),表示操作的對(duì)象或操作數(shù)來自何處。它與目的操作數(shù)之間要用“,”號(hào)隔開。

(6)注釋部分是在編寫程序時(shí),為了增加程序的可讀性,由用戶擬寫對(duì)該條指令或該段程序功能的說明。它以分號(hào)“;”開頭,可以用中文、英文或某些符號(hào)來表示,顯然它不存入計(jì)算機(jī),只出現(xiàn)在源程序中。2.1.3指令中常用符號(hào)在分類介紹各類指令之前,先對(duì)描述指令的一些符號(hào)意義進(jìn)行一些簡(jiǎn)單約定:(1)Ri和Rn:R表示當(dāng)前工作寄存器區(qū)中的工作寄存器,i表示0或1,即R0和R1。n表示0~7,即R0~R7,當(dāng)前工作寄存器的選定是由PSW的RS1和RS0位決定的。

(2)#data:#表示立即數(shù),data為8位常數(shù)。#data是指包含在指令中的8位立即數(shù)。

(3)#data16:包含在指令中的16位立即數(shù)。

(4)rel:相對(duì)地址,以補(bǔ)碼形式表示的地址偏移量,范圍為-128~+127,主要用于無條件相對(duì)短轉(zhuǎn)移指令SJMP和所有的條件轉(zhuǎn)移指令中。

(5)addr16:16位目的地址。目的地址可在全部程序存儲(chǔ)器的64KB空間范圍內(nèi),主要用于無條件長(zhǎng)轉(zhuǎn)移指令LJMP和子程序長(zhǎng)調(diào)用指令LCALL中。

(6)addr11:11位目的地址。目的地址應(yīng)與下條指令處于相同的2KB程序存儲(chǔ)器地址空間范圍內(nèi),主要用于絕對(duì)轉(zhuǎn)移指令A(yù)JMP和子程序絕對(duì)調(diào)用指令A(yù)CALL指令中。(7)direct:表示直接尋址的地址,即8位內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM的單元地址(0~127/255),或特殊功能寄存器SFR的地址。對(duì)于SFR可直接用其名稱來代替其直接地址。

(8)bit:內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM和特殊功能寄存器SFR中的可直接尋址位地址。

(9)@:間接尋址寄存器或基地址寄存器的前綴,如@Ri,@DPTR,表示寄存器間接尋址。(10)(X):表示X中的內(nèi)容。

(11)((X)):表示由X尋址的單元中的內(nèi)容,即(X)作地址,該地址的內(nèi)容用((X))表示。

(12)/和→符號(hào):/表示對(duì)該位操作數(shù)取反,但不影響該位的原值。→表示指令操作流程,將箭頭一方的內(nèi)容,送入箭頭另一方的單元中去。

2.2尋址方式

2.2.1寄存器尋址選定某寄存器,自該寄存器中讀取或存放操作數(shù),以完成指令規(guī)定的操作,稱為寄存器尋址。例如:MOVA,R0;(A)←(R0)

該指令的功能是把工作寄存器R0中的內(nèi)容傳送到累加器A中,如:R0內(nèi)容為FFH,則執(zhí)該指令后A的內(nèi)容也為FFH。在該條指令中,源操作數(shù)和目的操作數(shù)是由尋址R0和A寄存器得到的,故屬于寄存器尋址。該指令為單字節(jié)指令,機(jī)器代碼為E8H。2.2.2立即尋址操作數(shù)直接出現(xiàn)在指令中,它緊跟在操作碼的后面,作為指令的一部分與操作碼一起存放在程序存儲(chǔ)器內(nèi),可以立即得到并執(zhí)行,不需要另去寄存器或存儲(chǔ)器等處尋找和取數(shù),故稱為立即尋址。該操作數(shù)稱為立即數(shù),并在其前冠以“?!碧?hào)作前綴,以表示并非地址。立即數(shù)可以是8位或16位,用十六進(jìn)制數(shù)表示。

例如:MOVA,#0FH;(A)←0FH

該指令的功能是將立即數(shù)0FH傳送到累加器A中,對(duì)應(yīng)的機(jī)器碼為74H。它隱含了寄存器尋址累加器A方式,長(zhǎng)一個(gè)字節(jié),占用一個(gè)存儲(chǔ)單元;立即數(shù)0FH緊跟在操作碼之后,成為指令代碼的一部分,長(zhǎng)也是一個(gè)字節(jié),占用緊跟在后面的另一個(gè)存儲(chǔ)單元。故該指令為雙字節(jié)指令,其機(jī)器碼為74H0FH。2.2.3寄存器間接尋址由指令指出某一個(gè)寄存器的內(nèi)容作為操作數(shù)地址的尋址方法,稱為寄存器間接尋址方法,簡(jiǎn)稱寄存器間址。這里要強(qiáng)調(diào)的是:寄存器的內(nèi)容不是操作數(shù)本身,而是操作數(shù)地址。

寄存器間接尋址使用所選定寄存器區(qū)中的R0和R1作為地址指針(對(duì)堆棧操作時(shí),使用堆棧指針SP),來尋址片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(00~FFH)的256個(gè)單元,但它不能訪問特殊功能寄存器SFR。寄存器間接尋址也適用于訪問外部數(shù)據(jù)存儲(chǔ)器,此時(shí),用R0、R1或DPTR作為地址指針。寄存器間接尋址用符號(hào)“@”指明。圖2―1寄存器間接尋址示意圖2.2.4直接尋址指令中直接給出操作數(shù)所在的存儲(chǔ)器地址,以供尋址取數(shù)或存數(shù)的尋址方式稱為直接尋址。例如:MOVA,40H;(A)←(40H)

該指令的功能是把內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM40H單元內(nèi)的內(nèi)容送到累加器A。指令直接給出了源操作數(shù)的地址40H。該指令的機(jī)器碼為E5H40H。2.2.5變址尋址基址寄存器加變址寄存器間接尋址,簡(jiǎn)稱變址尋址。它以數(shù)據(jù)指針DPTR或程序計(jì)數(shù)器PC作為基址寄存器,累加器A作為變址寄存器,兩者的內(nèi)容相加形成16位程序存儲(chǔ)器地址,該地址就是操作數(shù)所在地址。例如:MOVCA,@A+DPTR;(A)←((A)+(DPTR))

該指令尋址及操作功能如圖2―2所示,該指令為單字節(jié)指令,機(jī)器代碼為93H。這種尋址方式常用于訪問程序存儲(chǔ)器中的常數(shù)表。圖2―2變址尋址示意圖2.2.6相對(duì)尋址相對(duì)尋址是以當(dāng)前程序計(jì)數(shù)器PC值加上指令規(guī)定的偏移量rel,而構(gòu)成實(shí)際操作數(shù)地址的尋址方法。它用于訪問程序存儲(chǔ)器,常出現(xiàn)在相對(duì)轉(zhuǎn)移指令中。在使用相對(duì)尋址時(shí)要注意以下兩點(diǎn):

第一,當(dāng)前PC值是指相對(duì)轉(zhuǎn)移指令所在地址(一般稱為源地址)加上轉(zhuǎn)移指令字節(jié)數(shù)。即:當(dāng)前PC值=源地址+轉(zhuǎn)移指令字節(jié)數(shù)。例如:JZrel是一條累加器A為零就轉(zhuǎn)移的雙字節(jié)指令。若該指令地址(源地址)為2050H,則執(zhí)行該指令時(shí)的當(dāng)前PC值即為2052H。

第二,偏移量rel是有符號(hào)的單字節(jié)數(shù),以補(bǔ)碼表示,其相對(duì)值的范圍是-128~+127(即00H~FFH),負(fù)數(shù)表示從當(dāng)前地址向上轉(zhuǎn)移,正數(shù)表示從當(dāng)前地址向下轉(zhuǎn)移。所以,相對(duì)轉(zhuǎn)移指令滿足條件后,轉(zhuǎn)移的地址(一般稱為目的地址)應(yīng)為:目的地址=當(dāng)前PC值+rel=源地址+轉(zhuǎn)移指令字節(jié)數(shù)+rel

例如:指令JZ08H和JZ0F4H表示累加器A為零條件滿足后,從源地址(2050H)分別向下、向上轉(zhuǎn)移10個(gè)單元。其相對(duì)尋址示意如圖2―3(a)、(b)所示。這兩條指令均為雙字節(jié)指令,機(jī)器代碼分別為:60H08H和60HF4H。

圖2―3相對(duì)尋址示意圖(a)指令JZ08H尋址示意圖;(b)指令JZF4H尋址示意圖2.2.7位尋址

MCS—51系列單片機(jī)具有位尋址的功能,即指令中直接給出位地址,可以對(duì)內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM中的128位和特殊寄存器SFR中的93位進(jìn)行尋址,并且位操作指令可對(duì)地址空間的每一位進(jìn)行傳送及邏輯操作。例如:SETBPSW.3;(PSW.3)←1

該指令的功能是給程序狀態(tài)字PSW中的RS0置1。該指令為雙字節(jié)指令,機(jī)器代碼為D2HD3H,指令的第二字節(jié)直接給出位地址D3H(PSW.3的位地址)。

綜上所述,在MCS—51系列單片機(jī)的存儲(chǔ)空間中,指令究竟對(duì)哪個(gè)存儲(chǔ)器空間進(jìn)行操作是由指令操作碼和尋址方式確定的。7種尋址方式如表2―1所示。表2―17種尋址方式及使用空間2.3MCS—51單片機(jī)指令系統(tǒng)MCS—51單片機(jī)指令系統(tǒng)分為:數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、邏輯運(yùn)算及移位類指令、控制轉(zhuǎn)移類指令和位操作(布爾操作)指令5大類,共計(jì)111條指令?,F(xiàn)按其分類分別介紹各條指令的格式、功能、對(duì)狀態(tài)標(biāo)志的影響以及應(yīng)用。2.3.1數(shù)據(jù)傳送類指令數(shù)據(jù)傳送類指令共29條,它是指令系統(tǒng)中最活躍、使用最多的一類指令。一般的操作是把源操作數(shù)傳送到目的操作數(shù),即指令執(zhí)行后目的操作數(shù)改為源操作數(shù),而源操作數(shù)保持不變。若要求在進(jìn)行數(shù)據(jù)傳送時(shí),不丟失目的操作數(shù),則可以用交換型傳送指令。

數(shù)據(jù)傳送類指令不影響進(jìn)位標(biāo)志CY、半進(jìn)位標(biāo)志AC和溢出標(biāo)志OV,但當(dāng)傳送或交換數(shù)據(jù)后影響累加器A的值時(shí),奇偶標(biāo)志P的值則按A的值重新設(shè)定。按數(shù)據(jù)傳送類指令的操作方式,又可把傳送類指令分為3種類型:數(shù)據(jù)傳送、數(shù)據(jù)交換和堆棧操作,并使用8種助記符:MOV、MOVX、MOVC、XCH、XCHD、SWAP、PUSH及POP。表2―2給出了各種數(shù)據(jù)傳送指令的操作碼助記符和對(duì)應(yīng)的操作數(shù)。表2―2數(shù)據(jù)傳送類指令助記符與操作1.內(nèi)部數(shù)據(jù)存儲(chǔ)器間數(shù)據(jù)傳送指令

內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM區(qū)是數(shù)據(jù)傳送最活躍的區(qū)域,可用的指令數(shù)也最多,共有16條指令,指令操作碼助記符為MOV。內(nèi)部RAM之間源操作數(shù)傳遞關(guān)系如圖2―4所示。為了便于理解指令功能,我們按源操作數(shù)的尋址方式逐一介紹各條指令。

(1)立即尋址。在該尋址方式下,內(nèi)部RAM區(qū)數(shù)據(jù)傳送指令有如下5條指令。圖2―4內(nèi)部RAM間數(shù)據(jù)傳遞關(guān)系操作碼助記符目的操作數(shù)源操作數(shù)功能注釋機(jī)器代碼(H)MOVA,#data;(A)←#data,74dataMOVdirect,#data;(direct)←#data,75directdata

MOV@Ri,#data;((Ri))←#data,76~77dataMOVRn,#data;(Rn)←#data,78~7FdataMOVDPTR,#data16;(DPTR)←#data16,90data15~8data7~0

這組指令表明,8位立即數(shù)可以直接傳送到內(nèi)部數(shù)據(jù)區(qū)RAM的各個(gè)位置,并且可把16位立即數(shù)直接裝入數(shù)據(jù)指針DPTR。把立即數(shù)送入累加器A的傳送指令在2.2.2節(jié)中已作了介紹,其它指令的功能及應(yīng)用舉例如下:①M(fèi)OVdirect,#data;(direct)←#data#,75directdata

該指令的功能是把立即數(shù)傳送到內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM的00H~7FH,以及特殊功能寄存器SFR的各單元中去,它為三字節(jié)指令。例如把立即數(shù)40H傳送到RAM的30H單元和P1口(口地址為90H),可采用如下指令:MOV30H,#40H;(30H)←#40H,753040MOVP1,#40H;(90H)←#40H,759040②MOV@Ri,#data;((Ri))←#data,76~77data

該指令的功能是把立即數(shù)傳送到由R0和R1寄存器的內(nèi)容指出的片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM的單元中去(MCS—51系列為00H~7FH,MCS—52系列為00H~FFH)。

MOVR0,#30H;(R0)←#30H,7830MOV@R0,#40H;((R0))←#40H,7640

③MOVRn,#data;(Rn)←#data,78~7Fdata

該指令的功能是把立即數(shù)傳送到內(nèi)部寄存器R0~R7中去,該指令為雙字節(jié)指令,機(jī)器代碼為:④MOVDPTR,#data16;(DPTR)←#data16,90data15~8data7~0

該指令的功能是把16位立即數(shù)裝入數(shù)據(jù)指針DPTR中去。它是MCS—51系列單片機(jī)指令系統(tǒng)中唯一的一條16位數(shù)據(jù)傳送指令。該指令為三字節(jié)指令,第一字節(jié)為90H,第二字節(jié)為高8位立即數(shù),第三字節(jié)為低8位立即數(shù)。例如:MOVDPTR,#1234H指令執(zhí)行后,DPTR寄存器的高8位寄存器DPH的內(nèi)容為12H,低8位寄存器DPL內(nèi)容為34H。該指令的機(jī)器代碼為90H12H34H。(2)寄存器尋址。在該尋址方式下,內(nèi)部RAM區(qū)數(shù)據(jù)傳送指令有以下5條:MOVdirect,A#;(direct)←(A),F5directMOV@Ri,A;((Ri))←(A),F6~F7MOVRn,A;(Rn)←(A),F8~FFMOVA,Rn;(A)←(Rn),E8~EFMOVdirect,Rn;(direct)←(Rn),88~8Fdirect

這組指令的功能是把累加器A的內(nèi)容傳送到內(nèi)部數(shù)據(jù)區(qū)RAM的各個(gè)單元,或者把指定工作寄存器R0~R7中的內(nèi)容傳送到累加器A或direct所指定的片內(nèi)RAM的00H~7FH單元或特殊功能寄存器SFR中去。但不能用這類指令在內(nèi)部工作寄存器之間直接傳送。例如:不存在MOVR1,R2這樣的指令。(3)直接尋址。在該尋址方式下,內(nèi)部RAM區(qū)數(shù)據(jù)傳送指令有如下4條指令:MOVA,direct;(A)←(direct),E5directMOVRn,direct;(Rn)←(direct),A8~AFdirectMOV@Ri,direct;((Ri))←(direct),A6~A7directMOVdirect2,direct1;(direct2)←(direct1),85direct1direct2

這組指令將直接地址所規(guī)定的內(nèi)部RAM單元(片內(nèi)RAM的00H~7FH,SFR的80H~FFH單元)內(nèi)容傳送到累加器A,寄存器Rn,并能實(shí)現(xiàn)內(nèi)部數(shù)據(jù)寄存器RAM之間、特殊功能寄存器SFR之間或SFR與內(nèi)部RAM之間的直接數(shù)據(jù)傳遞。直接傳遞不需要通過累加器A或者工作寄存器來間接傳送,從而提高了數(shù)據(jù)傳送的效率。

例如:MOVP2,P1;(P2)←(P1),8590A0

該指令的功能是不通過其它寄存器,直接把P1口(口地址90H)的內(nèi)容傳送到P2口(口地址A0H)輸出,提高了效率。該指令為三字節(jié)指令,機(jī)器代碼為85H90HA0H。(4)寄存器間接尋址。在該尋址方式下,內(nèi)部RAM區(qū)數(shù)據(jù)傳送指令有以下兩條:MOVA,@Ri;(A)←((Ri)),E6~E7MOVdirect,@Ri;(direct)←((Ri)),86~87direct

這組指令把以Ri的內(nèi)容作為地址進(jìn)行尋址所得到單元的內(nèi)容,傳送到累加器A或direct指定的片內(nèi)RAM區(qū)單元。

例如:設(shè)內(nèi)部RAM(30H)=40H,(40H)=10H,(10H)=00H,端口(P1)=CAH,分析以下程序執(zhí)行后各單元及寄存器、P2口的內(nèi)容。

MOVR0,#30H;(R0)←30H,7830MOVA,@R0;(A)←((R0)),E6MOVR1,A;(R1)←(A),F9MOVB,@R1;(B)←((R1)),87F0MOV@R1,P1;((R1))←(P1),A790MOVP2,P1;(P2)←(P1),8590A0MOV10H,#20H;(10H)←20H,751020

2.外部數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)傳送指令

MCS—51單片機(jī)CPU對(duì)片外擴(kuò)展的數(shù)據(jù)存儲(chǔ)器RAM或I/O口進(jìn)行數(shù)據(jù)傳送,必須采用寄存器間接尋址的方法,通過累加器A來完成。一般數(shù)據(jù)的傳送是通過P0口和P2口完成的,即片外RAM地址總線低8位由P0口送出,高8位由P2口送出,數(shù)據(jù)總線(8位)也由P0口傳送(雙向),但與低8位地址總線是分時(shí)傳送的。這類數(shù)據(jù)傳送指令共有以下4條單字節(jié)指令,指令操作碼助記符標(biāo)志為MOVX。MOVXA,@DPTR;(A)←((DPTR)),E0MOVXA,@Ri;(A)←((Ri)),E2~E3MOVX@DPTR,A;((DPTR))←(A),F0MOVX@Ri,A;((Ri))←(A),F2~F3

例如:設(shè)外部RAM(0203H)=FFH,分析以下指令執(zhí)行后的結(jié)果。

MOVDPTR,#0203H;(DPTR)←0203H,900203MOVXA,@DPTR;(A)←((DPTR)),E0MOV30H,A;(30H)←(A),F530MOVA,#0FH;(A)←0FH,740FMOVX@DPTR,A;((DPTR))←(A),F0

執(zhí)行結(jié)果為:(DPTR)=0203H,(30H)=FFH,(0203H)=(A)=0FH。3.程序存儲(chǔ)器向累加器A傳送數(shù)據(jù)指令程序存儲(chǔ)器向累加器A傳送數(shù)據(jù)指令,又稱查表指令。它采用變址尋址方式,把程序存儲(chǔ)器(ROM或EPROM)中存放的表格數(shù)據(jù)讀出,傳送到累加器A。它共有如下兩條單字節(jié)指令,指令操作碼助記符為MOVC。MOVCA,@A+DPTR;(A)←((A)+(DPTR)),93MOVCA,@A+PC;(PC)←(PC)+1,(A)←((A)+(PC)),83

例1:在外部ROM/EPROM中,從2000H單元開始依次存放0~9的平方值:0、1、4、9、…、81,要求依據(jù)累加器A中的值(0~9)來查找所對(duì)應(yīng)的平方值,分析下述程序的結(jié)果。

MOVDPTR,#2000H;(DPTR)←2000H,902000MOVA,#09H;(A)←09H,7409MOVCA,@A+DPTR;(A)←((A)+(DPTR)),93

執(zhí)行結(jié)果:(DPTR)=2000H,(A)=51H(81的十六進(jìn)制數(shù))。

后一條指令是以PC作為基址寄存器,CPU取完該指令操作碼時(shí)PC會(huì)自動(dòng)加1,指向下一條指令的第一個(gè)字節(jié)地址,即此時(shí)是用(PC)+1作為基址的,目標(biāo)地址為(A)+(PC)+1。另外,由于累加器A中的內(nèi)容為8位無符號(hào)整數(shù),這就使得本指令查表范圍只能在以PC當(dāng)前值開始后的256個(gè)字節(jié)范圍內(nèi)(即(PC)+1H~(PC)+100H),使表格地址空間分配受到限制。同時(shí)編程時(shí)還需進(jìn)行偏移量的計(jì)算,即MOVCA,@A+PC指所在地址與表格存放首地址間的距離量計(jì)算,并需要一條加法指令A(yù)DD進(jìn)行地址調(diào)整(關(guān)于ADD指令將在2.3.2節(jié)介紹)。偏移量計(jì)算公式為:

偏移量=表首地址-(MOVC指令所在地址+1)

例2:仍以例1外部ROM/EPROM2000H單元開始存放0~9的平方值,以PC作為基址寄存器進(jìn)行查表。解:設(shè)MOVC指令所在地址(PC)=1FF0H,則偏移量=2000H-(1FF0H+1)=0FH

相應(yīng)的程序如下:MOVA,#09H;(A)←09H,7409ADDA,#0FH;地址調(diào)整,240FMOVCA,@A+PC;(A)←((A)+(PC)+1),83

執(zhí)行結(jié)果為:(PC)=1FF1H,(A)=51H。4.數(shù)據(jù)交換指令數(shù)據(jù)傳送類指令一般都用來將操作數(shù)自源地址傳送到目的地址,指令執(zhí)行后,源地址的操作數(shù)不變,目的地址的操作數(shù)則修改為源地址的操作數(shù)。而數(shù)據(jù)交換指令其數(shù)據(jù)作雙向傳送,涉及傳送的雙方互為源地址、目的地址,指令執(zhí)行后各方的操作數(shù)都修改為另一方的操作數(shù)。因此,兩操作數(shù)均未沖掉、丟失。數(shù)據(jù)交換類指令共有如下5條指令:XCHA,direct;(A)(direct),C5directXCHA,@Ri;(A)((Ri)),C6~C7XCHA,Rn;(A)(Rn),C8~CFXCHDA,@Ri;(A3~0)((Ri)3~0),D6~D7SWAPA;(A7~4)(A3~0),C4

例3:設(shè)(R0)=30H,(30H)=4AH,(A)=28H,則:

執(zhí)行XCHA,@R0;結(jié)果為:(A)=4AH,(30H)=28H

執(zhí)行XCHDA,@R0;結(jié)果為:(A)=2AH,(30H)=48H

執(zhí)行SWAPA;結(jié)果為:(A)=82H5.堆棧操作類指令堆棧操作有進(jìn)棧和出棧操作,即壓入和彈出數(shù)據(jù),常用于保存或恢復(fù)現(xiàn)場(chǎng)。該類指令共有如下兩條指令:(SP)←(SP)+1((SP))←(direct)(direct)←((SP))(SP)←(SP)-1C0directPUSHdirectPOPdirectD0direct

例4:若在外部ROM/EPROM中2000H單元開始依次存放0~9的平方值,數(shù)據(jù)指針(DPTR)=3A00H,用查表指令取出2003H單元的數(shù)據(jù)后,要求保持DPTR中的內(nèi)容不變。完成以上功能的程序如下:MOVA,#03H;(A)←03H,7403PUSHDPH;保護(hù)DPTR高8位入棧,C083PUSHDPL;保護(hù)DPTR低8位入棧,C082MOVDPTR,#2000H;(DPTR)←2000H,902000MOVCA,@A+DPTR;(A)←(2000H+03H),93POPDPL;彈出DPTR低8位,D082POPDPH;彈出DPTR高8位,(先進(jìn)后出),832.3.2算術(shù)運(yùn)算類指令算術(shù)運(yùn)算類指令共有24條,可分為加法、帶進(jìn)位加法、帶借位減法、加1減1,乘除及十進(jìn)制調(diào)整指令共6組。它主要完成加、減、乘、除四則運(yùn)算,以及增量、減量和二—十進(jìn)制調(diào)整操作,對(duì)8位無符號(hào)數(shù)可進(jìn)行直接運(yùn)算;借助溢出標(biāo)志,可對(duì)帶符號(hào)數(shù)進(jìn)行2的補(bǔ)碼運(yùn)算;借助進(jìn)位標(biāo)志,可進(jìn)行多字節(jié)加減運(yùn)算,也可以對(duì)壓縮BCD碼(即單字節(jié)中存放兩位BCD碼)進(jìn)行運(yùn)算。1.加法指令加法指令共有如下4條指令,操作數(shù)助記符為ADD。

ADDA,#data;(A)←(A)+#data,24dataADDA,direct;(A)←(A)+(direct),25directADDA,@Ri;(A)←(A)+((Ri)),26~27ADDA,Rn;(A)←(A)+(Rn),28~2F

這4條指令使得累加器A可以和內(nèi)部RAM的任何一個(gè)單元的內(nèi)容進(jìn)行相加,也可以和一個(gè)8位立即數(shù)相加,相加結(jié)果存放在A中。無論是哪一條加法指令,參加運(yùn)算的都是兩個(gè)8位二進(jìn)制數(shù)。對(duì)用戶來說,這些8位數(shù)可當(dāng)作無符號(hào)數(shù)(0~255),也可以當(dāng)作帶符號(hào)數(shù)(-128~+127),即補(bǔ)碼數(shù)。例如:對(duì)于二進(jìn)制數(shù)11010011,用戶可認(rèn)為它是無符號(hào)數(shù),即為十進(jìn)制數(shù)211,也可以認(rèn)為它是帶符號(hào)數(shù),即為十進(jìn)制負(fù)數(shù)-45。但計(jì)算機(jī)在作加法運(yùn)算時(shí),總按以下規(guī)定進(jìn)行:(1)在求和時(shí),總是把操作數(shù)直接相加,而無須任何變換。例如,若A=11010011B,R1=11101000B,執(zhí)行指令A(yù)DDA,R1時(shí),其算式表達(dá)為:11010011+11101000110111011

相加后(A)=10111011B。若認(rèn)為是無符號(hào)相加,則A的值代表十進(jìn)制數(shù)187;若認(rèn)為是帶符號(hào)補(bǔ)碼數(shù)相加,則A的值為十進(jìn)制負(fù)數(shù)-69。

(2)在確定相加后進(jìn)位標(biāo)志CY的值時(shí),總是把兩個(gè)操作數(shù)作為無符號(hào)數(shù)直接相加而得出進(jìn)位CY值。如上例中,相加后CY=1。若為無符號(hào)數(shù)相加CY代表十進(jìn)制數(shù)256,但若是兩個(gè)帶符號(hào)數(shù)相加,CY沒有意義。

(3)在確定相加后溢出標(biāo)志OV的值時(shí),計(jì)算機(jī)總是把操作數(shù)當(dāng)作帶符號(hào)數(shù)來對(duì)待。在作加法運(yùn)算時(shí),一個(gè)正數(shù)和一個(gè)負(fù)數(shù)相加是不可能產(chǎn)生溢出的,只有兩個(gè)同符號(hào)數(shù)相加才有可能產(chǎn)生溢出,表示運(yùn)算結(jié)果出錯(cuò)。(4)加法指令還會(huì)影響半進(jìn)位標(biāo)志和奇偶標(biāo)志P。在上述例子中,由于D3相加對(duì)D4沒有進(jìn)位,所以AC=0,而由于運(yùn)算結(jié)果A中1的數(shù)目為偶數(shù),故P=0。例如:設(shè)(A)=49H,(R0)=6BH,

執(zhí)行指令:ADDA,R0;(A)←(A)+(R0),28

結(jié)果為:(A)=B4H,OV=1,CY=0,AC=1,P=0。2.帶進(jìn)位加法指令帶進(jìn)位加法指令有如下4條指令,其助記符為ADDC。ADDCA,#data;(A)←(A)+(CY)+#data,34dataADDCA,direct;(A)←(A)+(CY)+(direct),35directADDCA,@Ri;(A)←(A)+(CY)+((Ri)),36~37ADDCA,Rn;(A)←(A)+(CY)+(Rn),38~3F

例如:設(shè)(A)=C3H,數(shù)據(jù)指針低位(DPL)=ABH,CY=1

執(zhí)行指令:ADDCA,DPL;(A)←(A)+(CY)+(DPL),3582

結(jié)果為:(A)=6FH,CY=1,OV=1,AC=0,P=0。

例5:雙字節(jié)無符號(hào)數(shù)加法(R0R1)+(R2R3)→(R4R5)R0、R2、R4存放16位數(shù)的高字節(jié),R1、R3、R5存放低字節(jié)。由于不存在16位數(shù)加法指令,所以只能先加低8位,后加高8位,而在加高8位時(shí)要連低8位相加時(shí)產(chǎn)生的進(jìn)位一起相加。假設(shè)其和不超過16位,其編程如下:MOVA,R1;取被加數(shù)低字節(jié),E9ADDA,R3;低字節(jié)相加,2BMOVR5,A;保存和低字節(jié),FDMOVA,R0;取高字節(jié)被加數(shù),E8ADDCA,R2;兩高字節(jié)之和加低位進(jìn)位,3AMOVR4,A;保存和高字節(jié),FC3.帶借位減法帶借位減法指令有如下4條指令,其助記符為SUBB。SUBBA,#data;(A)←(A)-(CY)-#data,94dataSUBBA,direct;(A)←(A)-(CY)-(direct),95directSUBBA,@Ri;(A)←(A)-(CY)-((Ri)),96~97SUBBA,Rn;(A)←(A)-(CY)-(Rn),98~9F

由于減法指令只有帶借位減法指令,因此,若要進(jìn)行不帶借位位的減法操作,需先清借位位,即置CY=0。清CY有專門的指令,它屬于位操作類指令(詳見3.3.5節(jié)),指令為:CLRC;(CY)←0,C3

例如:設(shè)(A)=52H,(R0)=B4H

執(zhí)行指令:CLRC;(CY)←0,C3SUBBA,R0;(A)←(A)-(CY)-(R0),98

結(jié)果為:(A)=9EH,CY=1,AC=1,OV=1,P=1。

例6:雙字節(jié)無符號(hào)數(shù)相減(R0R1)-(R2R3)→(R4R5)。R0、R2、R4存放16位數(shù)的高字節(jié),R1、R3、R5存放低字節(jié),先減低8位,后減高8位和低位減借位。由于低位開始減時(shí)沒有借位,所以要先清零。其編程如下:MOVA,R1;取被減數(shù)低字節(jié),E9CLRC;清借位位,C3SUBBA,R3;低字節(jié)相減,9BMOVR5,A;保存差低字節(jié),FDMOVA,R0;取被減數(shù)高字節(jié),E8SUBBA,R2;兩高字節(jié)差減低位借位,9AMOVR4,A;保存差高字節(jié),FC4.加1,減1指令加1指令共有如下5條指令,助記符為INC。INCA;(A)←(A)+1,04INCdirect;(direct)←(direct)+1,05directINC@Ri;((Ri))←((Ri))+1,06~07INCRn;(Rn)←(Rn)+1,08~0FINCDPTR;(DPTR)←(DPTR)+1,A3減1指令有如下4條指令,助記符為DEC。DECA;(A)←(A)-1,14DECdirect;(direct)←(direct)-1,15directDEC@Ri;((Ri))←((Ri))-1,16~17DECRn;(Rn)←(Rn)-1,18~1F

例如:設(shè)(R0)=7EH,(7EH)=FFH,(7FH)=38H,(DPTR)=10FEH,分析逐條執(zhí)行下列指令后各單元的內(nèi)容。

INC@R0;使7EH單元內(nèi)容由FFH變?yōu)?0HINCR0;使R0的內(nèi)容由7EH變?yōu)?FHINC@R0;使7FH單元內(nèi)容由38H變?yōu)?9HINCDPTR;使DPL為FFH,DPH不變

INCDPTR;使DPL為00H,DPH為11HINCDPTR;使DPL為01H,DPH不變5.乘、除法指令乘、除法指令為單字節(jié)4周期指令,在指令執(zhí)行周期中是最長(zhǎng)的兩條指令。

(1)乘法指令MULAB(B)←((A)×(B))15~8,(A)←((A)×(B))7~0(CY)←0A4

乘法指令的功能是把累加器A和寄存器B中的兩個(gè)8位無符號(hào)數(shù)相乘,將乘積16位數(shù)中的低8位存放在A中,高8位存放在B中。若乘積大于FFH(255),則溢出標(biāo)志OV置1,否則OV清0。乘法指令執(zhí)行后進(jìn)位標(biāo)志CY總是清零,即CY=0。另外,乘法指令本身只能進(jìn)行兩個(gè)8位數(shù)的乘法運(yùn)算,要進(jìn)行多字節(jié)乘法還需編寫相應(yīng)的程序。例如:若(A)=4EH(78),(B)=5DH(93)執(zhí)行指令:MULAB

結(jié)果為:積為(BA)=1C56H(7254)>FFH(255),(A)=56H,(B)=1CH,OV=1,CY=0,P=0。

例7:利用單字節(jié)乘法指令進(jìn)行雙字節(jié)數(shù)乘以單字節(jié)數(shù)運(yùn)算。若被乘數(shù)為16位無符號(hào)數(shù),地址為M1和M1+1(低位先、高位后),乘數(shù)為8位無符號(hào)數(shù),地址為M2,積存入R2、R3和R4三個(gè)寄存器中。

(M1+1)(M1)×(M2)R3R4

+BAR2R3R4

參考程序如下:MOVR0,#M1;被乘數(shù)地址存于R0MOVA,@R0;取16位數(shù)低8位

MOVB,M2;取乘數(shù)

MULAB;(M1)×(M2)MOVR4,A;存積低8位

MOVR3,B;暫存(M1)×(M2)高8位

INCR0;指向16位數(shù)高8位

MOVA,@R0;取被乘數(shù)高8位MOVB,M2;取乘數(shù)

MULAB;(M1+1)×(M2)ADDA,R3;(A)+(R3)得(積)15~8MOVR3,A;(積)15~8存R3MOVA,B;積最高8位送AADDCA,#00H;積最高8位+CY得(積)23~16MOVR2,A;(積)23~16存入R2

若上述程序執(zhí)行前:(M1+1)=ABH,(M1)=CDH,(M2)=64H,則執(zhí)行后:(R2)=43H,(R3)=1CH,(R4)=14H。(2)除法指令

(A)←(A)÷(B)之商,(B)←(A)÷(B)之余數(shù)

(CY)←0,(OV)←0

除法指令的功能是把累加器A中的8位無符號(hào)整數(shù)除以寄存器B中的8位無符號(hào)整數(shù),所得商存于累加器A中,余數(shù)存于寄存器B中,進(jìn)位標(biāo)志CY和溢出標(biāo)志OV均被清零。若除數(shù)B中的內(nèi)容為0時(shí),除法運(yùn)算沒有意義,結(jié)果為不定值,此時(shí)溢出標(biāo)志OV被置為1,即OV=1,而CY仍為0。DIVAB;,84

例8:利用除法指令把累加器A中的8位二進(jìn)制數(shù)轉(zhuǎn)換為3位BCD數(shù),并以壓縮形式存放在地址M1、M2單元中。解:累加器A中的8位二進(jìn)制數(shù),先對(duì)其除以100(64H),商數(shù)即為十進(jìn)制的百位數(shù);余數(shù)部分再除以10(0AH),所得商數(shù)和余數(shù)分別為十進(jìn)制十位數(shù)和個(gè)位數(shù),即得到3位BCD數(shù)。百位數(shù)放在M1中,十位、個(gè)位數(shù)壓縮BCD數(shù)放在M2中,十位與個(gè)位數(shù)的壓縮BCD數(shù)的存放是通過SWAP和ADD指令實(shí)現(xiàn)的。參考程序如下:MOVB,#64H;除數(shù)100送BDIVAB;得百位數(shù)MOVM1,A;百位數(shù)存于M1中MOVA,#0AH;取除數(shù)10XCHA,B;上述余數(shù)與除數(shù)交換DIVAB;得十位數(shù)和個(gè)位數(shù)SWAPA;十位數(shù)存于A的高4位ADDA,B;組成壓縮BCD數(shù)MOVM2,A;十、個(gè)位壓縮BCD數(shù)存M2

若上述程序執(zhí)行前:(A)=A8H(168),則執(zhí)行后:(M1)=(01)BCD,(M2)=(68)BCD。6.十進(jìn)制調(diào)整指令若(A)3~0>9或(AC)=1,則(A)3~0←(A)3~0+06H

DAA

若(A)7~4>9或(CY)=1,則(A)7~4←(A)7~4+06H,D4

十進(jìn)制調(diào)整指令是一條對(duì)二—十進(jìn)制的加法進(jìn)行調(diào)整的指令。兩個(gè)壓縮BCD碼按二進(jìn)制相加,必須經(jīng)過本條指令調(diào)整后才能得到正確的壓縮BCD碼和數(shù),實(shí)現(xiàn)十進(jìn)制的加法運(yùn)算。由于指令要利用AC、CY等標(biāo)志才能起到正確的調(diào)整作用,因此它必須跟在加法ADD、ADDC指令后面方可使用。

例9:對(duì)BCD碼加法65+58=BDH,進(jìn)行十進(jìn)制調(diào)整。解:參考程序如下:

MOVA,#65H;(A)←65ADDA,#58H;(A)←(A)+58DAA;十進(jìn)制調(diào)整執(zhí)行結(jié)果:(A)=(23)BCD,(CY)=1,即:65+58=123。

0110010165+010110005810111101BD+01100110加66H調(diào)整

100100011

例10:雙字節(jié)壓縮BCD碼加法。解:設(shè)R5(高)、R4(低)為被加數(shù);R3(高)、R2(低)為加數(shù),相加和的結(jié)果存入:R6(萬)、R5(千、百)、R4(十、個(gè))。參考程序如下:MOVA,R4;被加數(shù)十位、個(gè)位送入AADDA,R2;十位、個(gè)位相加

DAA;和的十位、個(gè)位調(diào)整

MOVR4,A;和的十位、個(gè)位存入R4MOVA,R5;被加數(shù)千位、百位送入AADDCA,R3;千位、百位的和加低位進(jìn)位DAA;和的千位、百位調(diào)整

MOVR5,A;和的千位、百位存入R5MOVA,#00H;A清零

ADDCA,#00H;求和的萬位值

MOVR6,A;和的萬位存入R6

若程序執(zhí)行前:(R5)=(98)BCD,(R4)=(76)BCD,(R3)=(54)BCD,(R2)=(32)BCD,則執(zhí)行后:(R6)=(01)BCD,(R5)=(53)BCD,(R4)=(08)BCD

。

例11:利用十進(jìn)制加法調(diào)整指令DA作十進(jìn)制減法調(diào)整。解:由于DA指令不能直接對(duì)減法進(jìn)行十進(jìn)制調(diào)整,為了進(jìn)行十進(jìn)制減法運(yùn)算,只能用加減數(shù)的補(bǔ)數(shù)來進(jìn)行。兩位十進(jìn)制數(shù)是對(duì)100取補(bǔ)的,如60-30=30,也可改為補(bǔ)數(shù)相加:

60+(100-30)=130

丟掉進(jìn)位(模)100后,就得到正確的結(jié)果。

在實(shí)際運(yùn)算時(shí),由于CPU為8位,不可能用9位二進(jìn)制數(shù)表示十進(jìn)制數(shù)100,但可用8位二進(jìn)制數(shù)10011010(9AH)代替,因?yàn)檫@個(gè)二進(jìn)制數(shù)經(jīng)過十進(jìn)制調(diào)整后就是100000000。這樣十進(jìn)制無符號(hào)數(shù)的減法運(yùn)算可按以下步驟進(jìn)行:(1)求減數(shù)的補(bǔ)數(shù)(9AH-減數(shù));(2)被減數(shù)與減數(shù)的補(bǔ)數(shù)相加;(3)經(jīng)DA指令調(diào)整后就得到所求的十進(jìn)制減法運(yùn)算結(jié)果。

這里用“補(bǔ)數(shù)”而不是“補(bǔ)碼”是為了和帶符號(hào)位的補(bǔ)碼加以區(qū)別。由于現(xiàn)在操作數(shù)都是正數(shù),沒有必要再加符號(hào)位,故稱“補(bǔ)數(shù)”更為合適一些。設(shè)M1、M2、M3

分別為被減數(shù)、減數(shù)和差的符號(hào)地址,相應(yīng)的十進(jìn)制減法運(yùn)算程序如下:CLRC;CY清0MOVA,#9AH;(A)←#9AHSUBBA,M2;求減數(shù)的補(bǔ)數(shù)

ADDA,M1;加補(bǔ)數(shù)完成減法

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

MOVM3,A;差存入M3單元若程序執(zhí)行前:(M1)=(91)BCD,(M2)=(36)BCD,則程序執(zhí)行后:(M3)=(55)BCD。2.3.3邏輯運(yùn)算及移位類指令邏輯運(yùn)算及移位指令共有24條,其中邏輯指令有“與”、“或”、“異或”、累加器A清零和求反20條,移位指令4條。

1.邏輯“與”運(yùn)算指令邏輯“與”運(yùn)算指令共有如下6條,其助記符為ANL。ANLdirect,A;(direct)←(direct)∧(A),52directANLdirect,#data;(direct)←(direct)∧#data,53directdata

ANLA,#data;(A)←(A)∧#data,54dataANLA,direct;(A)←(A)∧(direct),55directANLA,@Ri;(A)←(A)∧((Ri)),56~57ANLA,Rn;(A)←(A)∧(Rn),58~5F

邏輯“與”運(yùn)算指令是將兩個(gè)指定的操作數(shù)按位進(jìn)行邏輯“與”的操作。例如:(A)=FAH=11111010B,(R1)=7FH=01111111B

執(zhí)行指令:ANLA,R1;(A)←11111010∧01111111

結(jié)果為:(A)=01111010B=7AH。

邏輯“與”ANL指令常用于屏蔽(置0)字節(jié)中某些位。若清除某位,則用“0”和該位相與;若保留某位,則用“1”和該位相與。

2.邏輯“或”運(yùn)算指令邏輯“或”運(yùn)算指令共有如下6條指令,其助記符ORL。ORLdirect,A;(direct)←(direct)∨(A),42directORLdirect,#data;(direct)←(direct)∨#data,43directdataORLA,#data;(A)←(A)∨#data,44dataORLA,direct;(A)←(A)∨(direct),45directORLA,@Ri;(A)←(A)∨((Ri)),46~47ORLA,Rn;(A)←(A)∨(Rn),48~4F

邏輯“或”指令將兩個(gè)指定的操作數(shù)按位進(jìn)行邏輯“或”操作。它常用來使字節(jié)中某些位置“1”,欲保留(不變)的位用“0”與該位相或,而欲置位的位則用“1”與該位相或。例如:若(A)=C0H,(R0)=3FH,(3F)=0FH

執(zhí)行指令:ORLA,@R0;(A)←(A)∨((R0))

結(jié)果為:(A)=CFH。

又如:根據(jù)累加器A中4~0位的狀態(tài),用邏輯與、或指令控制P1口4~0位的狀態(tài),P1口的高3位保持不變。

ANLA,#00011111B;屏蔽A的高3位

ANLP1,#11100000B;保留P1的高3位

ORLP1,A;使P14~0按A4~0置位若上述程序執(zhí)行前:(A)=B5H=10110101B,(P1)=6AH=01101010B,則執(zhí)行程序后:(A)=15H=00010101B,(P1)=75H=01110101B。3.邏輯“異或”運(yùn)算指令

“異或”運(yùn)算是當(dāng)兩個(gè)操作數(shù)不一致時(shí)結(jié)果為1,兩個(gè)操作數(shù)一致時(shí)結(jié)果為0,這種運(yùn)算也是按位進(jìn)行,共有如下6條指令,其助記符為XRL。XRLdirect,A;(direct)←(direct)(A),62directXRLdirect,#data;(direct)←(direct)#data,63dataXRLA,#data;(A)←(A)#data,64dataXRLA,direct;(A)←(A)(direct),65directXRLA,@Ri;(A)←(A)((Ri)),66←67XRLA,Rn;(A)←(A)(Rn),68←6F

邏輯“異或”指令常用來對(duì)字節(jié)中某些位進(jìn)行取反操作,欲某位取反則該位與“1”相異或;欲某位保留則該位與“0”相異或。還可利用異或指令對(duì)某單元自身異或,以實(shí)現(xiàn)清零操作。例如:若(A)=B5H=10110101B,執(zhí)行下列指令:XRLA,#0F0H;A的高4位取反,低4位保留

MOV30H,A;(30H)←(A)=45HXRLA,30H;自身異或使A清零

執(zhí)行后結(jié)果:(A)=00H。

以上邏輯“與”、“或”、“異或”各6條指令有如下共同的特點(diǎn):

(1)邏輯“與”ANL、“或”O(jiān)RL、“異或”XRL運(yùn)算指令除邏輯操作功能不同外,三者的尋址方式相同,指令字節(jié)數(shù)相同,機(jī)器周期數(shù)相同。

(2)ANL、ORL、XRL的前兩條指令的目的操作數(shù)均為直接地址方式,可很方便地對(duì)內(nèi)部RAM的00H~FFH任一單元或特殊功能寄存器的指定位進(jìn)行清零、置位、取反、保持等邏輯操作。(3)ANL、ORL、XRL的后4條指令,其邏輯運(yùn)算的目的操作數(shù)均在累加器A中,且邏輯運(yùn)算結(jié)果保存在A中。

4.累加器A清零與取反指令

CLRA;(A)←00H,E4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論