版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、機械電子工程學(xué)院機械電子工程學(xué)院第第4章章 匯編語言程序設(shè)計匯編語言程序設(shè)計4. 1 概概 述述4. 2 簡單程序簡單程序4. 3 分支程序分支程序4. 4 循環(huán)程序循環(huán)程序4. 6 子程序的設(shè)計及調(diào)用子程序的設(shè)計及調(diào)用 4. 7 程序設(shè)計舉例程序設(shè)計舉例4. 5 查表程序查表程序機械電子工程學(xué)院機械電子工程學(xué)院4.1 概述概述占用的內(nèi)存單元和占用的內(nèi)存單元和CPU資源少資源少執(zhí)行速度快執(zhí)行速度快有效地利用計算機的有效地利用計算機的專有特性專有特性適合實時控制適合實時控制 可計算程序運行時間可計算程序運行時間MOV P1, A如:如: 輸出操作輸出操作一、匯編語言和高級語言相比具有下列優(yōu)點:一
2、、匯編語言和高級語言相比具有下列優(yōu)點:機械電子工程學(xué)院機械電子工程學(xué)院二、匯編語言程序設(shè)計的步驟:二、匯編語言程序設(shè)計的步驟:建立數(shù)學(xué)模型建立數(shù)學(xué)模型確定算法確定算法制定流程圖制定流程圖確定數(shù)據(jù)結(jié)構(gòu)確定數(shù)據(jù)結(jié)構(gòu)寫出源程序?qū)懗鲈闯绦蛏蠙C調(diào)試上機調(diào)試三、匯編語言程序的結(jié)構(gòu)三、匯編語言程序的結(jié)構(gòu)定義有關(guān)字符名定義有關(guān)字符名定義程序的起始地址定義程序的起始地址程序主體程序主體匯編結(jié)束標志匯編結(jié)束標志4.1 概述概述機械電子工程學(xué)院機械電子工程學(xué)院例例1:內(nèi)部內(nèi)部RAM從從DATA1單元開始有一數(shù)據(jù)塊,存放若干單元開始有一數(shù)據(jù)塊,存放若干無符號數(shù),第一單元為數(shù)據(jù)塊長度,求這些無符號數(shù)之和。無符號數(shù),第一
3、單元為數(shù)據(jù)塊長度,求這些無符號數(shù)之和。;首址送首址送R0 ;長度送長度送R1;檢查長度是否為零檢查長度是否為零;為零則結(jié)束為零則結(jié)束;不為零則開始運算不為零則開始運算;加一個數(shù)加一個數(shù);長度減長度減1,不為零則轉(zhuǎn)移,不為零則轉(zhuǎn)移;存和存和起始地址起始地址程序主體程序主體匯編結(jié)束標志匯編結(jié)束標志標號標號注釋注釋MOV R1, DATA1 CJNE R1, #0 , NEXTORG 2000H START:MOV R0,#DATA1HERE: SJMP $ NEXT: CLR ALOOP: INC R0 ADD A,R0 DJNZ R1, LOOP MOV SUM , A SJMP HEREDAT
4、A1 DATA 20HSUM DATA 1FH END 機械電子工程學(xué)院機械電子工程學(xué)院四、評價程序質(zhì)量的標準:四、評價程序質(zhì)量的標準: 程序的執(zhí)行時間程序的執(zhí)行時間 程序所占用的內(nèi)存字節(jié)數(shù)目程序所占用的內(nèi)存字節(jié)數(shù)目 程序的邏輯性、可讀性程序的邏輯性、可讀性 程序的兼容性、可擴展性程序的兼容性、可擴展性 程序的可靠性程序的可靠性時時 間間空空 間間概概念念4.1 概述概述機械電子工程學(xué)院機械電子工程學(xué)院BCD碼碼09對應(yīng)的對應(yīng)的ASCII碼為碼為30H39H,轉(zhuǎn)換時,將轉(zhuǎn)換時,將20H中的中的BCD碼拆開,高四位碼拆開,高四位置為置為“0011”即可。即可。4.2 簡單程序簡單程序簡單程序的特
5、點:簡單程序的特點:既無分支,又無循環(huán),按照順序執(zhí)行。既無分支,又無循環(huán),按照順序執(zhí)行。例例2將一個字節(jié)內(nèi)的兩個將一個字節(jié)內(nèi)的兩個BCD碼拆開并變成碼拆開并變成ASCII碼,碼, 存入兩個存入兩個RAM單元。單元。BCD碼放在內(nèi)部碼放在內(nèi)部RAM的的20H, 轉(zhuǎn)換后高半字節(jié)放到轉(zhuǎn)換后高半字節(jié)放到21H,低字節(jié)放,低字節(jié)放22H。 BCDH BCDL00110011RAM21H22H20H方法方法1:BCDHBCDL可完成一定的基本功能,是編寫復(fù)雜程序的基礎(chǔ)。可完成一定的基本功能,是編寫復(fù)雜程序的基礎(chǔ)。ASCII碼碼機械電子工程學(xué)院機械電子工程學(xué)院 程序:程序:0011 BCDH0000 000
6、0 MOV R0, #22H MOV R0, #0 MOV A, 20H XCHD A, R0 ORL 22H, #30H SWAP A ORG 1000H ORL A, #30H MOV 21H, A SJMP $ END;R0 22H; 22H 0;兩個兩個BCD數(shù)送數(shù)送A;BCDL數(shù)送數(shù)送22H;完成轉(zhuǎn)換完成轉(zhuǎn)換;BCDH數(shù)送數(shù)送A的低的低4位位;完成轉(zhuǎn)換完成轉(zhuǎn)換;存數(shù)存數(shù)BCDH BCDLBCDL00000011BCDH BCDLRAM21H22H20H0000BCDH0011AR0;原地踏步,相當(dāng)于停機原地踏步,相當(dāng)于停機4.2 簡單程序簡單程序機械電子工程學(xué)院機械電子工程學(xué)院方法方
7、法1小結(jié):小結(jié): 以上程序用了以上程序用了8條指令,條指令,15個內(nèi)存字節(jié),執(zhí)行時間為個內(nèi)存字節(jié),執(zhí)行時間為9個個機器周期。機器周期。方法方法2:采用除以采用除以10H取余法將兩個取余法將兩個BCD數(shù)拆開。數(shù)拆開。BCDH BCDLA0001 00000000 BCDH0000 BCDLBABDIV ABORL , #30H AB4.2 簡單程序簡單程序機械電子工程學(xué)院機械電子工程學(xué)院0011 BCDH0011 BCDL 程序:程序: MOV A, 20H MOV B,#10H DIV AB ORL B, #30H MOV 22H, B ORL A, #30H ORG 1000H MOV 21
8、H, A SJMP $ END;取取BCD碼至碼至A; 完成轉(zhuǎn)換完成轉(zhuǎn)換;存存ASCII碼碼;完成轉(zhuǎn)換完成轉(zhuǎn)換;存存ASCII碼碼;除除10H取余,使取余,使BCDH A 、BCDL BBCDH BCDLA0001 00000000 BCDH0000 BCDLBABDIV AB00110011BCDH BCDLRAM21H22H20H4.2 簡單程序簡單程序機械電子工程學(xué)院機械電子工程學(xué)院方法方法2小結(jié):小結(jié): 以上程序用了以上程序用了7條指令,條指令, 16個內(nèi)存字節(jié),個內(nèi)存字節(jié), 執(zhí)行時間為執(zhí)行時間為13個機器周期。個機器周期。雙字節(jié)求補雙字節(jié)求補設(shè):兩個字節(jié)原碼數(shù)存在設(shè):兩個字節(jié)原碼數(shù)存
9、在R1、R0中。中。要求:求補后的結(jié)果存到要求:求補后的結(jié)果存到R3、R2中。中。例例3:方法:方法:求補采用求補采用“模模 - 原碼原碼”的方法,的方法,即用即用“0”去減去減“原碼原碼”。R0R1原碼原碼-)R2R300H00H4.2 簡單程序簡單程序機械電子工程學(xué)院機械電子工程學(xué)院程序:程序: CLR C CLR A SUBB A, R0 MOV R2, A CLR A SUBB A, R1 ORG 1000H MOV R3 , A SJMP $ END ;CY 0; A 0;低字節(jié)求補低字節(jié)求補;送送R2;A清零清零;高字節(jié)求補高字節(jié)求補;送送R34.2 簡單程序簡單程序R0R1原碼原
10、碼-)R2R300H00H機械電子工程學(xué)院機械電子工程學(xué)院 將內(nèi)部將內(nèi)部RAM的的20H單元中的單元中的8位無符號二進制數(shù),位無符號二進制數(shù),轉(zhuǎn)換為轉(zhuǎn)換為3位位BCD碼,并將結(jié)果存放在碼,并將結(jié)果存放在FIRST(百位)和(百位)和SECOND(十位、個位)兩個單元中。(十位、個位)兩個單元中。例例4:解:解: 可將被轉(zhuǎn)換數(shù)除以可將被轉(zhuǎn)換數(shù)除以100,得百位數(shù);余數(shù)除以,得百位數(shù);余數(shù)除以10得十位數(shù);最后余數(shù)即為個位數(shù)。得十位數(shù);最后余數(shù)即為個位數(shù)。例例如如:255(十進制)除以(十進制)除以100,得,得 2(百位數(shù));(百位數(shù)); 余數(shù)除以余數(shù)除以10,得,得5(十位數(shù));(十位數(shù));
11、最后余數(shù)最后余數(shù)5即為個位數(shù)。即為個位數(shù)。4.2 簡單程序簡單程序機械電子工程學(xué)院機械電子工程學(xué)院 5 5 H 程序(設(shè)程序(設(shè)(20H)=0FFH):): ;取數(shù)取數(shù); 除數(shù)除數(shù) B; 除以除以100;百位百位BCD;除以除以10;除數(shù)除數(shù)10 B;十位數(shù)送高位十位數(shù)送高位;A為十位、個位為十位、個位BCDMOV A, 20HMOV B, #64HDIV AB MOV FIRST, A MOV B, #0AH DIV ABORG 1000H SWAP A ORL A, BMOV SECOND, ASJMP $FIRST DATA 21HSECOND DATA 22HEND;存十位、個位數(shù)存十
12、位、個位數(shù)A0FFHB 6 4H 0 2H 3 7H 0 AH 3 7HMOV A, B 0 5H 0 5H 5 0H 5 5H0 FFHRAM21H22H20H 0 2 HFIRSTSECOND機械電子工程學(xué)院機械電子工程學(xué)院4.3 分支程序分支程序簡單分支:簡單分支:測試標志位,判斷程序設(shè)置的條件。測試標志位,判斷程序設(shè)置的條件。解:解:這是一個簡單分支程序,可以使兩數(shù)相減,若這是一個簡單分支程序,可以使兩數(shù)相減,若CY=1,則被減數(shù)小于減數(shù)。用則被減數(shù)小于減數(shù)。用JC指令進行判斷。指令進行判斷。N路分支:路分支:利用散轉(zhuǎn)指令利用散轉(zhuǎn)指令JMP A+DPTR可轉(zhuǎn)向任一處理程序??赊D(zhuǎn)向任一處
13、理程序。例例5 設(shè)內(nèi)部設(shè)內(nèi)部RAM 30H、31H存放兩個無符號數(shù),試比較存放兩個無符號數(shù),試比較 兩數(shù)的大小,較小的數(shù)存入兩數(shù)的大小,較小的數(shù)存入30H單元,較大的數(shù)單元,較大的數(shù) 存入存入31H單元。單元。多重分支:多重分支:判斷判斷2個以上的條件,被稱為復(fù)合條件。個以上的條件,被稱為復(fù)合條件。根據(jù)程序運行情況,可以有根據(jù)程序運行情況,可以有N種選擇。種選擇。簡單分支程序舉例簡單分支程序舉例機械電子工程學(xué)院機械電子工程學(xué)院 程序:程序: CLR C MOV A, 30H SUBB A, 31H JC NEXT MOV A, 30H XCH A, 31HORG 1000H MOV 30H,
14、A NEXT :NOPSJMP $END;CY 0;做減法比較兩數(shù)做減法比較兩數(shù);若(若(30H)小,)小,則轉(zhuǎn)移則轉(zhuǎn)移;交換兩數(shù)交換兩數(shù)(30H)-(31H)CY=1?交換兩數(shù)交換兩數(shù)ENDSTART Y N流程圖:流程圖:CY=1則轉(zhuǎn)移則轉(zhuǎn)移若若CY1則則順序執(zhí)行順序執(zhí)行4.3 分支程序分支程序機械電子工程學(xué)院機械電子工程學(xué)院例例6:空調(diào)機制冷時,若排出的空氣溫度比吸入的空氣溫度空調(diào)機制冷時,若排出的空氣溫度比吸入的空氣溫度低低8,則認為工作正常(標志為,則認為工作正常(標志為00H),否則便認為是故障,),否則便認為是故障,并設(shè)置故障標志(并設(shè)置故障標志(0FFH)。)。解:解:為了可靠
15、地監(jiān)測空調(diào)機的工作情況,做兩次減法:為了可靠地監(jiān)測空調(diào)機的工作情況,做兩次減法:第一次(第一次(40H)-(41H),若),若CY=1 ,則表明有故障;,則表明有故障;第二次兩個溫度的差值減去第二次兩個溫度的差值減去8 ,若,若CY=1 ,則表明,則表明有故障。有故障。首先定義一些工作單元首先定義一些工作單元內(nèi)部內(nèi)部RAM40H41H42H進氣溫度值進氣溫度值排氣溫度值排氣溫度值故障標志故障標志低低高高制熱制熱?制冷能力不足制冷能力不足?4.3 分支程序分支程序機械電子工程學(xué)院機械電子工程學(xué)院A(40H)-(41H)CY=1?(A)-8ENDSTART Y NCY=1?42HFFH42H0 Y
16、 N流程圖:流程圖:故故 障障正常正常進氣進氣 排氣排氣故故 障障4.3 分支程序分支程序40H41H42H進氣溫度值進氣溫度值排氣溫度值排氣溫度值故障標志故障標志機械電子工程學(xué)院機械電子工程學(xué)院 ORG 1000HSTART:MOV A, 40HCLR CSUBB A, 41HJC ERRORMOV 42H, #0JC ERRORSUBB A, #8SJMP EXITERROR:MOV 42H, #0FFHEXIT: SJMP $END程序:程序:;進氣溫度值送;進氣溫度值送A; 0 CY; A(40H)-(41H);CY=1,則故障,則故障;是則故障是則故障;溫度小于溫度小于8?;工作正常
17、標志工作正常標志;轉(zhuǎn)出口轉(zhuǎn)出口;設(shè)置故障標志設(shè)置故障標志若若CY1順順序執(zhí)行序執(zhí)行CY=1轉(zhuǎn)轉(zhuǎn)移移CY=1轉(zhuǎn)轉(zhuǎn)移移若若CY1順順序執(zhí)行序執(zhí)行;停機;停機4.3 分支程序分支程序40H41H42H進氣溫度值進氣溫度值排氣溫度值排氣溫度值故障標志故障標志機械電子工程學(xué)院機械電子工程學(xué)院多重分支程序舉例多重分支程序舉例例例7:設(shè):設(shè)30H單元存放的是一元二次方程單元存放的是一元二次方程ax2+bx+c = 0 根的判別式根的判別式= b2 4ac的值。的值。試根據(jù)試根據(jù)30H單元的值,編寫程序,判斷方程根的三種情況。單元的值,編寫程序,判斷方程根的三種情況。在在31H中存放中存放“0”代表無實根,代
18、表無實根, 存放存放“1”代表有相同的實根,代表有相同的實根, 存放存放“2”代表兩個不同的實根。代表兩個不同的實根。解:解:為有符號數(shù),有三種情況,即小于零、等于零、大于為有符號數(shù),有三種情況,即小于零、等于零、大于零。零。這是一多重分支程序。這是一多重分支程序??梢杂脙蓚€條件轉(zhuǎn)移指令來判斷,首先判斷符號位,用可以用兩個條件轉(zhuǎn)移指令來判斷,首先判斷符號位,用指令指令“JNB ACC.7, rel”判斷,判斷,若若ACC.7 = 1,則一定為負數(shù),此時,則一定為負數(shù),此時0;若若ACC.7 = 0,則,則0。此時再用指令。此時再用指令JNZ rel 判斷。判斷。若若0,則,則 0,否則,否則=
19、 0。4.3 分支程序分支程序機械電子工程學(xué)院機械電子工程學(xué)院流程圖:流程圖:AAcc.7=1?ENDSTART Y N(A)= 0?31H031H2 Y N31H1 0,則無實根則無實根= 0,則則 1個實根個實根 0,則則2個實根個實根4.3 分支程序分支程序機械電子工程學(xué)院機械電子工程學(xué)院程序:程序: ORG 1000HSTART:MOV A, 30HJNB ACC.7, YESMOV 31H, #0SJMP FINISHYES: JNZ TOWMOV 31H, #1SJMP FILISHTOW: MOV 31H, #2FINISH:SJMP $END;值送值送A;0 轉(zhuǎn)轉(zhuǎn)YES; 0轉(zhuǎn)
20、轉(zhuǎn) TOW;有兩個不同實根有兩個不同實根4.3 分支程序分支程序機械電子工程學(xué)院機械電子工程學(xué)院4.4 循環(huán)程序循環(huán)程序循環(huán)程序:一些有規(guī)可循而又反復(fù)處理的問題。循環(huán)程序:一些有規(guī)可循而又反復(fù)處理的問題。利用利用CJNE(比較轉(zhuǎn)移指令)、(比較轉(zhuǎn)移指令)、 DJNZ(減(減1不為不為“0”轉(zhuǎn)移指令)轉(zhuǎn)移指令)等實現(xiàn)。等實現(xiàn)。例例8:在內(nèi)部在內(nèi)部RAM 30H4FH 連續(xù)連續(xù)32個單元中存放了單字節(jié)無個單元中存放了單字節(jié)無符號數(shù),求符號數(shù),求32個無符號數(shù)之和,并存入內(nèi)部個無符號數(shù)之和,并存入內(nèi)部RAM 51H、50H中。中。解:解:這是重復(fù)相加問題,這是重復(fù)相加問題,要設(shè)置一些工作單元。要設(shè)置
21、一些工作單元。 設(shè):設(shè):R0 作加數(shù)作加數(shù)地址指針地址指針,R7 作作循環(huán)次數(shù)計數(shù)器循環(huán)次數(shù)計數(shù)器,R3 作和數(shù)的高字節(jié)寄存器。作和數(shù)的高字節(jié)寄存器。機械電子工程學(xué)院機械電子工程學(xué)院流程圖:流程圖:#31R7 #0R3(30H)A #31HR0CY=0?ENDSTART (R7)-1=0? 51H(R3)50H (A) Y N(A)+(R0)A(R0+1)R0(R3)+1R3NYNY(A)+(R0)A(R3)+1R3R0 -加數(shù)加數(shù)地址指針地址指針R7 -循環(huán)次數(shù)計數(shù)器循環(huán)次數(shù)計數(shù)器R3 -和數(shù)的高字節(jié)寄存器和數(shù)的高字節(jié)寄存器機械電子工程學(xué)院機械電子工程學(xué)院 程序:程序:;R7作循環(huán)次數(shù)計數(shù)器
22、作循環(huán)次數(shù)計數(shù)器;R3作和數(shù)高字節(jié)寄存器作和數(shù)高字節(jié)寄存器;取被加數(shù)取被加數(shù);R0作加數(shù)地址指針作加數(shù)地址指針;CY=0,和,和256,則轉(zhuǎn)則轉(zhuǎn);作加法作加法;CY=1,加到高字節(jié),加到高字節(jié);修改修改R0指針指針;未完,繼續(xù)加未完,繼續(xù)加;存和數(shù)存和數(shù)初始化部分初始化部分循環(huán)體部分循環(huán)體部分結(jié)束部分結(jié)束部分 ORG 0200HSTART:MOV R7, #31MOV R3, #0MOV A, 30HMOV R0, #31HLOOP:ADD A, R0JNC NEXTINC R3NEXT :INC R0DJNZ R7, LOOPMOV 51H, R3MOV 50H, ASJMP $END循環(huán)執(zhí)
23、行循環(huán)執(zhí)行直到直到R7=0循環(huán)循環(huán)控制控制循環(huán)程序循環(huán)程序的結(jié)構(gòu)的結(jié)構(gòu)循環(huán)控制循環(huán)控制R0 -加數(shù)加數(shù)地址指針地址指針R7 -循環(huán)次數(shù)計數(shù)器循環(huán)次數(shù)計數(shù)器R3 -和數(shù)的高字節(jié)寄存器和數(shù)的高字節(jié)寄存器機械電子工程學(xué)院機械電子工程學(xué)院例例9:從外部從外部RAM BLOCK單元開始有一無符號數(shù)數(shù)據(jù)塊,單元開始有一無符號數(shù)數(shù)據(jù)塊,數(shù)據(jù)塊長度存于數(shù)據(jù)塊長度存于LEN單元,求出其中最大數(shù),并存入單元,求出其中最大數(shù),并存入MAX單元。單元。為了方便進行比較,我們使用:為了方便進行比較,我們使用:CY:判斷兩數(shù)的大小,判斷兩數(shù)的大小,B:比較與交換的寄存器,比較與交換的寄存器,DPTR:外部外部RAM地址指
24、針地址指針。解:解:這是一個基本搜索問題,采用兩兩比較法。這是一個基本搜索問題,采用兩兩比較法。取兩者較大的數(shù)再與下一個數(shù)進行比較,取兩者較大的數(shù)再與下一個數(shù)進行比較,若數(shù)據(jù)塊長度若數(shù)據(jù)塊長度LEN=n,則應(yīng)比較則應(yīng)比較n-1次,次,最后較大的數(shù)就是數(shù)據(jù)塊中的最大數(shù)。最后較大的數(shù)就是數(shù)據(jù)塊中的最大數(shù)。4.4 循環(huán)程序循環(huán)程序機械電子工程學(xué)院機械電子工程學(xué)院流程圖:流程圖:DPTR#BLOCK LENLEN-1A(DPTR)CY=0?ENDSTART Y NLEN-1=0? MAX最大數(shù)最大數(shù) Y NCY0 B(A) (DPTR)+1 A(DPTR) A(A)-(B)若(若(A)(B)則則A(B
25、)+(A)A中中 的數(shù)總是較大的數(shù)總是較大較大數(shù)較大數(shù)交換至交換至A恢復(fù)恢復(fù)較大數(shù)至較大數(shù)至A初始化初始化工作單元工作單元機械電子工程學(xué)院機械電子工程學(xué)院程序程序;定義數(shù)據(jù)塊首址定義數(shù)據(jù)塊首址;定義最大數(shù)暫存單元定義最大數(shù)暫存單元;定義長度計數(shù)單元定義長度計數(shù)單元FMAX: MOV DPTR, #BLOCKORG 0200HBLOCK DATA 0100HMAX DATA 31HLEN DATA 30HSJMP NEXT1NEXT: ADD A, BNEXT1: DJNZ LEN, LOOPMOV MAX, ASJMP $END DEC LENMOVX A, DPTRLOOP: CLR CMO
26、V B, AINC DPTRMOVX A, DPTRSUBB A, BJNC NEXTMOV A, B;數(shù)據(jù)塊首址送數(shù)據(jù)塊首址送DPTR;長度減長度減1;取數(shù)至取數(shù)至A;0CY;修改指針修改指針;暫存于暫存于B;取下一數(shù)取下一數(shù);大者送大者送A;若(若(A)(B)則恢復(fù))則恢復(fù)A;未完繼續(xù)比較未完繼續(xù)比較;存最大數(shù)存最大數(shù);*若用若用RET指令結(jié)尾則指令結(jié)尾則 該程序可作子程序調(diào)用該程序可作子程序調(diào)用;作減法比較作減法比較RET機械電子工程學(xué)院機械電子工程學(xué)院例例10:從外部從外部RAM BLOCK單元開始有一數(shù)據(jù)塊,單元開始有一數(shù)據(jù)塊, 數(shù)據(jù)塊長度存于數(shù)據(jù)塊長度存于LEN單元,單元,試統(tǒng)計其
27、中試統(tǒng)計其中正數(shù)正數(shù)、負數(shù)負數(shù)和和零零的個數(shù)的個數(shù),分別存入分別存入PCOUNT、MCOUNT、ZCOUNT單元。單元。解:解:這是一個多重分支的單循環(huán)問題。數(shù)據(jù)塊中是帶符號數(shù)。這是一個多重分支的單循環(huán)問題。數(shù)據(jù)塊中是帶符號數(shù)。先用先用JB ACC.7,rel 指令判斷符號位。指令判斷符號位。若若ACC.7=1,則該數(shù)一定是負數(shù),則該數(shù)一定是負數(shù),MCOUNT單元加單元加1;若若ACC.7=0,則該數(shù)可能是正數(shù),也可能是零。,則該數(shù)可能是正數(shù),也可能是零。用用JNZ rel 判斷判斷A是否為零。是否為零。若若A0,則一定是正數(shù),則一定是正數(shù),PCOUNT單元加單元加1;若既不為正也不為負,則一
28、定是零,若既不為正也不為負,則一定是零,ZCOUNT單元加單元加1。4.4 循環(huán)程序循環(huán)程序機械電子工程學(xué)院機械電子工程學(xué)院流程圖:流程圖:DPTR#BLOCK PCOUNT0MCOUNT0 ZCOUNT0ACC.7=0?ENDSTART Y N(A)=0? DPTR+1 Y N A(DPTR)ZCOUNT+1MCOUNT+1LEN-1=0?PCOUNT+1 Y N負數(shù)負數(shù)正數(shù)正數(shù)零零機械電子工程學(xué)院機械電子工程學(xué)院程序:程序:ORG 0200HBLOCK DATA 2000HLEN DATA 30HPCOUNT DATA 31HMCOUNT DATA 32HZCOUNT DATA 33H;定
29、義數(shù)據(jù)塊首址定義數(shù)據(jù)塊首址;定義長度計數(shù)單元定義長度計數(shù)單元;定義正計數(shù)單元定義正計數(shù)單元;定義負計數(shù)單元定義負計數(shù)單元;定義零計數(shù)單元定義零計數(shù)單元4.4 循環(huán)程序循環(huán)程序機械電子工程學(xué)院機械電子工程學(xué)院;數(shù)據(jù)塊首址送數(shù)據(jù)塊首址送DPTR;計數(shù)單元清零計數(shù)單元清零;若若ACC.7=1 轉(zhuǎn)負計數(shù)轉(zhuǎn)負計數(shù);取數(shù)取數(shù);若(若(A)0,轉(zhuǎn)正計數(shù),轉(zhuǎn)正計數(shù);若(若(A)=0,則零的個數(shù)加,則零的個數(shù)加1;負計數(shù)單元加負計數(shù)單元加1;正計數(shù)單元加正計數(shù)單元加1;修正指針修正指針;未完繼續(xù)未完繼續(xù)NEXT: INC DPTR DJNZ LEN,LOOPSJMP $ENDSTART:MOV DPTR, #B
30、LOCK MOV PCOUNT, #0LOOP: MOVX A,DPTRJB ACC.7, MCNTJNZ PCNTINC ZCOUNTAJMP NEXTMCNT: INC MCOUNT MOV MCOUNT, #0 MOV ZCOUNT, #0AJMP NEXTPCNT:INC PCOUNT4.4 循環(huán)程序循環(huán)程序機械電子工程學(xué)院機械電子工程學(xué)院4.5 查表程序查表程序?qū)τ趶?fù)雜函數(shù)的計算如對于復(fù)雜函數(shù)的計算如:非線性函數(shù)非線性函數(shù)對數(shù)、指數(shù)、三角函數(shù)對數(shù)、指數(shù)、三角函數(shù)微分、積分等微分、積分等用匯編編程十分困難,用匯編編程十分困難,甚至無法建立數(shù)學(xué)模型,甚至無法建立數(shù)學(xué)模型,用用查表查表的方
31、法簡單便捷。的方法簡單便捷。MCS-51指令系統(tǒng)中有兩條指令具有極強的查表功能。指令系統(tǒng)中有兩條指令具有極強的查表功能。(1) MOVC A, A+DPTR作作基址寄存器基址寄存器作作變址寄存器變址寄存器長查表指令長查表指令尋址尋址64KB(2) MOVC A, A + PC作基址寄存器作基址寄存器作變址作變址短查表指令短查表指令頁內(nèi)查表指令頁內(nèi)查表指令指向表格首址指向表格首址指向表格的第指向表格的第 i 項項16位數(shù)據(jù)指針位數(shù)據(jù)指針第第i項加項加變址調(diào)整值變址調(diào)整值不能不能機械電子工程學(xué)院機械電子工程學(xué)院例例11:一個十六進制數(shù)放在一個十六進制數(shù)放在HEX單元的低四位單元的低四位, 將其轉(zhuǎn)換
32、成將其轉(zhuǎn)換成ASCII碼碼 。實現(xiàn)方法:實現(xiàn)方法:解:解:十六進制十六進制 09 的的ASCII碼為碼為 30H39H, AF 的的ASCII碼為碼為 41H46H, 2、利用查表指令、利用查表指令 MOVC A, A+DPTRMOVC A, A+PC1、先用偽指令、先用偽指令 DB 或或 DW 把表格的數(shù)據(jù)存入把表格的數(shù)據(jù)存入ROMASCII碼表格的首址為碼表格的首址為ASCTAB4.5 查表程序查表程序機械電子工程學(xué)院機械電子工程學(xué)院ASCTAB:DB 30H, 31H, 32H, 33HDB 34H, 35H, 36H, 37HDB 38H, 39H, 41H, 42HDB 43H, 4
33、4H, 45H, 46H END方法方法1: 0 1 2 3 4 5 6 7 8 9 A B C D E F ORG 0200HHEX EQU 30HHEXASC: MOV A, HEXMOV DPTR, #ASCTABMOVC A, A+DPTRMOV HEX, ARETANL A, #0FHDPTR(A)= 333H(A)= 1546H4.5 查表程序查表程序機械電子工程學(xué)院機械電子工程學(xué)院0200H0202H0204H0207H0208H020AH020BH020CHPCPCPCPCA ALU01HPC31H 查十六進制數(shù)查十六進制數(shù)“01H”的的ASCII碼(碼(DPTR做基址)做基址
34、)MOV A, HEXANL A, #0FHMOV DPTR, #ASCTABMOVC A, A+DPTRMOV HEX, ARET30H 46H31HDPTR020BHDPTR4.5 查表程序查表程序機械電子工程學(xué)院機械電子工程學(xué)院方法方法2: ORG 0200HHEX EQU 30HHEXASC: MOV A, HEXANL A, #00001111BADD A, #3MOVC A, A+PCMOV HEX, ARETASCTAB:DB 30H, 31H, 32H, 33HDB 34H, 35H, 36H, 37HDB 38H, 39H, 41H, 42HDB 43H, 44H, 45H,
35、 46HEND;變址調(diào)整變址調(diào)整;2字節(jié)字節(jié);1字節(jié)字節(jié)PCPC#3;變址調(diào)整變址調(diào)整4.5 查表程序查表程序機械電子工程學(xué)院機械電子工程學(xué)院HEXASC:MOV A, HEXANL A, #0FHADD A, #3MOVC A, A+PCMOV HEX, ARET30H 46H31H0200H0202H0204H0206H0207H0209H020AH020BHPCPCPCPCA ALU(PC) = 0207H01HPC04H31H 查十六進制數(shù)查十六進制數(shù)“01H”的的ASCII碼(碼(PC做基址)。做基址)。4.5 查表程序查表程序機械電子工程學(xué)院機械電子工程學(xué)院4.6 子程序的設(shè)計及調(diào)
36、用子程序的設(shè)計及調(diào)用4.6.1 子程序的概念子程序的概念把能完成某種基本操作,并具有相同操作的程序段,單獨編把能完成某種基本操作,并具有相同操作的程序段,單獨編成子程序。成子程序。如:函數(shù)、如:函數(shù)、 運算、代碼轉(zhuǎn)換、數(shù)據(jù)采集、延時等。運算、代碼轉(zhuǎn)換、數(shù)據(jù)采集、延時等。利用調(diào)用子程序指令(利用調(diào)用子程序指令(ACALL或或LCALL)和從子程序返)和從子程序返回指令回指令RET。使用子程序的優(yōu)點:使用子程序的優(yōu)點: 不必重復(fù)書寫同樣的程序,提高編程效率。不必重復(fù)書寫同樣的程序,提高編程效率。 程序的邏輯結(jié)構(gòu)簡單,便于閱讀。程序的邏輯結(jié)構(gòu)簡單,便于閱讀。 縮短了源程序和目標程序的長度,節(jié)省了存儲
37、器空間。縮短了源程序和目標程序的長度,節(jié)省了存儲器空間。 使程序模塊化、通用化、便于交流共享資源。使程序模塊化、通用化、便于交流共享資源。 便于按某種功能進行調(diào)試。便于按某種功能進行調(diào)試。機械電子工程學(xué)院機械電子工程學(xué)院4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點1)子程序開頭的標號段必須有一個標志,該)子程序開頭的標號段必須有一個標志,該標志標志既是子程序既是子程序的的名字,名字,又是其又是其入口地址入口地址,以便主程序調(diào)用。,以便主程序調(diào)用。在主程序中利用指令在主程序中利用指令A(yù)CALL或或LCALL可轉(zhuǎn)入子程序。該可轉(zhuǎn)入子程序。該指令具有保護指令具有保護斷點斷點的功能。的功能。例如:調(diào)用
38、延時子程序例如:調(diào)用延時子程序LCALL(ACALL) DELYLCALL addr16; PC addr16,轉(zhuǎn)向子程序,轉(zhuǎn)向子程序;(PC) (PC)+3;SP (SP)+1,(SP) PC70;SP (SP)+1,(SP) PC158;在調(diào)用子程序之前,保護在調(diào)用子程序之前,保護斷點地址斷點地址1、子程序的結(jié)構(gòu)、子程序的結(jié)構(gòu)4.6 子程序的設(shè)計及調(diào)用子程序的設(shè)計及調(diào)用機械電子工程學(xué)院機械電子工程學(xué)院2)子程序結(jié)尾必須使用一條從子程序返回指令)子程序結(jié)尾必須使用一條從子程序返回指令RET, 它具有恢復(fù)斷點的功能。它具有恢復(fù)斷點的功能。RET;PC158 (SP) ,(,(SP) (SP)
39、-1;PC70 (SP) ,(,(SP) (SP) -1主程序主程序CALL斷點斷點子程序子程序RET4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院2、參數(shù)傳遞、參數(shù)傳遞子程序入口條件:子程序入口條件: 在調(diào)用一個子程序時,主程序應(yīng)先把有關(guān)參數(shù)放到某些在調(diào)用一個子程序時,主程序應(yīng)先把有關(guān)參數(shù)放到某些約定的位置約定的位置,子程序運行時,可以從約定的位置得到有關(guān)參,子程序運行時,可以從約定的位置得到有關(guān)參數(shù)。數(shù)。子程序出口條件:子程序出口條件:子程序結(jié)束前,也應(yīng)把處理結(jié)果送到子程序結(jié)束前,也應(yīng)把處理結(jié)果送到約定位置約定位置。參數(shù)傳遞的方法:參數(shù)傳遞的方法:1)子程序無
40、須傳遞參數(shù))子程序無須傳遞參數(shù) 這類子程序中所需要的參數(shù)由子程序賦予,不需要主這類子程序中所需要的參數(shù)由子程序賦予,不需要主程序給出。程序給出。4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院主程序:主程序:.LCALL DELY.子程序:子程序:不需主程序提供入口參數(shù),從子程序開始到子程序返回,不需主程序提供入口參數(shù),從子程序開始到子程序返回,大約大約為為20ms。例例13:調(diào)用延時子程序調(diào)用延時子程序DELYDELY: MOV R7, #100DLY0: MOV R6, #98NOPDLY1: DJNZ R6, DLY1DJNZ R7, DLY0RET子程序開始
41、的標號子程序開始的標號子程序返回指令子程序返回指令調(diào)用子程序調(diào)用子程序982=196s1s1s設(shè):主頻為設(shè):主頻為12MHZ2s(196+2+1+1) 100+3 =20003s = 20.003ms2s1s+3意味著每個機器周期為意味著每個機器周期為1s機械電子工程學(xué)院機械電子工程學(xué)院2)用)用累加器累加器和和工作寄存器工作寄存器傳遞參數(shù)傳遞參數(shù)入口參數(shù):入口參數(shù):放在累加器放在累加器A和工作寄存器中和工作寄存器中R0 R7中。中。出口參數(shù):出口參數(shù):放在累加器放在累加器A和工作寄存器中和工作寄存器中R0 R7中。中。例例14 雙字節(jié)求補子程序雙字節(jié)求補子程序CPLD。解:解:采用采用“變反
42、加變反加1”的方法,十六位數(shù)變反加的方法,十六位數(shù)變反加1, 不僅低字節(jié)要加不僅低字節(jié)要加1,高字節(jié)要加低字節(jié)的進位。,高字節(jié)要加低字節(jié)的進位。 故采用故采用ADD指令,不采用指令,不采用INC指令。指令。 INC指令不影響指令不影響CY位位。4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院入口參數(shù):(入口參數(shù):(R7R6)=16位數(shù)位數(shù)出口參數(shù):(出口參數(shù):(R7R6)=求補后的求補后的16位數(shù)位數(shù) CPLD: MOV A, R6CPL A ADD A, #1 MOV R6, A MOV A, R7 CPL A ADDC A, #0 MOV R7, A RETCy
43、+ Cy4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院 R0 R0 R03)通過操作數(shù))通過操作數(shù)地址地址傳遞參數(shù)傳遞參數(shù)入口參數(shù):(入口參數(shù):(R0)=求補數(shù)低字節(jié)指針,(求補數(shù)低字節(jié)指針,(R7)=n-1。出口參數(shù):(出口參數(shù):(R0)=求補后高字節(jié)指針。求補后高字節(jié)指針。例例15 n字節(jié)求補子程序字節(jié)求補子程序CPLNCPLN: MOV A, R0CPL AADD A, #1MOV R0, AMOV A, R0CPL AADDC A, #0MOV R0, ARETNEXT: INC R0DJNZ R7, NEXT內(nèi)部內(nèi)部RAM字節(jié)字節(jié)1字節(jié)字節(jié)2字節(jié)字節(jié)3字
44、節(jié)字節(jié)n R0 R04.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院4)通過)通過堆棧堆棧傳遞參數(shù)傳遞參數(shù)例例16:在在HEX單元存放兩個十六進制數(shù),將它們分別轉(zhuǎn)換單元存放兩個十六進制數(shù),將它們分別轉(zhuǎn)換成成ASCII碼并存入碼并存入ASC和和ASC+1單元。單元。解:解:由于要進行兩次轉(zhuǎn)換,故可調(diào)用查表子程序完成。由于要進行兩次轉(zhuǎn)換,故可調(diào)用查表子程序完成。MAIN:.PUSH HEX LCALL HASCPOP ASCMOV A, HEXSWAP APUSH ACCLCALL HASCPOP ASC+1.;轉(zhuǎn)子程序轉(zhuǎn)子程序;壓入壓入 被轉(zhuǎn)換數(shù)被轉(zhuǎn)換數(shù);ASCLAS
45、C;取被轉(zhuǎn)換數(shù)取被轉(zhuǎn)換數(shù);準備處理高四位準備處理高四位;壓入壓入;轉(zhuǎn)子程序轉(zhuǎn)子程序;ASCASC+1主程序主程序*PCH*PCL HEXSPSP+1SP+2SP+3棧底棧底*PC 斷點地址斷點地址4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院MOVC A, A+PC HASC: DEC SPDEC SPPOP ACCANL A, #0FHADD A, #5PUSH ACCINC SPINC SPRET ASCTAB: DB 0 1 2 7 DB 8 9 A F ;彈出彈出;修改修改SP指向指向HEX;屏蔽高四位屏蔽高四位;變址調(diào)整變址調(diào)整;查表查表;結(jié)果入棧結(jié)果入
46、棧(2);修改修改SP指向斷點位置指向斷點位置(1);子程序子程序*PCH*PCL HEXSPSP+1SP+2SP+3棧底棧底AHEXResultResultSP+1SP+2SP+3PC4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院 HEX SPSPSPSP .PUSH HEX LCALL HASCPOP ASCMOV A, HEXSWAP APUSH ACCLCALL HASCPOP ASC+1.MOVC A, A+PCHASC: DEC SPDEC SPPOP ACCANL A, #0FHADD A, #5PUSH ACCINC SPINC SPRETASCT
47、AB: DB 0 1 2 7 DB 8 9 A F60H61H62H63H64H HEX *PCL *PCHPC斷點斷點SP0000 HEXL ASCAASCSPSPSPSP主程序主程序子程序子程序機械電子工程學(xué)院機械電子工程學(xué)院3、現(xiàn)場保護、現(xiàn)場保護 現(xiàn)場保護:現(xiàn)場保護:如果子程序使用的寄存器與主程序使用的寄存器如果子程序使用的寄存器與主程序使用的寄存器 有有沖突沖突,在轉(zhuǎn)入子程序前,特別是進行中斷服務(wù),在轉(zhuǎn)入子程序前,特別是進行中斷服務(wù) 子程序時,要進行現(xiàn)場保護。子程序時,要進行現(xiàn)場保護。保護內(nèi)容:保護內(nèi)容:主程序使用的內(nèi)部主程序使用的內(nèi)部 RAM 內(nèi)容,各工作寄存器內(nèi)容,內(nèi)容,各工作寄存
48、器內(nèi)容, 累加器累加器 A 和和 DPTR 以及以及 PSW 等寄存器內(nèi)容。等寄存器內(nèi)容。保護方式:保護方式:將要保護的單元壓入堆棧。將要保護的單元壓入堆棧。中斷保護時:中斷保護時:還可以用還可以用 RS1、RS0 來選擇其他來選擇其他工作寄存器組工作寄存器組, 以便保護主程序現(xiàn)場。以便保護主程序現(xiàn)場。R0 R74.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院例例17:某子程序的現(xiàn)場保護:某子程序的現(xiàn)場保護BCDCB: PUSH ACCPUSH PSWPUSH DPLPUSH DPH.POP DPHPOP DPLPOP PSWPOP ACCRET壓入與彈出應(yīng)按照壓入
49、與彈出應(yīng)按照“先進后出先進后出”,或,或“后進先出后進先出”的順的順序。序。; 保護現(xiàn)場保護現(xiàn)場; 某子程序某子程序; 恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場;4.6.2 調(diào)用子程序的要點調(diào)用子程序的要點機械電子工程學(xué)院機械電子工程學(xué)院4.6.3 子程序的調(diào)用及嵌套子程序的調(diào)用及嵌套1、子程序的調(diào)用、子程序的調(diào)用例:例:將內(nèi)部將內(nèi)部RAM 41H43H中內(nèi)容左移中內(nèi)容左移4位,移出部分位,移出部分 送送40H單元。單元。解:解: 由于多字節(jié)移位是程序設(shè)計中經(jīng)常用到的,有一定的由于多字節(jié)移位是程序設(shè)計中經(jīng)常用到的,有一定的普遍性。為了程序設(shè)計的靈活性,我們編一個普遍性。為了程序設(shè)計的靈活性,我們編一個“n字字節(jié)節(jié) 左
50、移一位左移一位”子程序,反復(fù)調(diào)用子程序,反復(fù)調(diào)用4次即為次即為n字節(jié)左移字節(jié)左移4位。位。功能:功能:n字節(jié)左移一位字節(jié)左移一位入口:入口:(R0)指向內(nèi)部)指向內(nèi)部RAM的原始數(shù)低字節(jié)地址(最右)。的原始數(shù)低字節(jié)地址(最右)。(R4)= 字節(jié)長度字節(jié)長度出口出口:(R0)指向內(nèi)部)指向內(nèi)部RAM的結(jié)果高字節(jié)地址(最左)。的結(jié)果高字節(jié)地址(最左)。使用使用 LCALL 或或 ACALL 指令指令機械電子工程學(xué)院機械電子工程學(xué)院主程序:主程序:RLC4: MOV R7, #4NEXT: MOV R0, #43HMOV R4, #03HACALL RLC1DJNZ R7, NEXTMOV A, R
51、0ANL A, #0FHMOV R0, ARET;為進入子程序設(shè)置入口條件為進入子程序設(shè)置入口條件;R7為左移位數(shù)計數(shù)器,左移為左移位數(shù)計數(shù)器,左移4位位;共共3個字節(jié)個字節(jié);轉(zhuǎn)子程序轉(zhuǎn)子程序;未完,繼續(xù)未完,繼續(xù);存結(jié)果(移出的高四位)存結(jié)果(移出的高四位);屏蔽高四位結(jié)果屏蔽高四位結(jié)果4.6.3 子程序的調(diào)用及嵌套子程序的調(diào)用及嵌套機械電子工程學(xué)院機械電子工程學(xué)院 子程序:子程序:RLC1: CLR CLOOP0: MOV A, R0RLC AMOV R0, ADEC R0DJNZ R4, LOOP0MOV A, R0RLC AMOV R0, A RETR0CYA40H41H42H43HA
52、37A30A27A20A17A10A07A00A37 A3000A37A36A36A30R0A26A20A37A16A10A27A06A10A17機械電子工程學(xué)院機械電子工程學(xué)院2、子程序的嵌套、子程序的嵌套子程序的嵌套:子程序的嵌套: 子程序中可調(diào)用其他子程序。子程序中可調(diào)用其他子程序。 子程序與主程序的概念是相對的,在一個子程序子程序與主程序的概念是相對的,在一個子程序中又可調(diào)用其他子程序,這就是子程序的多重嵌套。中又可調(diào)用其他子程序,這就是子程序的多重嵌套。4.6.3 子程序的調(diào)用及嵌套子程序的調(diào)用及嵌套機械電子工程學(xué)院機械電子工程學(xué)院多重嵌套的過程多重嵌套的過程SPSP *PC0L *
53、PC0H *PC1L*PC1H5FH60H61H62H63H64H65H*PC2H*PC2L主主程程序序 SUB1 SUB2 SUB3LCALL SUB1繼繼續(xù)續(xù)主主程程序序*PC0斷點入棧斷點入棧LCALL SUB2*PC1斷點入棧斷點入棧SPSPLCALL SUB3*PC2斷點斷點入棧入棧SPSPRETSPSP彈出斷點彈出斷點RET彈出斷點彈出斷點SPSPRET彈出斷點彈出斷點SPSP棧棧 底底堆棧的設(shè)置十分重要。堆棧的設(shè)置十分重要。機械電子工程學(xué)院機械電子工程學(xué)院4.7 程序設(shè)計舉例程序設(shè)計舉例例例18:多字節(jié)無符號數(shù)減法子程序多字節(jié)無符號數(shù)減法子程序NSUB。功能:功能:n字節(jié)無符號數(shù)
54、減法。字節(jié)無符號數(shù)減法。入口:入口:(R0)=被減數(shù)低字節(jié)地址指針被減數(shù)低字節(jié)地址指針 (R1)=減數(shù)低字節(jié)地址指針減數(shù)低字節(jié)地址指針(R7)= 字節(jié)數(shù)字節(jié)數(shù)n出口出口:(R0)=差數(shù)高字節(jié)地址指針差數(shù)高字節(jié)地址指針解:解:若被減數(shù)大于減數(shù),則差為正數(shù);若被減數(shù)小于減數(shù),若被減數(shù)大于減數(shù),則差為正數(shù);若被減數(shù)小于減數(shù),則差為補碼數(shù)(負數(shù)),且差數(shù)為則差為補碼數(shù)(負數(shù)),且差數(shù)為n字節(jié)。字節(jié)。機械電子工程學(xué)院機械電子工程學(xué)院流程圖:流程圖:0CY (R0)-(R1)-CY(R0)RETNSUB(R7)-1=0?修改地址指針修改地址指針(R0)+1R0, (R1)+1R1 NNSUB: CLR CLOOP: MOV A, R0 MOV R0, ASUBB A, R1INC R0INC R1DJNZ R7, LOOPDEC R0;R0的值要調(diào)整回來的值要調(diào)整回來RET程序:程序:4.7 程序設(shè)計舉例程序設(shè)計舉例機械電子工程學(xué)院機械電子工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工藝品雕刻根雕試題及答案
- CCAA - 2022年12月管理體系認證基礎(chǔ)答案及解析 - 詳解版(48題)
- 2026年電子行業(yè)關(guān)注存儲超級周期下國產(chǎn)化機遇
- 2024年皖西衛(wèi)生職業(yè)學(xué)院馬克思主義基本原理概論期末考試題帶答案解析(必刷)
- 2025年安徽警官職業(yè)學(xué)院馬克思主義基本原理概論期末考試模擬題附答案解析(必刷)
- 2025年沙雅縣招教考試備考題庫附答案解析(奪冠)
- 2025年長春教育學(xué)院馬克思主義基本原理概論期末考試模擬題帶答案解析
- 2025年汕頭職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫帶答案解析
- 2025年曲松縣幼兒園教師招教考試備考題庫及答案解析(奪冠)
- 服裝公司財務(wù)預(yù)算管控辦法(規(guī)定)
- 企業(yè)訴訟案件管理辦法
- 新疆金礦概述
- 給醫(yī)生感謝信又短又好(5篇)
- 濕疹 (中醫(yī)院皮膚科)
- 實驗室儀器設(shè)備驗收單
- 智能照明系統(tǒng)調(diào)試記錄
- 關(guān)于若干歷史問題的決議(1945年)
- 畢業(yè)論文8000字【6篇】
- 隨訪管理系統(tǒng)功能參數(shù)
- 探究應(yīng)用新思維七年級數(shù)學(xué)練習(xí)題目初一
- 污水管網(wǎng)竣工驗收報告
評論
0/150
提交評論