第3章80C51的指令系統(tǒng)_第1頁
第3章80C51的指令系統(tǒng)_第2頁
第3章80C51的指令系統(tǒng)_第3頁
第3章80C51的指令系統(tǒng)_第4頁
第3章80C51的指令系統(tǒng)_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、1第第3 3章章 80C5180C51的指令系統(tǒng)的指令系統(tǒng) 本章內(nèi)容本章內(nèi)容23.1指令系統(tǒng)簡介指令系統(tǒng)簡介1) 指令概述指令概述 一臺微機所具有的所有指令的集合,就構成了指令系統(tǒng)。一臺微機所具有的所有指令的集合,就構成了指令系統(tǒng)。指令系統(tǒng)越豐富,說明指令系統(tǒng)越豐富,說明CPU的功能越強。的功能越強。2)機器指令機器指令 一臺微機能執(zhí)行什么樣的操作,是在微機設計時確定的。一臺微機能執(zhí)行什么樣的操作,是在微機設計時確定的。一條指令對應著一種基本操作。由于計算機只能識別二進制一條指令對應著一種基本操作。由于計算機只能識別二進制數(shù),所以指令也必須用二進制形式來表示,稱為指令的機器數(shù),所以指令也必須用

2、二進制形式來表示,稱為指令的機器碼或機器指令。碼或機器指令。 MCS-51單片機指令系統(tǒng)共有單片機指令系統(tǒng)共有33種功能,種功能,42種助記符,種助記符,111條指令。條指令。 31 1、二進制的表示形式:、二進制的表示形式:(以(以“累加器的內(nèi)容累加器的內(nèi)容+08H”為例)為例) 00100100B 操作碼操作碼 OP (加法)(加法) 00001000B 操作數(shù)操作數(shù)DATA(08H)特點:特點: 能被能被CPU直接識別、運行的形式。也稱機器碼、匯編直接識別、運行的形式。也稱機器碼、匯編語言的目標代碼。語言的目標代碼。缺點:缺點:不便于閱讀、記憶和調(diào)試修改。不便于閱讀、記憶和調(diào)試修改。3)

3、 指令表示指令表示4 2 2、十六進制表示方式:、十六進制表示方式: 它是對二進制形式的一種簡化。它是對二進制形式的一種簡化。 00100100B 24H 00001000B 08H 二進制表示的形式二進制表示的形式 十六進制表示的形式十六進制表示的形式在實驗室等少數(shù)環(huán)境下,可以將這種形式作為輸入程序的在實驗室等少數(shù)環(huán)境下,可以將這種形式作為輸入程序的一種輔助手段。但是,這種形式的指令格式必須由對應的監(jiān)控一種輔助手段。但是,這種形式的指令格式必須由對應的監(jiān)控程序把它們翻譯成二進制的程序把它們翻譯成二進制的“機器碼機器碼”后存入程序存儲器并運后存入程序存儲器并運行。行。5 3 3、指令的、指令的

4、“助記符助記符”方式(也稱方式(也稱“匯編格式匯編格式”):): 00100100B 24H 00001000B 08H ADD A,#08H 二進制表示形式二進制表示形式 十六進制表示十六進制表示 匯編格式匯編格式返回1)這是一種由)這是一種由英文單詞英文單詞或或字母、數(shù)字字母、數(shù)字來表征指令功能的形式。是來表征指令功能的形式。是一種便于閱讀、書寫和交流的表示形式。一種便于閱讀、書寫和交流的表示形式。2) “匯編匯編”格式的指令必須格式的指令必須 “翻譯翻譯”為二進制形式為二進制形式 “機器碼機器碼”后才能為后才能為CPU所識別和執(zhí)行。所識別和執(zhí)行。3)三種不同的表示方法適用于不同的場合。)

5、三種不同的表示方法適用于不同的場合。6指令格式:即指令的結構形式。指令格式:即指令的結構形式。OPDATA 或或 ADDRESS由操作碼和操作數(shù)(或操作數(shù)地址)構成指令的結構。由操作碼和操作數(shù)(或操作數(shù)地址)構成指令的結構。舉例:舉例:MOV A,#0FFH ADD A,R0返回4) 指令格式指令格式7采用助記符表示的匯編語言指令格式如下:采用助記符表示的匯編語言指令格式如下: 標號標號是程序員根據(jù)編程需要給指令設定的是程序員根據(jù)編程需要給指令設定的符號地址符號地址,可,可有可無;標號由有可無;標號由18個字符組成,第一個字符必須是英文字,個字符組成,第一個字符必須是英文字,不能是數(shù)字或其它符

6、號;標號后必須用冒號。不能是數(shù)字或其它符號;標號后必須用冒號。 4) 指令格式指令格式8 操作碼操作碼表示指令的操作種類,如表示指令的操作種類,如MOV表示數(shù)據(jù)傳送操表示數(shù)據(jù)傳送操作,作,ADD表示加法操作等。表示加法操作等。 操作數(shù)或操作數(shù)地址操作數(shù)或操作數(shù)地址表示參加運算的數(shù)據(jù)或數(shù)據(jù)的有表示參加運算的數(shù)據(jù)或數(shù)據(jù)的有效地址。操作數(shù)一般有以下幾種形式:沒有操作數(shù)項,操效地址。操作數(shù)一般有以下幾種形式:沒有操作數(shù)項,操作數(shù)隱含在操作碼中,如作數(shù)隱含在操作碼中,如RET指令;只有一個操作數(shù),如指令;只有一個操作數(shù),如CPL A指令;有兩個操作數(shù),如指令;有兩個操作數(shù),如MOV A,#00H指令,操

7、作指令,操作數(shù) 之 間 以 逗 號 相 隔 ; 有 三 個 操 作 數(shù) , 如數(shù) 之 間 以 逗 號 相 隔 ; 有 三 個 操 作 數(shù) , 如 C J N E A,#00H,NEXT指令,操作數(shù)之間也以逗號相隔。指令,操作數(shù)之間也以逗號相隔。 注釋注釋是對指令的解釋說明,用以提高程序的可讀性;是對指令的解釋說明,用以提高程序的可讀性;注釋前必須加分號。注釋前必須加分號。 4) 指令格式指令格式9 在在MCS-51MCS-51單片機的指令系統(tǒng)中,因指令操作碼和操作數(shù)的不同,指單片機的指令系統(tǒng)中,因指令操作碼和操作數(shù)的不同,指令(在存儲器中)長度也各不相同。令(在存儲器中)長度也各不相同。 分為

8、單字節(jié)、雙字節(jié)和三字節(jié)。分為單字節(jié)、雙字節(jié)和三字節(jié)。單字節(jié)指令(單字節(jié)指令(4949條):條):分分無操作數(shù)、有操作數(shù)無操作數(shù)、有操作數(shù)兩種。兩種。 無操作數(shù):無操作數(shù):如如 INC DPTR 10100011B INC A 00000100B 【特點特點】:操作數(shù)隱含在操作碼中。:操作數(shù)隱含在操作碼中。 含有操作數(shù)寄存器名稱的單字節(jié)指令:含有操作數(shù)寄存器名稱的單字節(jié)指令: 如:如:MOV A,R0 11101000B MOV A,R1 11101001B 【特點特點】:寄存器名以三位數(shù)代碼的形式在指令的后三位。:寄存器名以三位數(shù)代碼的形式在指令的后三位。5) 指令長度與執(zhí)行時間5)指令長度與

9、執(zhí)行時間10 雙字節(jié)指令(雙字節(jié)指令(4646條):條): 指令的操作碼和操作數(shù)各占一個字節(jié)。指令的操作碼和操作數(shù)各占一個字節(jié)。 如:如: MOV A , #data 01110100B data 很明顯:很明顯:8位的操作數(shù)本身占據(jù)一個字節(jié)。位的操作數(shù)本身占據(jù)一個字節(jié)。程序存儲器程序存儲器01110100datann+1雙字節(jié)指令在程序存儲器的存放示意圖雙字節(jié)指令在程序存儲器的存放示意圖5) 指令長度與執(zhí)行時間指令長度與執(zhí)行時間11 三字節(jié)指令(三字節(jié)指令(1616條):條): 指令中的操作數(shù)為雙字節(jié)。如:指令中的操作數(shù)為雙字節(jié)。如: MOV DPTR,#data16MOV DPTR,#da

10、ta16 10010000B,data15-8,data7-010010000B,data15-8,data7-0 或者:指令中分別包含或者:指令中分別包含1 1個字節(jié)的操作數(shù)和個字節(jié)的操作數(shù)和1 1個字節(jié)的操作數(shù)地址。個字節(jié)的操作數(shù)地址。如:如: MOV direct, #dataMOV direct, #data 舉例:舉例:MOV 20H,#0FFHMOV 20H,#0FFH 10010000data15-8data7-0MOV DPTR,#data16OP (75H)direct (20H)data (FFH)MOV direct, #data三字節(jié)指令在存儲器中存放的方式示意圖5)

11、指令長度與執(zhí)行時間指令長度與執(zhí)行時間12指令的字節(jié)多是否意味著指令周期就長?指令的字節(jié)多是否意味著指令周期就長?指指 令令字節(jié)數(shù)字節(jié)數(shù)周期數(shù)周期數(shù)指令說明指令說明 MOV A,R011R0內(nèi)容送累加器內(nèi)容送累加器AMOV A,#0FFH21立即數(shù)立即數(shù)FFH送送AMOV 20H,#30H32立即數(shù)立即數(shù)30H送內(nèi)存送內(nèi)存20H單元單元MUL AB14乘法指令乘法指令INC DPTR1116位寄存器位寄存器DPTR加一加一從表中可見,指令的字節(jié)數(shù)與指令周期不是對等的關系從表中可見,指令的字節(jié)數(shù)與指令周期不是對等的關系返回5) 指令長度與執(zhí)行時間5) 指令長度與執(zhí)行時間指令長度與執(zhí)行時間136)

12、符號說明符號說明符符 號號含含 義義RnRn表示當前選定寄存器組的工作寄存器表示當前選定寄存器組的工作寄存器R0R0R7R7RiRi表示作為間接尋址的地址指針表示作為間接尋址的地址指針R0R0R1R1#data#data表示表示8 8位立即數(shù),即位立即數(shù),即00H00HFFHFFH#data16#data16 表示表示1616位立即數(shù),即位立即數(shù),即0000H0000HFFFFHFFFFHaddr16addr16表示表示1616位地址,用于位地址,用于64K64K范圍內(nèi)尋址范圍內(nèi)尋址addr11addr11表示表示1111位地址,用于位地址,用于2K2K范圍內(nèi)尋址范圍內(nèi)尋址directdire

13、ct8 8位直接地址,可以是內(nèi)部位直接地址,可以是內(nèi)部RAMRAM區(qū)的某一單元或某一特殊功能寄存器的地址區(qū)的某一單元或某一特殊功能寄存器的地址relrel帶符號的帶符號的8 8位偏移量(位偏移量(-128-128+127+127)bitbit位尋址區(qū)的直接尋址位位尋址區(qū)的直接尋址位間接尋址寄存器的前綴間接尋址寄存器的前綴/ /位操作前置,表示位取反,如位操作前置,表示位取反,如 /bit/bit參見參見P51說明說明(X X)X X地址單元中的內(nèi)容,或地址單元中的內(nèi)容,或X X作為間接尋址寄存器時所指單元的內(nèi)容作為間接尋址寄存器時所指單元的內(nèi)容( ((X X)) ) 以寄存器或以寄存器或X X

14、地址單元中的內(nèi)容作為地址所指單元的內(nèi)容地址單元中的內(nèi)容作為地址所指單元的內(nèi)容將將 后面的內(nèi)容傳送到前面去后面的內(nèi)容傳送到前面去14 找到參與運算的數(shù)據(jù)或數(shù)據(jù)所在的地址找到參與運算的數(shù)據(jù)或數(shù)據(jù)所在的地址的方式,稱為尋址方式。的方式,稱為尋址方式。 尋址方式主要是指源操作數(shù)的尋址。尋址方式主要是指源操作數(shù)的尋址。寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址基本方式擴展方式16目的地目的地操作數(shù)1) 立即數(shù)尋址17 MOV A, 3AH 直接尋址是指把存放操作數(shù)的內(nèi)存單元的地址直接寫直接尋址是指把存放操作數(shù)的內(nèi)存單元的地址直接寫在指令中。在在指令中。在MCS-51單片機中,可以直

15、接尋址的存儲器單片機中,可以直接尋址的存儲器主要有內(nèi)部主要有內(nèi)部RAM區(qū)和特殊功能寄存器區(qū)和特殊功能寄存器SFR區(qū)。區(qū)。(參見參見P37)88H3AH內(nèi)部 RAM88HA2) 直接尋址183) 寄存器尋址MOV R1, A寄存器尋址是指將操作數(shù)存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的數(shù)據(jù)傳送到寄存器R1中,其操作數(shù)存放在累加器A中,所以尋址方式為寄存器尋址。19寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址設R0=3AH,內(nèi)部RAM 3AH中的值是65H,則指令MOV A,R0

16、的執(zhí)行結果是累加器A的值為65H。R0R1DPTR4) 寄存器間接尋址2021222324寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址ADPTRPC5) 變址尋址25寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址6) 相對尋址26設指令SJMP 54H的機器碼80H 54H存放在2000H處,當執(zhí)行到該指令時,先從2000H和2001H單元取出指令,PC自動變?yōu)?002H;再把PC的內(nèi)容與操作數(shù)54H相加,形成目標地址2056H,再送回PC,使得程序跳轉到2056H單元繼續(xù)執(zhí)行。54H程序存儲區(qū)54HA2001H20HPC02H2056HXX80H2056

17、H2000H27寄存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址10 0 0 0 0 0 0 07) 位尋址287F7F77776F6F67675F5F57574F4F474737372F2F27271F1F17170F0F0707 7E7E76766E6E66665E5E56564E4E4646 36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D454535352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C4444 34342C2C24241C1C14140

18、C0C04047B7B73736B6B63635B5B53534B4B4343 33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A4242 32322A2A22221A1A12120A0A020279797171696961615959515149494141 313129292121191911110909010178787070686860605858505048484040 3030282820201818101008080000 例: 3D3D 3C3C 3B3B3F3F 3E3E3A3A 3939383827H27H29寄

19、存器尋址直接尋址立即數(shù)尋址寄存器間接尋址變址尋址相對尋址位尋址SETB 3DH0 0 0 0 0 0 01 0位地址的表示方式:?30按功能, MCS -51 指令系統(tǒng)可分為下列 5 類:31 數(shù)據(jù)傳送類指令共數(shù)據(jù)傳送類指令共29條條, 它是指令系統(tǒng)中最活躍、它是指令系統(tǒng)中最活躍、 使用最多的一類指令。使用最多的一類指令。 一般的操作是把源操作數(shù)傳送到一般的操作是把源操作數(shù)傳送到目的操作數(shù)目的操作數(shù), 即指令執(zhí)行后目的操作數(shù)改為源操作數(shù)即指令執(zhí)行后目的操作數(shù)改為源操作數(shù), 而而源操作數(shù)保持不變。源操作數(shù)保持不變。 若要求在進行數(shù)據(jù)傳送時若要求在進行數(shù)據(jù)傳送時, 不丟失不丟失目的操作數(shù)目的操作數(shù)

20、, 則可以用交換型傳送指令。則可以用交換型傳送指令。 指令通式:MOV ,32 數(shù)據(jù)傳送類指令不影響進位標志數(shù)據(jù)傳送類指令不影響進位標志CY、 半進位標志半進位標志AC和溢出標志和溢出標志OV, 但當傳送或交換數(shù)據(jù)后影響累加器但當傳送或交換數(shù)據(jù)后影響累加器A的值的值時時, 奇偶標志奇偶標志P的值則按的值則按A的值重新設定。的值重新設定。 按數(shù)據(jù)傳送類指令的操作方式按數(shù)據(jù)傳送類指令的操作方式, 又可把傳送類指令分又可把傳送類指令分為為3種類型種類型: 數(shù)據(jù)傳送、數(shù)據(jù)傳送、 數(shù)據(jù)交換和堆棧操作數(shù)據(jù)交換和堆棧操作, 并使用并使用8種種助記符助記符: MOV、 MOVX、 MOVC、 XCH、 XCH

21、D、 SWAP、 PUSH及及POP。33 1. 數(shù)據(jù)傳送到累加器數(shù)據(jù)傳送到累加器A的指令的指令 MOV A, Rn MOV A, direct MOV A, Ri MOV A, data 這組指令的功能是:把源操作數(shù)的內(nèi)容送入累加器A。例如: MOV A, 10H, 該指令執(zhí)行時將立即數(shù) 10H送入累加器A中。 3.3.1 內(nèi)部內(nèi)部RAM傳送指令傳送指令34例3.3.1 已知(A)=20H,(R0)=50H,內(nèi)部RAM中(40H)=30H,(50H)=10H,指出下列指令執(zhí)行后相應單元內(nèi)容的變化情況。 MOV A , #40H MOV A , 40H MOV A , R0 MOV A , R

22、035 2. 數(shù)據(jù)傳送到工作寄存器數(shù)據(jù)傳送到工作寄存器Rn的指令的指令 MOV Rn, A MOV Rn, direct MOV Rn, data 這組指令的功能是: 把源操作數(shù)的內(nèi)容送入當前工作寄存器區(qū)的R0R7中的某一個寄存器。指令中Rn在內(nèi)部數(shù)據(jù)存儲器中的地址由當前的工作寄存器區(qū)選擇位RS1、RS0 確定, 可以是 00H07H、08H0FH、10H17H、18H1FH。 例如: MOV R0, A, 若當前RS1、RS0 設置為 00 (即工作寄存器 0 區(qū)), 執(zhí)行該指令時,將累加器A中的數(shù)據(jù)傳送至工作寄存器R0(內(nèi)部RAM 00H)單元中。 363. 數(shù)據(jù)傳送到內(nèi)部數(shù)據(jù)傳送到內(nèi)部R

23、AM單元(直接地址)單元(直接地址) MOV direct, A MOV direct, Rn MOV direct, direct MOV direct, Ri MOV direct, data4. 數(shù)據(jù)傳送到內(nèi)部數(shù)據(jù)傳送到內(nèi)部RAM單元(間接地址)單元(間接地址) MOV Ri, A MOV Ri, direct MOV Ri, data375. 16位數(shù)傳送指令位數(shù)傳送指令 MCS-51指令系統(tǒng)中唯一的一條16位數(shù)據(jù)傳送類指令。 MOV DPTR,#data16 DPTR是單片機內(nèi)部SFR中的兩個寄存器DPH、DPL組合而成。其中DPH為高八位,DPL為低八位。 DPTR是一個專門用于訪

24、問外部存儲器的間址寄存器。尋址能力為 64K (065535)。38例3.3.2 已知(R0)=50H,(R1)=66H, (R6)=30H內(nèi)部RAM中(50H)=60H,(66H)=45H, (70H)=40H指出下列指令執(zhí)行后相應單元內(nèi)容的變化情況。 MOV A , R6 MOV R7 , 70H MOV 70H , 50H MOV 40H , R0 MOV R1 , #88H39 實現(xiàn)外部實現(xiàn)外部RAM和累加器和累加器A之間的數(shù)據(jù)傳送。只有寄存器間接尋之間的數(shù)據(jù)傳送。只有寄存器間接尋址的指令。址的指令。 MOVX A,Ri 使用使用Ri寄存器間址尋址范圍寄存器間址尋址范圍0255 MOV

25、X Ri,A 在硬件電路中在硬件電路中P0口輸出口輸出8位地址數(shù)據(jù)。位地址數(shù)據(jù)。MOVX A,DPTR 使用使用DPTR間址,尋址范圍間址,尋址范圍065535hMOVX DPTR,A 在硬件電路中,使用在硬件電路中,使用P0口輸出低口輸出低8位,位, P2口輸出高口輸出高8位外部位外部RAM地址。地址。3.3.2 外部外部RAM傳送指令傳送指令40外部外部RAMRAM的字節(jié)傳送指令舉例的字節(jié)傳送指令舉例已知外部已知外部RAM的的88H單元有一個數(shù)單元有一個數(shù)x,試編程將,試編程將x送外部送外部RAM的的1818H單元。單元。【解解】:外部:外部RAMRAM中的數(shù)據(jù)是不能直接傳送的,因此必須使

26、用兩次中的數(shù)據(jù)是不能直接傳送的,因此必須使用兩次 MOVXMOVX 指令完成此操作。指令完成此操作。ORG 2000HORG 2000HMOV R0MOV R0,#88H #88H ;為;為8 8位指針賦值位指針賦值MOV DPTRMOV DPTR,#1818H #1818H ;為;為1616位指針賦值位指針賦值MOVX AMOVX A,R0 R0 ;??;取 x x 到累加器到累加器A AMOVX DPTRMOVX DPTR,A A ;x x 送送RAMRAM的的1818h1818h單元單元SJMP $ SJMP $ ;停機;停機ENDEND返回413.3.3 3.3.3 數(shù)據(jù)交換指令數(shù)據(jù)交換

27、指令 為提供一種方便的為提供一種方便的累加器累加器和和寄存器寄存器或或RAM之間的數(shù)據(jù)交之間的數(shù)據(jù)交換。避免了使用一般換。避免了使用一般MOV傳送指令完成交換時的不便。傳送指令完成交換時的不便。 格式:格式: XCH A,Rn ;A Rn XCH A,direct ;A (direct) XCH A,Ri ;A (Ri) XCHD A,Ri ;A30(Ri)30 SWAP A ;A30 A4742數(shù)據(jù)交換指令舉例數(shù)據(jù)交換指令舉例 已知,片外已知,片外RAM 20h單元、內(nèi)部單元、內(nèi)部RAM 20h單元分別有數(shù)單元分別有數(shù)x和和y,試編程互將兩數(shù)相交換。,試編程互將兩數(shù)相交換。MOV R1,#2

28、0h ;指針賦初值;指針賦初值MOVX A,R1 ;xaXCH A,R1 ;交換交換 a(20h),ya MOVX R1,A ;y(20h)片外片外RAM片內(nèi)片內(nèi)RAMy (x)片外片外RAMx (y)(y) x20h20h累加器A123433.3.4 ROM3.3.4 ROM的字節(jié)傳送指令(查表指令)的字節(jié)傳送指令(查表指令) 這類指令有兩條,都屬于變址尋址指令。這類指令有兩條,都屬于變址尋址指令。 MOVC A,A+DPTR MOVC A,A+DPTR ;A (A+DPTR)A (A+DPTR) MOVC A,A+PC MOVC A,A+PC ;PC PC+1, A (A+PC) PC P

29、C+1, A (A+PC) 該指令也稱為該指令也稱為“查表查表”指令。在指令。在ROMROM中建立一個數(shù)據(jù)表,可以使用中建立一個數(shù)據(jù)表,可以使用DPTRDPTR、PCPC作為數(shù)據(jù)表格的基地址。作為數(shù)據(jù)表格的基地址。 在第一條指令中:用在第一條指令中:用DPTRDPTR作為基地址。使用前,先將數(shù)據(jù)表的作為基地址。使用前,先將數(shù)據(jù)表的首地址送入首地址送入DPTRDPTR中,累加器中,累加器A A作為偏移量。由兩者數(shù)據(jù)相加得到待查作為偏移量。由兩者數(shù)據(jù)相加得到待查的表中數(shù)據(jù)地址并取出。(遠程查表指令)的表中數(shù)據(jù)地址并取出。(遠程查表指令) 第二條指令是以程序計數(shù)器第二條指令是以程序計數(shù)器PCPC為基

30、地址。由于為基地址。由于PCPC的內(nèi)容與該指令的內(nèi)容與該指令在在ROMROM中的位置有關,所以一旦該指令在程序中的位置確定,其中的位置有關,所以一旦該指令在程序中的位置確定,其PCPC的的值也就確定。(近程查表指令)(值也就確定。(近程查表指令)(P62P62)44ROMROM的字節(jié)傳送指令舉例的字節(jié)傳送指令舉例已知累加器已知累加器A中存有中存有09范圍內(nèi)的數(shù),范圍內(nèi)的數(shù),試用查表指令編寫查找出該數(shù)平方的程試用查表指令編寫查找出該數(shù)平方的程序。序。采用采用DPTR作基址寄存器作基址寄存器: 設平方表的首地址為設平方表的首地址為2000h,累加器,累加器A中的內(nèi)容恰好是查表的偏移量。首先將中的內(nèi)

31、容恰好是查表的偏移量。首先將表的起始地址表的起始地址2000h送入送入DPTR中。中。 MOV DPTR,#2000H ;指針賦值;指針賦值 MOVC A,A+DPTR ;平方值送;平方值送AROM01491625364964812000h2009h2008h2007h2006h2005h2004h2003h2002h2001h453.3.5 3.3.5 堆棧操作指令堆棧操作指令 堆棧操作是一種特殊的數(shù)據(jù)傳送指令。堆棧操作是一種特殊的數(shù)據(jù)傳送指令。 堆棧:一個用來保存程序斷點、數(shù)據(jù)的特殊的存儲區(qū)域。在堆棧:一個用來保存程序斷點、數(shù)據(jù)的特殊的存儲區(qū)域。在MCS-MCS-5151單片機中,棧區(qū)是占

32、用片內(nèi)單片機中,棧區(qū)是占用片內(nèi)RAMRAM的存儲空間,具體棧位置由指針的存儲空間,具體棧位置由指針SPSP來確定(系統(tǒng)上電時,來確定(系統(tǒng)上電時,SP=07H)SP=07H)。 (1 1)進棧操作:)進棧操作: PUSH directPUSH direct ;SP+1SP+1SP,(direct)SP,(direct)(SP)(SP) (2 2)出棧操作:)出棧操作: POP directPOP direct ;(SP)(SP)(direct),SP -1SP(direct),SP -1SP【注意注意】:尋址方式為直接尋址,所以尋址方式為直接尋址,所以 PUSH APUSH A 是錯誤的,應當

33、是是錯誤的,應當是PUSH ACCPUSH ACC或或PUSH 0E0HPUSH 0E0H,同理同理:PUSH R0PUSH R0也是錯誤的。也是錯誤的。進棧是堆棧向上進棧是堆棧向上“生長生長”的過程,即的過程,即SP+1SP+1;出棧則相反。;出棧則相反。系統(tǒng)上電時,系統(tǒng)上電時,SP=07hSP=07h。SPSP的值可以根據(jù)需要進行修改,以適應具體的值可以根據(jù)需要進行修改,以適應具體編程的需要。在確定棧區(qū)位置時要考慮對數(shù)據(jù)區(qū)的影響,以避免編程的需要。在確定棧區(qū)位置時要考慮對數(shù)據(jù)區(qū)的影響,以避免數(shù)據(jù)區(qū)與棧區(qū)沖突。數(shù)據(jù)區(qū)與棧區(qū)沖突。46堆棧操作指令舉例(一)堆棧操作指令舉例(一)下面是一個下面是

34、一個BCD碼轉換為二進制的子程序碼轉換為二進制的子程序BCDB中有關堆棧操作的中有關堆棧操作的例子。在這里,進棧操作是為了保護主程序中相關寄存器中的數(shù)據(jù),例子。在這里,進棧操作是為了保護主程序中相關寄存器中的數(shù)據(jù),因為子程序要使用這些寄存器。因為子程序要使用這些寄存器。org 0800hbcdb:push PSWpush ACCpush B : :pop Bpop ACCpop PSWRETRAMBACCPSW棧底棧底SP47堆棧操作指令舉例(二)堆棧操作指令舉例(二) 堆棧操作指令除了可以在子程序的設計堆棧操作指令除了可以在子程序的設計中,對主程序的數(shù)據(jù)進行保護。還可以中,對主程序的數(shù)據(jù)進行

35、保護。還可以根據(jù)堆棧操作的特點完成一些特殊的操根據(jù)堆棧操作的特點完成一些特殊的操作。作?!九e例舉例】:設片內(nèi):設片內(nèi)RAMRAM的的30h30h單元存有單元存有x x,40h40h單元存有單元存有y y。試將兩個單元內(nèi)容互換。試將兩個單元內(nèi)容互換。push 30hpush 30hpush 40hpush 40hpop 30hpop 30hpop 40hpop 40hRAMx y y xyx棧底棧底SP=07h40h30h48內(nèi)部內(nèi)部RAMRAM前前128128字節(jié),字節(jié),SFRSFR之間可以相互傳送,但最多只之間可以相互傳送,但最多只允許允許1 1個操作數(shù)使用寄存器間接尋址。個操作數(shù)使用寄存器

36、間接尋址。 MOV R0 , R1 MOV R0 , R1 是錯誤的。是錯誤的。訪問訪問SFRSFR必須使用直接尋址,不能采用寄存器間接尋址。必須使用直接尋址,不能采用寄存器間接尋址。 MOV A , P0 MOV A , P0 或或 MOV A, 80H MOV A, 80H 正確正確 MOV R0 , #80H MOV R0 , #80H 和和 MOV A , R0 MOV A , R0 錯誤錯誤80518051沒有提供沒有提供B B寄存器的尋址方式(乘法、除法或堆棧寄存器的尋址方式(乘法、除法或堆棧操作除外)。操作除外)。 注意注意 A A 和和 ACC ACC 的區(qū)別:的區(qū)別: MOV

37、 3FH , A ; MOV 3FH , A ; 寄存器尋址(寄存器尋址(2 2字節(jié)指令)字節(jié)指令) MOV 3FH , ACC ; MOV 3FH , ACC ; 直接尋址直接尋址 (3 3字節(jié)指令)字節(jié)指令)493.4 3.4 算術運算指令算術運算指令 不帶進位的加法指令不帶進位的加法指令 ( ADD )1、加法指令:、加法指令: 帶進位的加法指令帶進位的加法指令 ( ADC ) 加加1指令指令 ( INC )2、減法指令減法指令: 帶借位的減法指令帶借位的減法指令 ( SUBB ) 減減1指令指令 ( DEC )3、十進制調(diào)整指令十進制調(diào)整指令: ( DA A )4、乘法和除法指令乘法和

38、除法指令: ( MUL AB ; DIV AB )503.4.1 3.4.1 加法指令加法指令1、不帶進位的加法指令、不帶進位的加法指令格式:格式: ADD A,Rn;A+RnAADD A,direct;A+(direct)AADD A,Ri;A+(Ri)AADD A,#data;A+dataA 【注意注意】:1 1,參加運算的數(shù)據(jù)都應當是,參加運算的數(shù)據(jù)都應當是8 8位的,結果也是位的,結果也是8 8位并影響位并影響PSWPSW。2 2,根據(jù)編程者的需要,根據(jù)編程者的需要,8 8位數(shù)據(jù)可以是無符號數(shù)位數(shù)據(jù)可以是無符號數(shù)(0 0255255),也可以是,也可以是有符號數(shù)有符號數(shù)(-128-12

39、8+127+127)。3 3,不論編程者使用的數(shù)據(jù)是有符號數(shù)還是無符號數(shù),不論編程者使用的數(shù)據(jù)是有符號數(shù)還是無符號數(shù),CPUCPU都將它們視為都將它們視為有符號數(shù)(補碼)進行運算并影響有符號數(shù)(補碼)進行運算并影響PSWPSW。51不帶進位的加法指令舉例不帶進位的加法指令舉例( (一一) )試分析執(zhí)行下列指令后累加器試分析執(zhí)行下列指令后累加器A和和PSW中各標志的變化。中各標志的變化。MOV A,#19H Cy=0;ADD A,#66H AC=0 OV=C7 C6=0 25 A = 0 0 0 1 1 0 0 1 B P=1 + 102 data= 0 1 1 0 0 1 1 0 B 127

40、0 0 1 1 1 1 1 1 1 B 1,若兩數(shù)都是無符號數(shù),則因,若兩數(shù)都是無符號數(shù),則因Cy=0無進位,無進位,25+102=127。 2,若兩個數(shù)是有符號數(shù),則因,若兩個數(shù)是有符號數(shù),則因OV=0無溢出。無溢出。cy0 0 0 C7 C6 AC 52不帶進位的加法指令舉例不帶進位的加法指令舉例( (二二) )試分析執(zhí)行下列指令后累加器試分析執(zhí)行下列指令后累加器A和和PSW中各標志的變化。中各標志的變化。MOV A,#5AH Cy=0;ADD A,#6BH AC=1; OV=C7 C6=1 90 A= 0 1 0 1 1 0 1 0 B P=0 + 107 data=0 1 1 0 1

41、0 1 1 B 197 0 1 1 0 0 0 1 0 1 B C7 C6 AC1,若兩數(shù)是無符號數(shù),因,若兩數(shù)是無符號數(shù),因Cy=0無進位:無進位:90+107=1972,若兩數(shù)是有符號數(shù),因,若兩數(shù)是有符號數(shù),因OV=1,故有溢出,兩個正數(shù)相加后變?yōu)樨摚视幸绯?,兩個正數(shù)相加后變?yōu)樨摂?shù),很明顯結果是不正確的。數(shù),很明顯結果是不正確的。532、帶進位的加法指令、帶進位的加法指令 格式:格式: ADDC A,Rn ;A+Rn+CyA ADDC A,direct ;A+(direct) +CyA ADDC A,Ri ;A+(Ri) +CyA ADDC A,#data ;A+data+CyA【注意

42、注意】:這里的:這里的CyCy是指令執(zhí)行前的是指令執(zhí)行前的CyCy; 對對PSWPSW的影響同的影響同ADDADD指令。指令。543、加、加1指令指令格式:格式:INC A ;累加器;累加器A加一加一INC Rn ;Rn+1RnINC direct ;內(nèi)存單元數(shù)據(jù)加一;內(nèi)存單元數(shù)據(jù)加一INC Ri ;內(nèi)存單元數(shù)據(jù)加一;內(nèi)存單元數(shù)據(jù)加一INC DPTR ;dptr+1dptr【注意注意】: 1 1,除了第一條對除了第一條對PSWPSW的的P P有影響外有影響外, ,其余對其余對PSWPSW均無影響。均無影響。 2 2,由于上面的原因,由于上面的原因,INCINC指令不能作為一般的數(shù)據(jù)算術運算使用

43、,指令不能作為一般的數(shù)據(jù)算術運算使用,INCINC主要用于修改數(shù)據(jù)指針等控制、循環(huán)語句中使用。主要用于修改數(shù)據(jù)指針等控制、循環(huán)語句中使用。55編程舉例編程舉例已知已知M1M1、M2M2單元中存有兩個單元中存有兩個1616位無符號數(shù)位無符號數(shù)x1x1、x2x2(低位在前)。(低位在前)。試寫出試寫出x1+x2,x1+x2,并將結果放入并將結果放入M1M1、M1+1M1+1單元(低單元(低8 8位在位在M1M1單元)。設單元)。設兩數(shù)之和不會超過兩數(shù)之和不會超過1616位(位(6553565535)。)。【 解解】:MOV R0MOV R0,#M1 #M1 ;x1x1指針賦初值指針賦初值MOV R

44、1MOV R1,#M2 #M2 ;x2x2指針賦初值指針賦初值MOV AMOV A,R0 R0 ;取取x1x1低低8 8位送位送A AADD AADD A,R1 R1 ;x1x1與與x2x2低低8 8位相加位相加MOV R0MOV R0,A A ;低低8 8位和送位和送m1m1單元單元INC R0INC R0INC R1INC R1 ;修改指針修改指針MOV AMOV A,R0 R0 ;取取x1x1的高的高8 8位送位送A AADDC AADDC A,R1R1 ;x1x1與與x2x2的高的高8 8位和位和CyCy相加相加MOV R0MOV R0,A A ;結果送結果送M1+1M1+1單元單元R

45、AMX2 data815X2 data07X1 data815X1 data07M1M1+1M2M2+1563.4.2 3.4.2 減法指令減法指令(帶進位的減法指令)帶進位的減法指令)在在MCS-51單片機的指令系統(tǒng)中,只有:單片機的指令系統(tǒng)中,只有: 帶借位的減法帶借位的減法 SUBB 減一減一 DEC 兩種指令。兩種指令。1、減法指令:、減法指令:格式格式: 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 A57 使用減法指令要注意的問題

46、在在MCS-51MCS-51的指令系統(tǒng)中沒有不帶的指令系統(tǒng)中沒有不帶CYCY的減法,所以在使用的減法,所以在使用SUBBSUBB指令前必須使用一條清除指令前必須使用一條清除CYCY的指令:的指令:CLR CCLR C。58減法指令應用舉例試分析執(zhí)行下列指令后累加器試分析執(zhí)行下列指令后累加器A和和PSW中各標志的變化。中各標志的變化。CLR CMOV A,#C9HSUBB A,#054H 201 a= 1 1 0 0 1 0 0 1 84 data= 0 1 0 1 0 1 0 0 117 0 0 1 1 1 0 1 0 1 =117 CY=0 (D7無借位無借位) AC=0 (D3無借位無借位

47、) OV=1 (D7無借位,無借位,D6有借位有借位)592、減一指令 格式格式:DEC A ;累加器;累加器A減一減一DEC Rn ;Rn-1RnDEC direct ;內(nèi)存單元數(shù)據(jù)減一;內(nèi)存單元數(shù)據(jù)減一DEC Ri ;內(nèi)存單元數(shù)據(jù)減一;內(nèi)存單元數(shù)據(jù)減一【注意注意】: 1 1,除了第一條對除了第一條對PSWPSW的的P P有影響外,其余對有影響外,其余對PSWPSW均無影響。均無影響。 2 2,由于上面的原因,由于上面的原因,DECDEC指令一般不作為數(shù)據(jù)算術運算使用(因為指令一般不作為數(shù)據(jù)算術運算使用(因為不能對不能對PSWPSW的的OVOV等位產(chǎn)生影響,它主要用于修改數(shù)據(jù)指針在控制、等位

48、產(chǎn)生影響,它主要用于修改數(shù)據(jù)指針在控制、循環(huán)語句中使用)。循環(huán)語句中使用)。603.4.3 3.4.3 十進制調(diào)整指令十進制調(diào)整指令在在CPU進行進行BCD碼碼加法加法運算時,必須在運算后進行十進制調(diào)整,運算時,必須在運算后進行十進制調(diào)整,這是因為,這是因為,CPU在運算時,并不知道數(shù)據(jù)是二進制還是在運算時,并不知道數(shù)據(jù)是二進制還是BCD碼。碼。格式:格式:DA A ;若若AC=1或或A30 9,則則A+06hA ;若若Cy =1或或A74 9,則則A+60hA 【注意注意】:1 1,DA ADA A指令必須緊跟在加法指令之后;指令必須緊跟在加法指令之后;2 2,DA ADA A指令只適用于加

49、法指令的調(diào)整。指令只適用于加法指令的調(diào)整。61十進制調(diào)整指令應用舉例十進制調(diào)整指令應用舉例1 1、BCDBCD加法運算:加法運算:試寫出完成試寫出完成85+59的的BCD碼的加法程序。碼的加法程序。MOV A,#85HADD A,#59HDA ASJMP $ 85 a= 1 0 0 0 0 1 0 1B+ 59 dtat= 0 1 0 1 1 0 0 1B 144 1 1 0 1 1 1 1 0B 低低4位位9,所以加,所以加06h + 0 0 0 0 0 1 1 0B 1 1 1 0 0 1 0 0B 高高4位位9,所以加,所以加60h 0 1 1 0 0 0 0 0B 1 0 1 0 0

50、0 1 0 0B 結果為結果為144h(1包含在包含在Cy)【注意注意】: 144H是用是用16進制數(shù)來表示十進制,既進制數(shù)來表示十進制,既BCD碼。碼。623.4.4 3.4.4 乘法和除法指令乘法和除法指令這是這是MCS-51單片機唯一的一類單字節(jié)單片機唯一的一類單字節(jié)4周期指令,它相當于周期指令,它相當于4條條加法指令的運行時間。加法指令的運行時間。 格式:格式:MUL AB ;a a b=bb=b,a (ba (b存高存高8 8位,位,a a存低存低8 8位)位) DIV AB ;a a b=ab (ab=ab (a存商,存商,b b存余數(shù))存余數(shù)) 【注意注意】:指令對標志的影響:指

51、令對標志的影響: 1 1,在乘法指令中,在乘法指令中對對PSWPSW的影響有的影響有CyCy、OVOV、和、和P P。 具體如下具體如下:Cy:Cy0 0;P P取決于取決于A A中中“ “1”1”的個數(shù);的個數(shù);OVOV表明積的大小。表明積的大小。當積超過當積超過255255(B0)B0)時,時,OV=1OV=1。 2 2,在除法指令中,在除法指令中,CyCy、P P與乘法相同。在執(zhí)行除法指令時,若與乘法相同。在執(zhí)行除法指令時,若B=0B=0時時OV=1OV=1,表示除數(shù),表示除數(shù)=0=0除法無意義,其余情況下除法無意義,其余情況下OVOV被復位。被復位。633.5 3.5 邏輯運算指令邏輯

52、運算指令 功能功能: :對對2個個8位二進制數(shù)進行位二進制數(shù)進行邏輯與、或、非和異或邏輯與、或、非和異或操作;操作; 特點特點:除了以累加器除了以累加器A為目標寄存器的指令影響為目標寄存器的指令影響PSW的的P位位外,其余指令對外,其余指令對PSW均無影響。均無影響。1,邏輯,邏輯與運算與運算指令指令 ( ANL )2,邏輯,邏輯或運算或運算指令指令 ( ORL )3,邏輯,邏輯異或異或指令指令 ( XRL )4,累加器,累加器清零和取反清零和取反指令指令 ( CLR & CPL )641、邏輯與運算指令、邏輯與運算指令格式:格式: ANL A,Rn ;A R n A ANL A,direct

53、 ; A (directdirect) A ANL A,Ri ; A ( Ri) A ANL A,#data ; A datadata A ANL direct,A ; (direct) A directdirect ANL direct,# data ; (direct) data direct上面的指令也可以分為兩類:上面的指令也可以分為兩類: 1,以,以累加器累加器A為目標寄存器的邏輯運算指令;為目標寄存器的邏輯運算指令; 2,以,以內(nèi)存單元內(nèi)存單元為目標的邏輯運算指令。為目標的邏輯運算指令。65應用舉例應用舉例( (一一) )已知(已知(R0)=30H和(和(30H)=0AAH,試問執(zhí)

54、行下列指令后累加試問執(zhí)行下列指令后累加器器A和和30H單元中的內(nèi)容是什么?單元中的內(nèi)容是什么?1, MOV A,#0FFH 2,MOV A,#0FHANL A,R0 ANL A,30H(A=30H,(30H)=0AAH) (A=0AH,(30H)=0AAH)3,MOV A,#0F0H 4,MOV A,#80HANL A,R0 ANL 30H,A(A=0A0H,(30H)=0AAH)()(A=80H,(30H)=80H)很明顯:很明顯:ANL操作可以從某個存儲單元中取出某幾位,而把其它的位操作可以從某個存儲單元中取出某幾位,而把其它的位清零清零。662 2、邏輯或運算指令、邏輯或運算指令格式:格

55、式: ORL A,Rn ;A R n A ORL A,direct ; A (directdirect) A ORL A,Ri ; A ( R I ) A ORL A,#data ; A datadata A ORL direct,A ; (direct) A directdirect ORL direct,# data ; (direct) data direct同與運算一樣,上面的指令也可以分為兩類:同與運算一樣,上面的指令也可以分為兩類: 1,以,以累加器累加器A為目標寄存器的邏輯運算指令;為目標寄存器的邏輯運算指令; 2,以,以內(nèi)存單元內(nèi)存單元為目標的邏輯運算指令。為目標的邏輯運算指令

56、。67應用舉例應用舉例設累加器設累加器A=0AAH,P1口口=0FFH。試編程將累加器。試編程將累加器A中的低四位中的低四位送送P1口的低四位,而口的低四位,而P1口的高四位不變??诘母咚奈徊蛔儭?解:解: MOV R0,A;累加器;累加器A中的數(shù)據(jù)暫存中的數(shù)據(jù)暫存ANL A,#0FH ;屏蔽;屏蔽A的高的高4位位ANL P1,#0F0H;屏蔽;屏蔽P1口的低口的低4位位ORL P1,A;在;在P1口組裝口組裝MOV A,R0;恢復累加器;恢復累加器A的數(shù)據(jù)的數(shù)據(jù)【小結小結】: 與運算與運算可以可以 “ “清零清零” ” 某些位某些位; ;或運算或運算可以可以 “ “置位置位” ” 某些位。某

57、些位。683 3、邏輯異或運算指令、邏輯異或運算指令格式:格式: XRL A,Rn; A R n A XRL A,direct ; A (directdirect) A XR A,Ri; A ( ( R I ) AR I ) A XRL A,#data; A datadata A XRL direct,A; (direct) A directdirect XRL direct,# data; (direct) data direct特點:按位運算,相同時為特點:按位運算,相同時為0,不同時為,不同時為1。使用異或可以實現(xiàn)將。使用異或可以實現(xiàn)將某個字節(jié)的數(shù)據(jù)或?qū)?shù)據(jù)的某幾位某個字節(jié)的數(shù)據(jù)或?qū)?shù)據(jù)

58、的某幾位取反取反。69舉例舉例已知:外部已知:外部RAM的的30H單元中有一個數(shù)單元中有一個數(shù)AAH,現(xiàn)要將其高,現(xiàn)要將其高4位不位不變,低變,低4位取反,試編程。位取反,試編程。解解1,利用,利用MOVX A,Ri指令:指令:MOV R0,#30H 1 0 1 0 1 0 1 0MOVX A,R0 0 0 0 0 1 1 1 10 0 0 0 1 1 1 1XRL A,#0FH 1 0 1 01 0 1 0 0 1 0 10 1 0 1MOVX R0,A解解2,利用,利用MOVX A,DPTRMOV DPTR,#0030HMOVX A,DPTRXRL A,#0FHMOVX DPTR,A704

59、 4、累加器清零和取反指令、累加器清零和取反指令用傳送指令可以實現(xiàn)對累加器用傳送指令可以實現(xiàn)對累加器A的清零和取反操作,但是它們都是雙字的清零和取反操作,但是它們都是雙字節(jié)指令。在節(jié)指令。在MCS-51的指令系統(tǒng)中專門設計了單字節(jié)、單周期對累加器的指令系統(tǒng)中專門設計了單字節(jié)、單周期對累加器清零和取反的指令。清零和取反的指令。格式:格式:CLR A ;累加器清零;累加器清零CPL A ;累加器取反;累加器取反 取反指令可以方便的實現(xiàn)求補操作。取反指令可以方便的實現(xiàn)求補操作。舉例:舉例:已知已知30H單元中有一個數(shù)單元中有一個數(shù)x,寫出對它求補的程序。,寫出對它求補的程序。MOV A,30HCPL

60、 AINC AMOV 30H,A71A.0A.7A.0A.7A.0A.7A.0A.7CYCYRL ARR ARLC ARRC A72 循環(huán)指令可以實現(xiàn)數(shù)據(jù)各位的循環(huán)移位、循環(huán)檢測,循環(huán)指令可以實現(xiàn)數(shù)據(jù)各位的循環(huán)移位、循環(huán)檢測,也可以對數(shù)據(jù)乘也可以對數(shù)據(jù)乘2、除、除2操作。操作。 MOV A , 02H CLR C RLC A ; A*2 MOV A , 06H CLR C RRC A ; A/2733.6 3.6 控制轉移指令控制轉移指令 1 1、無條件轉移指令、無條件轉移指令 2 2、條件轉移指令、條件轉移指令 3 3、子程序調(diào)用和返回、子程序調(diào)用和返回 4 4、空操作指令、空操作指令743

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論