單片機(jī)應(yīng)用技術(shù)C語(yǔ)言版MCS51指令系統(tǒng)及匯編課件_第1頁(yè)
單片機(jī)應(yīng)用技術(shù)C語(yǔ)言版MCS51指令系統(tǒng)及匯編課件_第2頁(yè)
單片機(jī)應(yīng)用技術(shù)C語(yǔ)言版MCS51指令系統(tǒng)及匯編課件_第3頁(yè)
單片機(jī)應(yīng)用技術(shù)C語(yǔ)言版MCS51指令系統(tǒng)及匯編課件_第4頁(yè)
單片機(jī)應(yīng)用技術(shù)C語(yǔ)言版MCS51指令系統(tǒng)及匯編課件_第5頁(yè)
已閱讀5頁(yè),還剩118頁(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)介

單片機(jī)應(yīng)用技術(shù)

(C語(yǔ)言版)

第3章MCS-51指令系統(tǒng)及

匯編程序設(shè)計(jì)9/19/20231單片機(jī)應(yīng)用技術(shù)

(C語(yǔ)言版)

第3章MCS-51指令第3章MCS-51指令系統(tǒng)

及匯編程序設(shè)計(jì)目錄3.1基本概念3.2MCS-51單片機(jī)指令系統(tǒng)3.3匯編語(yǔ)言程序格式及偽指令3.4匯編語(yǔ)言程序設(shè)計(jì)方法9/19/20232第3章MCS-51指令系統(tǒng)

及匯編程序設(shè)計(jì)目錄8/6/3.1基本概念主要內(nèi)容3.1.1匯編語(yǔ)言格式3.1.2指令中常用符號(hào)3.1.3尋址方式9/19/202333.1基本概念主要內(nèi)容8/6/202333.1.1匯編語(yǔ)言格式

一、指令和指令系統(tǒng)

指令:是計(jì)算機(jī)中CPU根據(jù)人的意圖來(lái)執(zhí)行某種操作的命令。

指令系統(tǒng):是一臺(tái)計(jì)算機(jī)(CPU)所能執(zhí)行的全部指令的集合。

9/19/202343.1.1匯編語(yǔ)言格式 一、指令和指令系統(tǒng)8/6/202

二、程序和程序設(shè)計(jì)語(yǔ)言

程序:人們編寫(xiě)的、使計(jì)算機(jī)完成某項(xiàng)工作的指令序列,稱(chēng)為程序。

程序設(shè)計(jì)語(yǔ)言:編寫(xiě)程序的一整套規(guī)則、方法。

程序設(shè)計(jì)語(yǔ)言分類(lèi):分為機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言等。9/19/20235 二、程序和程序設(shè)計(jì)語(yǔ)言8/6/20235

三、機(jī)器語(yǔ)言

機(jī)器語(yǔ)言:用二進(jìn)制編碼表示每條指令,是計(jì)算機(jī)能夠直接識(shí)別和執(zhí)行的語(yǔ)言。

目標(biāo)程序:用機(jī)器語(yǔ)言編寫(xiě)的程序。 例如“13+25”,在MCS-51中的機(jī)器碼為 0111010000001101 0010010000011001

9/19/20236 三、機(jī)器語(yǔ)言8/6/20236

四、匯編語(yǔ)言:用助記符、符號(hào)、數(shù)字等表示指令的程序語(yǔ)言。

例如,上面的“13+25”的例子可寫(xiě)成:匯編語(yǔ)言程序

機(jī)器語(yǔ)言代碼MOVA,#0DH 74H0DHADDA,#19H 24H19H

相對(duì)于機(jī)器語(yǔ)言來(lái)說(shuō),匯編語(yǔ)言容易理解和記憶。

匯編語(yǔ)言和機(jī)器語(yǔ)言都屬于低級(jí)語(yǔ)言。9/19/20237 四、匯編語(yǔ)言:用助記符、符號(hào)、數(shù)字等表示指令的程序語(yǔ)言。8

五、MCS-51匯編語(yǔ)言指令格式

其一般格式如下:[標(biāo)號(hào):]操作碼[目的操作數(shù)][,源操作數(shù)][;注釋] 方括號(hào)中的內(nèi)容可以沒(méi)有,即可以沒(méi)有標(biāo)號(hào)、操作數(shù)和注釋?zhuān)辽僖胁僮鞔a。9/19/20238 五、MCS-51匯編語(yǔ)言指令格式8/6/20238 例如:

START: MOV A,#23H;23H→A “START”為標(biāo)號(hào) “MOV”為操作碼 “A,#23H”為操作數(shù) “23H→A”為注釋9/19/20239 例如:8/6/20239 3.1.2指令中常用符號(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:

8位片內(nèi)RAM單元地址,含SFR。

addr16:

程序存儲(chǔ)空間的16位地址

9/19/202310 3.1.2指令中常用符號(hào)8/6/20231

rel:補(bǔ)碼形式的8位地址偏移量。地址偏移量,在-128~+127。

bit:片內(nèi)RAM或SFR中的直接尋址位地址

/bit——指定位求反,再參與邏輯操作,但取反后不影響該位的原值

@:間址寄存器的前綴符號(hào),表示間接尋址。9/19/202311 rel:補(bǔ)碼形式的8位地址偏移量。地址偏移量,在-128

(×):

表示×中的內(nèi)容

((×)): 表示由×中指向的地址單元中的內(nèi)容

←、→:

指令操作流程,將內(nèi)容送到箭頭指向的地方$——當(dāng)前指令地址

MOV A,#23H;23H→A9/19/202312 (×): 表示×中的內(nèi)容8/6/2023123.1.3尋址方式

主要內(nèi)容1立即數(shù)尋址2直接尋址3寄存器尋址4寄存器間接尋址5變址尋址6 相對(duì)尋址7位尋址9/19/2023133.1.3尋址方式主要內(nèi)容8/6/202313

尋址方式:就是指CPU尋找參與運(yùn)算的(源)操作數(shù)的方式。(尋找操作數(shù)所在單元地址的方式。)

7種尋址方式:立即數(shù)尋址、直接尋址、寄存器尋址、寄存器間接尋址、變址尋址、相對(duì)尋址和位尋址。9/19/202314 尋址方式:就是指CPU尋找參與運(yùn)算的(源)操作數(shù)的方式1立即數(shù)尋址

立即數(shù)尋址也叫立即尋址、常數(shù)尋址。其操作數(shù)就在指令中,是指令的一部分,緊跟在操作碼后面,用“#”符號(hào)作前綴,以區(qū)別地址。例如: MOVA,#2CH;2CH→A 表示把2CH這個(gè)數(shù)送給累加器A9/19/2023151立即數(shù)尋址 立即數(shù)尋址也叫立即尋址、常數(shù)尋址。其操作

立即數(shù)也可以是16位的,如:

MOV DPTR,#1234H

立即數(shù)的低8位送給了DPL,高8位送給了DPH。

9/19/202316 立即數(shù)也可以是16位的,如:8/6/2023162直接尋址

直接尋址:是指操作數(shù)存放在片內(nèi)RAM中,指令中給出操作數(shù)的地址。例如: MOV A,30H ;(30H)→A

說(shuō)明:

(1)直接尋址方式可以訪問(wèn)片內(nèi)RAM的低128字節(jié)和所有的特殊功能寄存器。 低128BRAM

data區(qū)特殊功能寄存器80HFFH00H7FH9/19/2023172直接尋址 直接尋址:是指操作數(shù)存放在片內(nèi)RAM中,指對(duì)于特殊功能寄存器,既可以使用地址,也可以使用SFR名(P21)。例如: MOV A,P1

MOV A,90H

9/19/202318對(duì)于特殊功能寄存器,既可以使用地址,也可以使用SFR(2)直接尋址不能夠訪問(wèn)片內(nèi)RAM的高128字節(jié)(增強(qiáng)型),高128字節(jié)只能夠間接訪問(wèn)。低128BRAM

data區(qū)高128BRAMidata區(qū)特殊功能寄存器00H7FH80HFFH80HFFH增強(qiáng)型單片機(jī)片內(nèi)RAM9/19/202319(2)直接尋址不能夠訪問(wèn)片內(nèi)RAM的高128字節(jié)(增強(qiáng)型),3寄存器尋址

寄存器尋址:就是由指令指出寄存器組R0~R7中某一個(gè)或寄存器A、B、DPTR的內(nèi)容作為操作數(shù)。9/19/2023203寄存器尋址 寄存器尋址:就是由指令指出寄存器組R0~9/19/2023218/6/202321例如: MOVA,R7 ;(R7)→A MOV 36H,A ;(A)→36H ADD A,R0 ;(A)+(R0)→A 對(duì)于工作寄存器組的操作,必須要考慮PSW中RS1、RS0的值(P22),確定當(dāng)前使用的是哪一組寄存器以及它們的實(shí)際地址。

9/19/202322例如:8/6/2023224寄存器間接尋址

寄存器間接尋址:由指令指出某一寄存器的內(nèi)容作為操作數(shù)地址的尋址方式。

存放地址的寄存器稱(chēng)為間址寄存器,在指令中,在寄存器前面加前綴“@”表示。 MCS-51單片機(jī)規(guī)定,使用Ri(i=0、1,即指R0、R1)、SP和DPTR作間址寄存器。 寄存器間接尋址有以下幾種情況。9/19/2023234寄存器間接尋址 寄存器間接尋址:由指令指出某一寄存器

一、使用Ri間接訪問(wèn)片內(nèi)RAM

間接訪問(wèn)的范圍:256字節(jié)(包括低128字節(jié)和高128字節(jié)),但不包括特殊功能寄存器。例如: MOV A,@Ri ;((Ri))→A MOV @Ri,A ;(A)→(Ri)

((Ri)):表示Ri中內(nèi)容為地址的數(shù)據(jù)。 操作過(guò)程如圖3-3所示。9/19/202324 一、使用Ri間接訪問(wèn)片內(nèi)RAM8/6/202324圖3-3間接尋址(MOVA,@R0)示意圖②62HA::62H→98H—

①98HR0::片內(nèi)RAMR0的內(nèi)容為地址,將該地址中的內(nèi)容傳送給累加器A。9/19/202325圖3-3間接尋址(MOVA,@R0)示意圖②6

二、使用DPTR間接訪問(wèn)片外RAM

間接訪問(wèn)的范圍:片外RAM的64KB全空間。其指令也是只有兩條: MOVX A,@DPTR ;((DPTR))→A MOVX@DPTR,A ;(A)→(DPTR) DPTR為16位地址。9/19/202326 二、使用DPTR間接訪問(wèn)片外RAM8/6/2023265變址尋址(訪問(wèn)空間為ROM)

變址尋址:基址加變址的間接尋址。指令中給出存放基址和變址的寄存器。

基地址寄存器:DPTR或PC;

變址寄存器:累加器A。

也在地址寄存器前面加上前綴“@”。例如: MOVC A,@A+DPTR ;((A)+(DPTR))→A 該指令的操作過(guò)程如圖3-4所示。

DPTR內(nèi)容與A中內(nèi)容相加作為地址,將該地址中的內(nèi)容傳送給A。9/19/2023275變址尋址(訪問(wèn)空間為ROM) 變址尋址:基址加變址的MOVCA,@A+DPTR ;((A)+(DPTR))→A9/19/202328MOVCA,@A+DPTR ;((A)+(DPTR))→

變址尋址的空間為程序存儲(chǔ)器

尋址范圍: 若使用DPTR為基地址寄存器,尋址范圍為64KB; 若使用PC為基地址寄存器,尋址空間在PC之后256字節(jié)范圍內(nèi)。9/19/202329 變址尋址的空間為程序存儲(chǔ)器8/6/202329例:已知片外ROM中的0302H單元中有一個(gè)常數(shù)x,現(xiàn)欲把它取到累加器A中,請(qǐng)寫(xiě)出程序。 MOVDPTR,#0300H MOVA,#02H MOVCA,@A+DPTR

問(wèn):MOVCA,@0302H是否對(duì)?9/19/202330例:已知片外ROM中的0302H單元中有一個(gè)常數(shù)x,現(xiàn)欲把它

6相對(duì)尋址(用于跳轉(zhuǎn)指令)

相對(duì)尋址:是以當(dāng)前程序計(jì)數(shù)器PC值為基地址,加上指令中給出的偏移量rel,得到目標(biāo)位置的地址。即: 目標(biāo)地址=PC+rel∴ rel=目標(biāo)地址-PC

偏移量rel為8位補(bǔ)碼,其值為-128~+127。rel<0程序向回跳轉(zhuǎn);rel>0,程序向前跳轉(zhuǎn)。9/19/202331 6相對(duì)尋址(用于跳轉(zhuǎn)指令)8/6/202331 例如: SJMP54H

說(shuō)明: (1)在實(shí)際編程中,不需要計(jì)算rel,rel由編譯器自動(dòng)計(jì)算;

(2)當(dāng)跳轉(zhuǎn)范圍超出了rel范圍,編譯器會(huì)提示,對(duì)程序做適當(dāng)調(diào)整即可。9/19/202332 例如:8/6/2023327位尋址

位尋址:是指操作數(shù)是二進(jìn)制位、位地址

位操作數(shù)地址范圍:片內(nèi)RAM中20H~2FH,SFR中可以按位尋址的位。 例如: SETB 3DH9/19/2023337位尋址 位尋址:是指操作數(shù)是二進(jìn)制位、位地址8/6/

位地址的3種表示方式:

1)直接位地址(00H~7FH)。如32H

2)字節(jié)地址帶位號(hào)。如20H.1,表示20H單元的第1位。

3)特殊功能寄存器名帶位號(hào)。如P1.7,表示P1口的第7位。9/19/202334 位地址的3種表示方式:8/6/2023349/19/2023358/6/2023353.2MCS-51單片機(jī)指令系統(tǒng)

主要內(nèi)容3.2.1數(shù)據(jù)傳送與交換指令3.2.2算術(shù)操作類(lèi)指令3.2.3邏輯運(yùn)算指令3.2.4控制轉(zhuǎn)移類(lèi)指令3.2.5位操作指令9/19/2023363.2MCS-51單片機(jī)指令系統(tǒng)主要內(nèi)容8/6/202指令概述(P266附錄C) MCS-51單片機(jī)指令系統(tǒng)有111條指令,分類(lèi)如下。

1、按字節(jié)分類(lèi)

單字節(jié)指令:49條; 雙字節(jié)指令:45條

三字節(jié)指令:17條

2、按執(zhí)行時(shí)間分類(lèi)

單周期指令:64條; 雙周期指令:45條

四周期指令:2條(乘、除指令)9/19/202337指令概述(P266附錄C)8/6/202337

3、按功能分類(lèi)(分為5大類(lèi)) 數(shù)據(jù)傳送指令:29條 算術(shù)運(yùn)算指令:24條 邏輯運(yùn)算指令:24條 控制程序轉(zhuǎn)移指令:17條 位操作指令:17條

MCS-51指令沒(méi)有復(fù)雜的尋址方式,并且助記符只有42種。

9/19/202338 3、按功能分類(lèi)(分為5大類(lèi))8/6/2023383.2.1數(shù)據(jù)傳送指令 數(shù)據(jù)傳送是使用最頻繁的一類(lèi)指令。 所謂傳送,就是把源地址單元的內(nèi)容傳送到目的地址單元中去,而源地址單元中的內(nèi)容不變。

數(shù)據(jù)傳送指令可以分為三組:普通傳送指令、數(shù)據(jù)交換指令、堆棧操作指令。

9/19/2023393.2.1數(shù)據(jù)傳送指令 數(shù)據(jù)傳送是使用最頻繁的一類(lèi)指令

一、普通傳送指令

普通傳送指令以助記符MOV為基礎(chǔ),分為: 片內(nèi)數(shù)據(jù)存儲(chǔ)器傳送指令,用MOV 片外數(shù)據(jù)傳送指令,用MOVX 程序存儲(chǔ)器傳送指令,用MOVC9/19/202340 一、普通傳送指令8/6/202340

1、片內(nèi)數(shù)據(jù)存儲(chǔ)器傳送指令MOV

格式:

MOV目的操作數(shù),源操作數(shù)

源操作數(shù):可以是A、Rn、@Ri、direct、#data

目的操作數(shù):可以是A、Rn、@Ri、direct、DPTR 以目的操作數(shù)的不同可以分為五個(gè)小組,共16條指令。

9/19/202341 1、片內(nèi)數(shù)據(jù)存儲(chǔ)器傳送指令MOV8/6/202341

(1)以A為目的操作數(shù)

MOVA,Rn

;(Rn)→A

MOV A,direct

;(direct)→A

MOV A,@Ri

;((Ri))→A

MOV A,#data

;data→A

工作寄存器Rn:R0~R7

Ri間接尋址寄存器:R0或R1

本組4條指令都影響PSW中的P標(biāo)志位 指令字節(jié)數(shù):1、2、1、29/19/202342 (1)以A為目的操作數(shù)8/6/202342

(2)以Rn為目的操作數(shù)

MOV Rn,A ;(A)→Rn

MOV Rn,direct ;(direct)→Rn

MOV Rn,#data ;data→Rn

注意:MOVRn,Rn(錯(cuò)誤)(P32(2)①)本組指令都不影響PSW中的標(biāo)志位。 指令字節(jié)數(shù):1、2、2

9/19/202343 (2)以Rn為目的操作數(shù)8/6/202343

(3)以直接地址direct為目的操作數(shù)

MOV direct,A ;(A)→direct

MOV direct,Rn ;(Rn)→direct

MOV direct2,direct1

;(direct1)→direct2

MOV direct,@Ri ;((Ri))→direct

MOV direct,#data ;data→direct

本組指令都不影響PSW中的標(biāo)志位 指令字節(jié)數(shù):2、2、3、2、3

9/19/202344 (3)以直接地址direct為目的操作數(shù)8/6/2023

(4)以間接地址@Ri為目的操作數(shù)

MOV @Ri,A ;(A)→(Ri)

MOV @Ri,direct ;(direct)→(Ri)

MOV @Ri,#data ;data→(Ri)

本組指令都不影響PSW中的標(biāo)志位。

9/19/202345 (4)以間接地址@Ri為目的操作數(shù)8/6/202345

(5)以DPTR為目的操作數(shù)

MOV DPTR,#data16

;dataH→DPH,dataL→DPL

9/19/202346 (5)以DPTR為目的操作數(shù)8/6/202346例設(shè)片內(nèi)RAM中(30H)=40H,(40H)=10H,分析以下程序執(zhí)行后各單元及寄存器中的內(nèi)容。

MOV R0,#30H

;30H→R0

MOV A,@R0

;((R0))→A

MOV R1,A

;(A)→R1

MOV B,@R1

;((R1))→B

MOV 10H,#20H ;20H→10H 執(zhí)行上述指令后的結(jié)果為:

(R0)=30H, (R1)=(A)=40H, (B)=10H, (10H)=20H9/19/202347例設(shè)片內(nèi)RAM中(30H)=40H,(40H)=10H,

2、片外數(shù)據(jù)存儲(chǔ)器傳送指令MOVX(P31)

MOVX A,@Ri ;((Ri))→A

MOVX @Ri,A ;A→(Ri)

MOVX A,@DPTR ;((DPTR))→A

MOVX @DPTR,A ;A→(DPTR)

第1和第2條指令用于訪問(wèn)外部RAM的低地址區(qū),地址范圍:0000H-00FFH。第3和第4條指令用于訪問(wèn)外部RAM的64K字節(jié)區(qū),地址范圍:0000H-FFFFH。

9/19/202348 2、片外數(shù)據(jù)存儲(chǔ)器傳送指令MOVX(P31)8/6/20注:(1)四條指令都為寄存器間接尋址(2)四條指令都是通過(guò)累加器A進(jìn)行數(shù)據(jù)傳輸?shù)模≒3211②④⑧)9/19/202349注:(1)四條指令都為寄存器間接尋址8/6/202349

設(shè)片外RAM空間(0203H)=6FH,分析執(zhí)行下面指令后的結(jié)果。

MOV DPTR,#0203H

MOVX A,@DPTR

MOV 30H,A

MOV A,#0FH

MOVX @DPTR,A

執(zhí)行結(jié)果為:(DPTR)=0203H, (30H)=6FH,(0203H)=(A)=0FH9/19/202350 例設(shè)片外RAM空間(0203H)=6FH,分析執(zhí)行下

3、程序存儲(chǔ)器傳送指令MOVC(屬于變址尋址)(P31) 該類(lèi)指令又稱(chēng)為查表指令,經(jīng)常用于查表。這類(lèi)指令只有以下2條單字節(jié)指令。

MOVC A,@A+DPTR;((A)+(DPTR))→A

MOVC A,@A+PC ;((A)+(PC))→A

前者叫遠(yuǎn)程查表指令(64KB全空間),后者叫近程查表指令(PC處256B)。(P3211③)9/19/202351 3、程序存儲(chǔ)器傳送指令MOVC(屬于變址尋址)(P31)

二、數(shù)據(jù)交換指令

數(shù)據(jù)交換指令要求第一個(gè)操作數(shù)必須為累加器A。 共5條指令,分為字節(jié)交換和半字節(jié)交換兩個(gè)類(lèi)型。

9/19/202352 二、數(shù)據(jù)交換指令8/6/202352

1、字節(jié)交換指令(P31底)

XCH A,Rn ;(A)←→(Rn)

XCH A,direct ;(A)←→(direct)

XCH A,@Ri ;(A)←→((Ri))

(P3211⑥)XCHR1,R2

2、低半字節(jié)交換指令(低四位交換)(P32)

XCHD A,@Ri;(A0~3)←→((Ri)0~3)

3、A自身半字節(jié)交換指令(P36)

SWAP A ;(A0~3)←→(A4~7)

9/19/202353 1、字節(jié)交換指令(P31底)8/6/202353

例設(shè)(R0)=30H,(30H)=4AH,(A)=28H,則分別執(zhí)行“XCHA,R0”、“XCHA,@R0”“XCHDA,@R0”、“SWAPA”后各單元的內(nèi)容。

執(zhí)行:XCH A,R0 ;后(A)=30H,(R0)=28H 執(zhí)行:XCH A,@R0 ;后(A)=4AH,(30H)=28H

執(zhí)行:XCHD A,@R0 ;后(A)=2AH,(30H)=48H 執(zhí)行:SWAP A;后(A)=82H9/19/202354 例設(shè)(R0)=30H,(30H)=4AH,(A)=2

三、堆棧操作指令(P306,屬于直接尋址) 堆棧操作有進(jìn)棧和出棧兩條指令,常用于保存和恢復(fù)現(xiàn)場(chǎng)。

PUSH direct ;先(SP)+1→SP, ;后(direct)→(SP)

POP direct ;先((SP))→direct, ;后(SP)-1→SP PUSH為進(jìn)棧操作,POP為出棧操作。

設(shè)(30H)=x,將x保存起來(lái)MOVSP#70HPUSH30HPOP30H9/19/202355 三、堆棧操作指令(P306,屬于直接尋址)設(shè)(30H)

注意:(1)進(jìn)棧與出棧必須成對(duì)使用;(2)先進(jìn)棧的必須后出棧,后進(jìn)棧的必須先出棧,否則會(huì)出現(xiàn)DPL與DPH內(nèi)容互換。PUSH DPHPUSH DPLPOP DPLPOP DPH9/19/202356 注意:(1)進(jìn)棧與出棧必須成對(duì)使用;(2)先進(jìn)棧的必須后習(xí)題(P3211.(1))1.MOVA,#1000H ;A←1000H2.MOVXA,1000H ;A←(1000H)片外RAM3.MOVCA,1000H ;A←(1000H)片外ROM4.MOVX60H,A ;片外RAM(60H)←A5.MOVR0,60H ;片內(nèi)RAM:(61H)←(60H) MOV61H,@R06.XCHR1,R2 ;R1←→R27.MOVXDPTR,#2000H;DPTR←2000H8.MOVX60H,@DPTR ;片內(nèi)RAM←片外RAM下列指令是否錯(cuò)誤9/19/202357習(xí)題(P3211.(1))1.MOVA,#1009/19/2023588/6/2023583.2.2算術(shù)運(yùn)算指令

指令內(nèi)容:包括加、減、乘、除、BCD碼調(diào)整等指令,共有24條。

對(duì)標(biāo)志位的影響:結(jié)果會(huì)影響進(jìn)位標(biāo)志CY、半進(jìn)位標(biāo)志AC、溢出標(biāo)志OV、奇偶標(biāo)志位P,但加1和減1指令不影響這些標(biāo)志位。9/19/2023593.2.2算術(shù)運(yùn)算指令 指令內(nèi)容:包括加、減、乘、除、PSW寄存器Cy:進(jìn)位標(biāo)志位(位7有進(jìn)位)AC:輔助進(jìn)位標(biāo)志位(位3有進(jìn)位)F0:供用戶使用的標(biāo)志位OV:溢出標(biāo)志位(位6有進(jìn)位,位7沒(méi)進(jìn)位;或位7有進(jìn)位,位6沒(méi)進(jìn)位)P:奇偶標(biāo)志位A中數(shù)據(jù)的奇偶性。當(dāng)1的個(gè)數(shù)為奇數(shù),P=1,否則P=0。9/19/202360PSW寄存器Cy:進(jìn)位標(biāo)志位(位7有進(jìn)位)8/6/20236

一、加法指令 分為不帶進(jìn)位加法、帶進(jìn)位加法和加1指令

1、不帶進(jìn)位加法指令A(yù)DD

ADD A,Rn ;(A)+(Rn)→A

ADD A,direct ;(A)+(direct)→A

ADD A,@Ri ;(A)+((Ri))→A

ADD A,#data ;(A)+data→A

這組指令影響標(biāo)志位CY、AC、OV和P,溢出標(biāo)志OV只對(duì)有符號(hào)運(yùn)算有意義。

9/19/202361 一、加法指令8/6/202361例(A)=53H,(R0)=FCH,執(zhí)行ADDA,R09/19/202362例(A)=53H,(R0)=FCH,執(zhí)行ADDA,R注意:

溢出標(biāo)志OV只影響有符號(hào)數(shù)的加法運(yùn)算,若OV=0,則A中結(jié)果正確;若OV=1,則A中結(jié)果不正確,只能看成無(wú)符號(hào)數(shù)。9/19/202363注意:8/6/202363

2、帶進(jìn)位加法指令A(yù)DDC

ADDC A,Rn ;(A)+(Rn)+CY→A

ADDC A,direct;(A)+(direct)+CY→A

ADDC A,@Ri ;(A)+((Ri))+CY→A

ADDC A,#data ;(A)+data+CY→A 這組指令影響標(biāo)志位CY、AC、OV和P,溢出標(biāo)志OV只對(duì)有符號(hào)運(yùn)算有意義。注:Cy偽指令執(zhí)行前的Cy值,不是指令執(zhí)行過(guò)程中形成的Cy值。

9/19/202364 2、帶進(jìn)位加法指令A(yù)DDC8/6/202364

3、加1指令I(lǐng)NC

INC A

;(A)+1→A

INC Rn

;(Rn)+1→Rn

INC direct;(direct)+1→direct

INC @Ri

;((Ri))+1→(Ri)

INC DPTR

;(DPTR)+1→DPTR 這組指令除了第一條影響標(biāo)志位P之外,其它指令不影響標(biāo)志位。(A)=FFH,(Cy)=0,執(zhí)行INCA后,Cy=?

9/19/202365 3、加1指令I(lǐng)NC8/6/202365

二、減法指令 減法指令分為帶借位減法指令和減1指令。

1、帶借位減法指令SUBB(自帶Cy減法指令)

SUBB A,Rn;(A)-(Rn)-CY→A

SUBB A,direct;(A)-(direct)-CY→A

SUBB A,@Ri ;(A)-((Ri))-CY→A

SUBB A,#data ;(A)-data-CY→A

9/19/202366 二、減法指令8/6/202366

2、減1指令DEC

DEC A ;(A)-1→A

DEC Rn ;(Rn)-1→Rn

DEC direct;(direct)-1→direct

DEC @Ri

;((Ri))-1→(Ri) 這組指令除了第一條影響標(biāo)志位P之外,其它指令不影響標(biāo)志位。9/19/202367 2、減1指令DEC8/6/202367

三、乘法指令MUL 在MCS-51單片機(jī)中,乘法指令只有一條。

MULAB

;(A)×(B)→B(高8位)、A(低8位)(1)A,B均為無(wú)符號(hào)整數(shù)

(2)對(duì)標(biāo)志位的影響:若乘積大于0FFH,OV置1,否則OV清0;影響P標(biāo)志位;對(duì)CY總是清0。

9/19/202368 三、乘法指令MUL8/6/202368

四、除法指令DIV

DIV AB ;(A)/(B),商→A、余→B

(1)A,B均為無(wú)符號(hào)整數(shù)

(2)對(duì)標(biāo)志位的影響:如果除數(shù)(B)=0,則標(biāo)志位OV置1,否則清0;影響P標(biāo)志位;CY總是被清0。

9/19/202369 四、除法指令DIV8/6/2023693.2.3邏輯操作指令

邏輯操作指令包括與、或、異或、清0、求反、移位等操作指令,共有24條。

指令中的操作數(shù):

A、Rn、direct、@Ri、#data 為了便于討論,將其分為5組進(jìn)行討論。9/19/2023703.2.3邏輯操作指令 邏輯操作指令包括與、或、異或、

1、累加器A清0和求反指令 CLR A ;0→A CPL A ;(A)→A 前一條指令是對(duì)A清0,該指令影響奇偶標(biāo)志位P。后一條指令是對(duì)A求反,不影響任何標(biāo)志位。

9/19/202371 1、累加器A清0和求反指令8/6/202371

2、循環(huán)移位指令

A循環(huán)左移:

RLA;

A循環(huán)右移:RRA;

A帶進(jìn)位循環(huán)左移:RLCA;

A帶進(jìn)位循環(huán)右移:RRCA;

說(shuō)明:(1)這4條指令,每執(zhí)行一次只移動(dòng)1位;(2)左移一次相當(dāng)于乘以2,右移一次相當(dāng)于除以2。

對(duì)標(biāo)志位影響:僅后兩條指令影響CY和Pa7←a0a7→a0a7→a0CYa7←a0CY9/19/202372 2、循環(huán)移位指令a7←a0a7→a0a7→a

3、邏輯與指令A(yù)NL

ANL A,Rn ;(A)∧(Rn)→A

ANL A,direct ;(A)∧(direct)→A

ANLA,@Ri ;(A)∧((Ri))→A

ANL A,#data ;(A)∧data→A

ANL direct,A ;(direct)∧(A)→direct

ANL direct,#data;(direct)∧data→direct 作用:用于使某些位清0。

9/19/202373 3、邏輯與指令A(yù)NL8/6/202373

4、邏輯或指令ORLORL A,Rn ;(A)∨(Rn)→A

ORL A,direct ;(A)∨(direct)→A

ORL A,@Ri ;(A)∨((Ri))→A

ORL A,#data ;(A)∨data→A

ORL direct,A ;(direct)∨(A)→direct

ORL direct,#data;(direct)∨data→direct 作用:用于使某些位置1。

目標(biāo)地址9/19/202374 4、邏輯或指令ORL目標(biāo)地址8/6/202374

5、邏輯異或指令XRL

XRL A,Rn ;(A)

(Rn)→A

XRLA,direct ;(A)

(direct)→A

XRLA,@Ri ;(A)

((Ri))→A

XRLA,#data ;(A)

data→A

XRLdirect,A ;(direct)

(A)→direct

XRLdirect,#data;(direct)

data→direct 作用:用于使某些位取反,其余位不變。

用1異或使對(duì)應(yīng)位取反,用0異或使對(duì)應(yīng)位保留(不變);自身異或,實(shí)現(xiàn)清零。9/19/202375 5、邏輯異或指令XRL8/6/202375

例寫(xiě)出完成以下各功能的指令: 1)只對(duì)累加器A中的1、3、5位清0; 2)只對(duì)A中的2、4、6位置1; 3)只對(duì)A中的0、1、6、7位取反。4)使(A)=AAH的高四位不變,低四位取反。

對(duì)應(yīng)指令如下: ANL A,#11010101B

ORL A,#01010100B XRL A,#11000011B

XRL

A,#00001111B9/19/202376 例寫(xiě)出完成以下各功能的指令:8/6/2023763.2.4控制轉(zhuǎn)移類(lèi)指令

MCS-51單片機(jī)有17條轉(zhuǎn)移類(lèi)指令,包括無(wú)條件轉(zhuǎn)移指令、條件轉(zhuǎn)移指令、子程序調(diào)用及返回指令等。 對(duì)標(biāo)志位影響:只有比較轉(zhuǎn)移指令影響進(jìn)位標(biāo)志CY,其它指令不影響標(biāo)志位。

9/19/2023773.2.4控制轉(zhuǎn)移類(lèi)指令 MCS-51單片機(jī)有17條轉(zhuǎn)

一、無(wú)條件轉(zhuǎn)移指令

無(wú)條件轉(zhuǎn)移指令:當(dāng)程序執(zhí)行該指令后,程序無(wú)條件地轉(zhuǎn)移到指定的地址去執(zhí)行。 包括短轉(zhuǎn)移、長(zhǎng)轉(zhuǎn)移和間接轉(zhuǎn)移3條指令

1、短轉(zhuǎn)移指令SJMP(相對(duì)轉(zhuǎn)移指令,2字節(jié))

SJMP rel ;(PC)+rel→PC

rel=(Ad-As-Bn):相對(duì)轉(zhuǎn)移偏移量,有符號(hào)數(shù),﹣128~127,負(fù)數(shù)表示向回跳轉(zhuǎn),正數(shù)表示向前跳轉(zhuǎn)。

指令實(shí)際寫(xiě)為:“SJMP目標(biāo)地址標(biāo)號(hào)”P(pán)479/19/202378 一、無(wú)條件轉(zhuǎn)移指令8/6/202378SJMP$:停機(jī)指令。(HERE:SJMPHERE)P399/19/202379SJMP$:停機(jī)指令。8/6/202379

2、長(zhǎng)轉(zhuǎn)移指令LJMP(3字節(jié)指令)

LJMP addr16 ;addr16→PC 程序可以跳轉(zhuǎn)到64KB程序存儲(chǔ)器空間的任何地方。 指令的實(shí)際編寫(xiě)形式為:“LJMP目標(biāo)地址標(biāo)號(hào)”。

9/19/202380 2、長(zhǎng)轉(zhuǎn)移指令LJMP(3字節(jié)指令)8/6/202380

3、間接跳轉(zhuǎn)指令JMP(單字節(jié))

也叫散轉(zhuǎn)指令、多分支轉(zhuǎn)移指令。

JMP @A+DPTR ;(A)+(DPTR)→PC

DPTR為基址,A為相對(duì)偏移,在64KB范圍內(nèi)無(wú)條件轉(zhuǎn)移。

說(shuō)明:(1)DPTR一般為確定的值,累加器A為變值,根據(jù)A的值轉(zhuǎn)移到不同的地方,因此該指令也叫散轉(zhuǎn)指令。

(2)在使用中,往往與一個(gè)轉(zhuǎn)移指令表一起實(shí)現(xiàn)多分支轉(zhuǎn)移。

9/19/202381 3、間接跳轉(zhuǎn)指令JMP(單字節(jié))8/6/202381

例3-13

分析下面多分支轉(zhuǎn)移程序段。 MOV B,#3 MUL AB ;開(kāi)始時(shí)(A)=0、1、2

MOV DPTR,#TABLE ;表首地址送DPTR

JMP@A+DPTR ;根據(jù)A值轉(zhuǎn)移TABLE:

LJMP TAB0 ;(A)=0時(shí)轉(zhuǎn)到TAB0執(zhí)行

LJMP TAB1 ;(A)=3時(shí)轉(zhuǎn)到TAB1執(zhí)行

LJMP TAB2 ;(A)=6時(shí)轉(zhuǎn)到TAB2執(zhí)行

...... 程序中,根據(jù)累加器A的開(kāi)始值(0、1、2)轉(zhuǎn)移到相應(yīng)的TAB0~TAB2分支去執(zhí)行。9/19/202382 例3-13分析下面多分支轉(zhuǎn)移程序段。8/6/2023

二、條件轉(zhuǎn)移指令

當(dāng)指令中條件滿足時(shí),程序轉(zhuǎn)到指定位置執(zhí)行,條件不滿足時(shí),程序順序執(zhí)行。

條件轉(zhuǎn)移指令有三種:判斷累加器A轉(zhuǎn)移指令、比較轉(zhuǎn)移指令、循環(huán)轉(zhuǎn)移指令,共8條。9/19/202383 二、條件轉(zhuǎn)移指令8/6/202383

1、判斷累加器A轉(zhuǎn)移指令(條件轉(zhuǎn)移指令)

判斷A為0轉(zhuǎn)移:

JZ rel ;(A)=0,(PC)+rel→PC ;(A)≠0,順序執(zhí)行

判斷A非0轉(zhuǎn)移:

JNZ rel ;(A)≠0,(PC)+rel→PC ;(A)=0,順序執(zhí)行 指令的實(shí)際編寫(xiě)形式分別為:“JZ

目標(biāo)地址標(biāo)號(hào)”和“JNZ

目標(biāo)地址標(biāo)號(hào)”。

9/19/202384 1、判斷累加器A轉(zhuǎn)移指令(條件轉(zhuǎn)移指令)8/6/2023

例試編寫(xiě)程序,把片外RAM地址從2000H開(kāi)始的數(shù)據(jù),傳送到片內(nèi)RAM地址從30H開(kāi)始的單元,直到出現(xiàn)00H為止。

程序段如下: MOV DPTR,#2000H MOV R0,#30HLOOP: MOVX A,@DPTR MOV @R0,A INC R0 INC DPTR

JNZ LOOP ;(A)≠0跳轉(zhuǎn) SJMP$ ;程序停留到此9/19/202385 例試編寫(xiě)程序,把片外RAM地址從2000H開(kāi)始的數(shù)據(jù)

2、比較不相等轉(zhuǎn)移指令CJNE

比較轉(zhuǎn)移指令功能較強(qiáng),共有4條指令,一般格式為:

CJNE 操作數(shù)1,操作數(shù)2,rel(目標(biāo)標(biāo)號(hào))

指令功能:兩個(gè)操作數(shù)做比較,若不等則轉(zhuǎn)移,否則順序執(zhí)行。9/19/202386 2、比較不相等轉(zhuǎn)移指令CJNE8/6/202386具體形式如下,第一條:

CJNE A,direct,rel第二條:

CJNE A,#data,rel

第三條:

CJNE Rn,#data,rel第四條:

CJNE @Ri,#data,rel9/19/202387具體形式如下,8/6/202387注:(1)編程時(shí)rel用目標(biāo)地址標(biāo)號(hào)表示,

CJNEA,#21,LOOP1(2)指令執(zhí)行過(guò)程中的比較操作實(shí)際上為減法操作,不保留兩數(shù)之差,但要形成Cy標(biāo)志。9/19/202388注:8/6/202388

3、減1不為0(循環(huán)轉(zhuǎn)移指令)DJNZ

循環(huán)轉(zhuǎn)移指令共有兩條指: DJNZ Rn,rel

;2字節(jié)指令。

DJNZ direct,rel

;3字節(jié)指令。 指令的實(shí)際編寫(xiě)形式為: DJNZ Rn,目標(biāo)地址標(biāo)號(hào) DJNZ direct,目標(biāo)地址標(biāo)號(hào)9/19/202389 3、減1不為0(循環(huán)轉(zhuǎn)移指令)DJNZ8/6/20238

例3-15

試編寫(xiě)程序,統(tǒng)計(jì)片內(nèi)RAM中從40H單元開(kāi)始的20個(gè)單元中00H的個(gè)數(shù),結(jié)果存于R2中。

程序段一(用JNZ判斷數(shù)據(jù)是否為0):

MOV R0,#40H ;R0指向40H MOV R7,#20 ;R7控制循環(huán) MOV R2,#0 ;R2存放結(jié)果LOOP: MOV A,@R0 JNZ NEXT ;(A)≠0轉(zhuǎn) INC R2NEXT: INC R0 DJNZ R7,LOOP SJMP$9/19/202390 例3-15試編寫(xiě)程序,統(tǒng)計(jì)片內(nèi)RAM中從40H單元開(kāi)

程序段二(用CJNE判斷數(shù)據(jù)是否為0): MOV R0,#40H ;R0指向40H MOV R7,#20 ;R7控制循環(huán) MOV R2,#0 ;R2存放結(jié)果LOOP: CJNE @R0,#00H,NEXT INC R2NEXT: INC R0 DJNZ R7,LOOP9/19/202391 程序段二(用CJNE判斷數(shù)據(jù)是否為0):8/6/202

三、子程序調(diào)用和返回指令 這類(lèi)指令有3條,一條調(diào)用,兩條返回。

1、子程序調(diào)用指令

ACALL addr16(2字節(jié)指令)

LCALL addr16(3字節(jié)指令)

9/19/202392 三、子程序調(diào)用和返回指令8/6/2023922、子程序返回指令(只能用在子程序末尾)

RET

;9/19/2023932、子程序返回指令(只能用在子程序末尾)8/6/202393

3、中斷服務(wù)程序返回指令

RETI;

“RETI”只能用在中斷服務(wù)程序末尾。

四、空操作指令

NOP ;延時(shí)一個(gè)機(jī)器周期 常用于延時(shí)9/19/202394 3、中斷服務(wù)程序返回指令8/6/202394

還有兩條指令:這兩條指令是“AJMP”和“ACALL”,稱(chēng)為絕對(duì)轉(zhuǎn)移(短轉(zhuǎn)移)指令和絕對(duì)子程序調(diào)用(短調(diào)用)指令。

初識(shí)這兩條指令:這兩條指令的轉(zhuǎn)移范圍是絕對(duì)劃定的2KB,用不好會(huì)出現(xiàn)錯(cuò)誤,并且其編碼也不好理解(見(jiàn)附錄B),所以沒(méi)有必要使用這兩條指令。

9/19/202395 還有兩條指令:這兩條指令是“AJMP”和“ACALL”,3.2.5位操作指令 說(shuō)明:在進(jìn)行位操作時(shí),位累加器C即為進(jìn)位標(biāo)志CY。

位地址區(qū)域: 1)片內(nèi)RAM字節(jié)地址20H~2FH單元中連續(xù)的128個(gè)位(位地址為00H~7FH); 2)部分SFR中的位。9/19/2023963.2.5位操作指令 說(shuō)明:在進(jìn)行位操作時(shí),位累加器C

位地址的表示方式:

1)直接位地址(00H~FFH),如18H。 2)字節(jié)地址帶位號(hào),如20H.0,表示20H單元的第0位。

3)特殊功能寄存器名帶位號(hào),如P2.3,表示P2口的第3位。 4)位符號(hào)地址。

例如,用上述4種方式都可以表示PSW(D0H)中的第2位,分別為:D2H、D0H.2、PSW.2、OV。9/19/202397 位地址的表示方式:8/6/202397

位操作指令共有17條,可以將其分成:位數(shù)據(jù)傳送指令、位邏輯操作指令、位控制轉(zhuǎn)移指令三組進(jìn)行討論。

9/19/202398 8/6/202398

一、位傳送指令

MOV C,bit ;(bit)→C

MOV bit,C ;(C)→bit

例編寫(xiě)程序,把片內(nèi)RAM中07H位的數(shù)值,傳送到ACC.0位。 程序段如下: MOV C,07H MOV ACC.0,C

注意:位之間不能夠直接傳送,必須借助于C。

9/19/202399 一、位傳送指令8/6/202399

二、位邏輯操作指令 位邏輯操作指令包括位清0、位置1、位取反、位與、位或,共10條指令。

1、位清0指令

CLR C ;0→C

CLR bit ;0→bit

2、位置1指令

SETB C ;1→C

SETB bit ;1→bit9/19/2023100 二、位邏輯操作指令8/6/2023100

3、位取反指令

CPL C ;(C)→C

CPL bit ;(bit)→bit

4、位與指令

ANL C,bit ;(C)∧(bit)→C

ANL C,bit ;(C)∧(bit)→C

5、位或指令

ORL C,bit ;(C)∨(bit)→C

ORL C,bit ;(C)∨(bit)→C注:在MCS-5指令系統(tǒng)中沒(méi)有位異或指令,必須用位操作指令來(lái)實(shí)現(xiàn)。(P415)9/19/2023101 3、位取反指令8/6/2023101

三、位條件轉(zhuǎn)移指令(P414) 位轉(zhuǎn)移指令是判斷C或bit為條件的轉(zhuǎn)移指令,共5條指令。

1、以C為條件的轉(zhuǎn)移指令(2字節(jié)指令)

JC rel ;若(C)=1,則(PC)+rel→PC; ;否則順序向下執(zhí)行

JNC rel ;若(C)=0,則(PC)+rel→PC; ;否則順序向下執(zhí)行

9/19/2023102 三、位條件轉(zhuǎn)移指令(P414)8/6/2023102

2、以bit為條件的轉(zhuǎn)移指令(3字節(jié)指令) JB bit,rel ;若(bit)=1,則(PC)+rel→PC;否則順序向下執(zhí)行 JNBbit,rel ;若(bit)=0,則(PC)+rel→PC;否則順序向下執(zhí)行 JBCbit,rel ;若(bit)=1,則(PC)+rel →PC,且0→bit; 否則順序向下執(zhí)行9/19/2023103 2、以bit為條件的轉(zhuǎn)移指令(3字節(jié)指令)8/6/202

例編寫(xiě)程序,利用位操作指令,實(shí)現(xiàn)下圖所示的硬件邏輯電路功能。+&+&P1.0P1.1P1.2P1.3P1.4P1.5DEFG 程序段如下:

MOV C,P1.1 ORL C,P1.2 CPL C ANL C,P1.0 CPL C9/19/2023104 例編寫(xiě)程序,利用位操作指令,實(shí)現(xiàn)下圖所示的硬件邏輯電 MOV F0H,C ;(C)→F0H位 MOV C,P1.3 ;(P1.3)→C ANL C,P1.4 ;(C)∧P1.4→C CPL C ; ORL C,F(xiàn)0H ;(C)∨(0F0H)→C MOV P1.5,C ;(C)→P1.5+&+&P1.0P1.1P1.2P1.3P1.4P1.5DEFG9/19/2023105 MOV F0H,C ;(C)→F0H位P1.0P1.3.3匯編語(yǔ)言程序格式及偽指令9/19/20231063.3匯編語(yǔ)言程序格式及偽指令8/6/2023106

標(biāo)號(hào)源程序注釋

ORG0000H;整個(gè)程序起始地址LJMPMAIN;跳向主程序

ORG0030H;主程序起始地址MAIN:CLRC;MAIN為程序標(biāo)號(hào)LOOP:MOVA,@R0ADDCA,@R1INCR0DJNZR1,LOOP;相對(duì)轉(zhuǎn)移SJMPNEXTMOVR1,#03HNEXT:DECR0SJMP$;相當(dāng)于LOOP1:SJMPLOOP1

END;結(jié)束標(biāo)記9/19/2023107標(biāo)號(hào)源程序

偽指令的功能:在匯編程序中,用于指示匯編程序如何對(duì)源程序進(jìn)行匯編。

對(duì)偽指令的處理:不同于指令,在匯編時(shí)并不翻譯成機(jī)器代碼,只是在匯編過(guò)程進(jìn)行相應(yīng)的控制和說(shuō)明。

偽指令的具體作用:通常在匯編程序中用于定義數(shù)據(jù)、分配存儲(chǔ)空間、控制程序的輸入/輸出等。 在MCS-51系統(tǒng)中,常用的偽指令有以下7條。

9/19/2023108 偽指令的功能:在匯編程序中,用于指示匯編程序如何對(duì)源程序

一、ORG偽指令

ORG偽指令稱(chēng)為起始匯編偽指令,常用于匯編語(yǔ)言某程序段的開(kāi)始或某個(gè)數(shù)據(jù)塊的開(kāi)始。一般格式為:

[標(biāo)號(hào):] ORG 16位地址 其

溫馨提示

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