




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
用指令助記符、標號、寄存器名、數(shù)字等符號構(gòu)成的編寫程序的語言叫匯編語言。匯編語言是機器語言的表示,它比機器語言好讀,比高級語言占用的內(nèi)存少、執(zhí)行速度快。因此匯編語言總是程序設計的重要手段。
第七章匯編語言程序設計1§7.1概述用匯編語言編寫的程序叫匯編語言程序,簡稱源程序。機器語言程序稱目標程序。將源程序翻譯成目標程序的過程叫做匯編。2上機環(huán)境硬件系統(tǒng)軟件
應用軟件
操作系統(tǒng):DOS系統(tǒng)編輯器:EDIT.exe匯編程序:MASM.exe連接程序:LINK.exe調(diào)試程序:DEBUG.exe用戶開發(fā)的程序:ABC.exe等CPU、存儲器(ROM、RAM)、I/O接口、輸入、輸出設備3編輯源程序EDITABC.ASM匯編源程序MASMABC.ASM形成目標程序ABC.OBJ連接目標程序LINKABC.OBJ形成可執(zhí)行程序ABC.EXE運行程序用DEBUG調(diào)試5偽指令是匯編語言程序中的指示性語句,它體現(xiàn)程序員的匯編意圖,其作用是在源程序匯編時指導匯編程序匯編,而本身不會產(chǎn)生目標代碼和占用內(nèi)存。偽指令的具體功能是向匯編程序提供下列信息:如何分段、段的定義和說明,段間關系,模塊的定義和說明以及模塊間的關系,數(shù)據(jù)的定義,開始匯編和結(jié)束匯編等?!?.2偽指令(指示性語句)6指令性語句是用指令系統(tǒng)中的指令構(gòu)成的語句。例
MOVAX,BX指示性語句是指示匯編程序進行匯編的操作。例MOVAX,4+8中的+
codeSEGMENT
中的SEGMENTMOVBX,OFFSETstring中的OFFSET指示性語句與指令性語句:7
1、等值語句:
格式
符號名EQU表達式作用是用符號名等值指定的表達式。其中表達式可以是任何有效的操作數(shù),匯編時用語句中的表達式代替程序中符號所在的地方。應用:1.定義符號常量,方便修改程序。2.某表達式多次出現(xiàn)時,用等值偽指令可以方便編程。一、符號定義偽指令9例如:EMPEQU8COUNTEQUEMP+6
2、等號語句:格式
符號名=表達式作用是用符號名等值指定的表達式,用“=”定義的符號名可重新定義。
例如:NMU=6NMU=NMU+610
格式
變量名助記符操作數(shù)[,操作數(shù),...]
用來定義程序中所用的內(nèi)存操作數(shù)。其中變量名指示內(nèi)存操作數(shù)的地址(符號地址);助記符指示內(nèi)存操作數(shù)的類型(字節(jié)、字、雙字等);
操作數(shù)指示內(nèi)存操作數(shù)的內(nèi)容。二、數(shù)據(jù)定義偽指令11例:DATA-BYTEDB10,4,10HDATA-WORDDW100,100H,—5HDATA-DWDD6+20,0FFFDH數(shù)據(jù)定義偽指令中的表達式也可以是字符串如: MESS DB
‘ABCD’數(shù)據(jù)定義偽指令的表達式中會出現(xiàn)“?”數(shù)據(jù)項,ABCDB ?,?,DEFDW ?,50,?這時匯編程序會對“?”數(shù)據(jù)項保留相應的存儲空間,而不存入數(shù)據(jù)。130AH04H10HDATA-BYTE64H00HDATA-WORD00H01HFBHFFH1AH00H00H00HDATA-DW100100H-52614MESS41H42H43H44HABCDEF32H注意:3個及其以上的字符,只能用DB定義15格式
段名SEGMENT[定位類型][組合類型][類別]、、、、、、段名ENDS
段定義由偽操作SEGMENT開始、ENDS結(jié)束。其中:SEGMENT和ENDS必須成對出現(xiàn),且語句前必須有段名,段名必須相同。
SEGMENT和ENDS語句之間可以有指令和其他偽操作,
表示存放在該段內(nèi)存的變量、指令或其他偽操作對該段內(nèi)存的處理程序中可以定義多個段。程序經(jīng)匯編、連接及裝入內(nèi)存后,段名為一具體的段值。三、段定義偽操作17AASEGMENT;數(shù)據(jù)段1
str1DB'Hello!’AAENDSBBSEGMENT;數(shù)據(jù)段2
str2DB6dup(?)BBENDSCCSEGMENT;代碼段
ASSUMECS:CCASSUMEDS:AA,ES:BB
start:CLDMOVAX,AA
MOVDS,AXLEASI,str1
MOVAX,BB
MOVES,AXLEADI,str2MOVCX,6REPMOVSBMOVAH,4CHINT21HCCENDSENDstart數(shù)據(jù)傳送源程序:18定位類型、組合類型和類別說明段的屬性,它們用方括號括起來表示可以缺省。若不缺省,各項排序不能錯,項與項要用空格分開。
定位類型有四種:
PAGE(頁)型要求該段物理地址低8位全為0PARA(節(jié))型要求該段物理地址低4位全為0WORD型要求該段物理地址碼為偶數(shù)(最低位為0)
BYTE型該段的物理地址可為任意值。
組合類型說明本段與其它段的關系。
‘類別’它可以是任何合法的名稱。19
ASSUME偽操作的作用指示匯編程序指令中用到的標號、過程及變量所在的段。其中對標號、過程必須用CS段寄存器指示,對變量可用CS、DS、ES、SS段寄存器指示。
若未用ASSUME語句指示指令中用到的標號、過程和變量所在的段,匯編程序?qū)⒔o出錯誤信息。
ASSUME語句只起指示作用,并無實際的操作。在程序中引用定義的變量做內(nèi)存操作數(shù)時,需按尋址方式用傳送指令(如MOV)給相應的段寄存器賦值。21例用程序?qū)崿F(xiàn)1234H+5678HdataSEGMENTvalueDW1234H,5678HresultDW?
dataENDS
codeSEGMENTASSUMECS:code,DS:datastart:MOVAX,data;給DS賦值MOVDS,AXMOVAX,value;取數(shù)ADDAX,value+2;兩數(shù)相加MOVresult,AX;保存結(jié)果MOVAH,4CH;返回DOSINT21H
codeENDSENDstart12H34H78H56Hvalueresult22
格式
過程名PROC類型、、、過程名ENDP
過程定義由偽操作PROC開始、ENDP結(jié)束。其中:PROC和ENDP必須成對出現(xiàn),
且語句前必須有過程名,過程名必須相同。
PROC和ENDP語句之間為子程序的指令序列。程序中可以定義多個過程。五、過程定義偽操作23例1displayPROC、、、、、、RET;NEAR屬性的過程對應段內(nèi)返回displayENDP例2displayPROCFAR、、、、、、RET;FAR屬性的過程對應段間返回displayENDP251、NAME和TITLE偽操作
格式:
NAME
模塊名
格式:
TITLE
模塊名在源程序開始可用NAME或TITLE為模塊命名,模塊名的作用是指示給連接程序進行連接用。源程序中可無模塊定義,此時源文件名作為模塊名。六、模塊定義和程序結(jié)束偽操作26格式:
END啟動地址作用是指示源程序到此結(jié)束。匯編程序?qū)ND之后的語句不進行處理。程序中所有有效語句應放在END語句之前。源程序中必須有END結(jié)束語句。匯編程序?qū)oEND語句的源程序不進行處理,
只給出無END語句錯誤信息。2、END偽操作27包括:TYPE,LENGTH,SIZE,SEG,OFFSET。把一些特征或存貯器地址的一部分作為數(shù)值回送。八、數(shù)值回送操作符:29·TYPE格式:TYPEvariable回送該變量的以字節(jié)數(shù)表示的類型。(DB為1,DW為2,DD為4,DQ為8,DT為10)或label標號,回送標號類型數(shù)值(NEAR為-1,F(xiàn)AR為-2)例:ARRAYDW1,2,3ADDSI,TYPEARRAY匯編程序其形式:ADDSI,230格式:
LENGTHvariable對于變量中使用DUP匯編回送分配給變量項數(shù),其他情況回送1。例:FESSDW100DUP(0) 對于MOVCX,LENGTH
FESS 匯編程序?qū)⑵湫问剑篗OVCX,100 其他情況,回送1?!ENGTH31例:ARRAYDW1,2,3 對于指令MOVCX,LENGTHARRAY 匯編程序?qū)⑹蛊湫问綖椋篗OVCX,1例:TABLEDB‘ABCD’ 對于指令MOVCX,LENGTHTABLE匯編程序使其形式為:MOVCX,1LENGTH(續(xù))32格式:SIZEvariable 回送分配給該變量的字節(jié)數(shù)LENGTH*TYPE例:FEESDW100DUP(0) MOVCX,SIZEARRAY 將形成:MOVCX,200·SIZE33例:TABLEDB‘ABCD’ MOVCX,SIZETABLE 將形成MOVCX,1例:ARRAYDW1,2,3 MOVCX,SIZEARRAY 形式MOVCX,2 LENGTH*TYPE=2SIZE(續(xù))34
TYPE變量的返回值是類型的字節(jié)數(shù):DB為1,DW為2,DD為4,DQ為8,DT為10
TYPE標號的返回值是:
NEAR為-1,F(xiàn)AR為-2。
LENGTH變量返回DUP分配的項數(shù),對于其他情況則返回1。
SIZE返回值是:
LENGTH和TYPE值的乘積,即變量的字節(jié)數(shù)。小結(jié):35
SEG取符號地址的段地址例MOVAX,SEG
yy
OFFSET取符號地址的偏移地址例MOVBX,OFFSET
yy
SEG(OFFSET)36SEG、OFFSET只能對符號地址操作MOVAX,SEG[BX]MOVBX,OFFSET[SI]
注意:37一、概述(一)判斷程序質(zhì)量的標準簡明、易讀、易維護。速度快、執(zhí)行時間短。占用內(nèi)存空間小。§7.4匯編語言程序設計381.編寫程序主體。分析問題,建立模型,確定算法。按算法畫出程序流程圖。按流程圖編寫程序。(二)編寫匯編語言程序步驟392.分配內(nèi)存空間,編寫匯編程序。分配內(nèi)存空間,規(guī)劃必要的區(qū)段。編寫完整的匯編語言程序。(二)編寫匯編語言程序步驟3.調(diào)試、優(yōu)化。檢查源程序,優(yōu)化結(jié)構(gòu)。上機運行,調(diào)試。40
順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)(三)幾種程序結(jié)構(gòu)41順序結(jié)構(gòu)42兩個分支YN
、、、CMPAL,BLJGgreat
JMPexitgreat:
exit:、、、、、、
AL≤BL處理AL>BL處理分支結(jié)構(gòu)43三個分支
、、、CMPAL,0
JGgreat
JLless
JMPexitless:
JMPexitgreat:
exit:、、、AL=0處理AL>0處理AL<0處理YYNN分支結(jié)構(gòu)44循環(huán)結(jié)構(gòu)當型循環(huán)(當條件成立進入循環(huán))循環(huán)初始設置循環(huán)體循環(huán)條件判斷?YN直到型循環(huán)(直到條件成立退出循環(huán))YN循環(huán)初始設置循環(huán)體循環(huán)條件判斷?45多處調(diào)用完成同一功能的子程序:codeSEGMENTstart:、、
CALLsub、、
CALLsub、、
CALLsub、、MOVAH,4CHINT21HsubPROC、、、、RETsubENDPcodeENDSENDstart子程序結(jié)構(gòu)46例:試設計一個對兩個32位二進制數(shù)相加的程序。設被加數(shù)2A3B078EH和加數(shù)4C508F55H從數(shù)據(jù)段的BGS單元(令BGS=2000H)開始依次存放,要求將兩數(shù)和放在加數(shù)之后。分析:這是一個簡單的加法問題,因為數(shù)據(jù)不長,可采用順序程序設計方法。因為是兩個32位數(shù)相加,應先加低16位,再加高16位,加高16位時還要考慮低16位相加產(chǎn)生的進位,應選用帶進位加法指令。還要注意,多字節(jié)數(shù)在內(nèi)存是放在連續(xù)的存儲單元中,且高字節(jié)放高地址單元,低字節(jié)放低地址單元。二、匯編語言程序設計舉例47內(nèi)存單元分配如下:BGS=2000H8EH07H3BH2AH55H8FH50H4CH…被加數(shù)加數(shù)和48DATASEGMENTORG2000HBGSDD2A3B078EH,4C5D8F55HDD?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAORG1000HSTART:MOVAX,DATAMOVDS,AXMOVBX,BGS49MOVAX,[BX]MOVBX,BGS+4ADDAX,[BX]MOVBX,BGS+8MOV[BX],AXMOVBX,BGS+2MOVAX,[BX]MOVBX,BGS+6ADCAX,[BX]MOVBX,BGS+10MOV[BX],AX低4位高4位50MOVAH,4CHINT21HCODEENDSENDSTART返回DOS同一問題,若數(shù)據(jù)很長,或采用字節(jié)加法,則重復很多次,可考慮采用循環(huán)程序設計方法:DATASEGMENTORG2000HBGSDB8EH,07H,3BH,2AHDB55H,8FH,5DH,4CHDB4DUP(?)DATAENDS51CODESEGMENTASSUMECS:CODE,DS:DATAORG1000HSTART:MOVAX,DATAMOVDS,AXMOVCX,4CLCMOVSI,BGSLOOP1:MOVAX,[SI]ADCAX,[SI+4]MOV[SI+8],AX一次加法52INCSILOOPLOOP1MOVAH,4CHINT21HCODEENDSENDSTART53例:已知從內(nèi)存10000H單元開始連續(xù)存放著大小不同的兩個16位二進制無符號數(shù)X1和X2。試設計一個程序,將其中的大數(shù)放到10050H單元,小數(shù)放到10052H單元。
解:顯然,這是一個雙分支程序。根據(jù)比較結(jié)果(CF標志)用條件轉(zhuǎn)移指令實現(xiàn)分支。
X1LX1HX2LX2H10000H10050H大數(shù)小數(shù)54DATA SEGMENTORG 0000HMADDWX1,X2ORG0050HMAX DW 2 DUP (?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOVDS, AX MOV AX,[0000H] 55MOV BX,[0002H]CMP AX, BX JNC LOP1 MOV [MAX] ,BX MOV [MAX+2], AXLOPT:MOVAH,4CH
INT21HLOP1:MOV [MAX], AX MOV [MAX+2], BX JMP LOPTCODEENDSENDSTART56例將寄存器BX中的內(nèi)容以十六進制形式顯示出來。 (二進制十六進制)有關字符、數(shù)碼轉(zhuǎn)換的處理1.
計算機處理字符時,常用的字符編碼是ASCII碼。2.
數(shù)字和字母的ASCII碼是一個有序序列數(shù)字0~9:30H~39H大寫字母A~Z:41H~5AH小寫字母a~z:61H~7AH573.計算機處理信息時,其對象都是二進制數(shù)。外設(顯示器、打印機、鍵盤等)用ASCII碼與CPU進行信息傳送。例如:1)在鍵盤上按下某一字符鍵(如’9’),鍵盤接口向鍵盤緩沖區(qū)送去的是該字符的ASCII碼(如39H),不是送數(shù)字09H。2)在文本方式下,要在顯示器上顯示某一字符(如’A’),須將該字符的ASCII碼(如41H)送顯示緩沖區(qū),不是送數(shù)字0AH。
計算機要利用顯示器、鍵盤等外設時,須據(jù)程序設計的需要進行有關轉(zhuǎn)換。58例1將BX寄存器中的內(nèi)容以十六進制形式顯示出來。
BX是一個16位寄存器二進制1010100100111110
用十六進顯示時,每4位用一個字符顯示,共4個其中0000→’0’30H,1010→’A’41H
0001→’1’31H
,1011→’B’42H
、、、、
1001→’9’39H
,1111→’F’46H?十六進制A93E屏幕上的顯示‘A’‘9’‘3’‘E’對應的ASCII41H39H33H45H59算法:取出要顯示的某4位,轉(zhuǎn)換為對應的ASCII碼,再調(diào)用DOS系統(tǒng)功能進行顯示。1)對于0000~1001(0~9),先擴展成一個字節(jié),高4位清0,加上30H后,即可得字符’0’~’9’對應的ASCII碼。00000001B+30H=31H;00001001B+30H=39H
0001B‘1’1001B‘9’2)對于1010~1111(A~F),先擴展成一個字節(jié),高4位清0,加上30H后,還要再加上07H,才能得到’A’~’F’對應的ASCII碼00001010B+30H+07H=41H1010B‘A’00001111B+30H+07H=46H1111B‘F’60CODESEGMENTASSUMECS:codestart:MOVCH,4;字符個數(shù)MOVCL,4;循環(huán)移位次數(shù)next:ROLBX,CL;取顯示位的值
MOVDL,BL;保存在DL中
ANDDL,0FH;清除高4位
ADDDL,30H;轉(zhuǎn)變?yōu)閿?shù)字的ASCII
CMPDL,39H;大于39H,則應轉(zhuǎn)變
JLEprint;為字母A~F的ASCII
ADDDL,07H
61print:MOVAH,02H;顯示DL中的字符INT21HDECCH;顯示結(jié)束?JNZnextMOVAH,4CH;返回DOSINT21HCODEENDS
ENDstart62編程將CPU內(nèi)SP、BP、SI、DI4個16位寄存器當前的內(nèi)容分別用十六進制形式顯示出來。
要點:將上例改寫為一個子程,入口參數(shù)為BX
子程中注意寄存器值的保存和恢復注意CS、IP、PSW寄存器值的獲取方法63CODESEGMENTASSUMECS:CODEstart:MOVBX,SP;顯示SP
CALLLISTBXMOVBX,BP;顯示BP
CALLLISTBXMOVBX,SI;顯示SI
CALLLISTBX
MOVBX,DI;顯示DI
CALLLISTBX
MOVAH,4CH;返回DOSINT21H64LISTBXPROCPUSHF
;保存寄存器
MOVCH,4MOVCL,4next:ROLBX,CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,39HJLEprintADDDL,07Hprint:MOVAH,02H;輸出字符INT21HDECCHJNZnextMOVDL,20H;顯示空格符MOVAH,02HINT21HRET
;子程返回LISTBXENDPCODEENDENDstart65子程與主程的參數(shù)傳送:用寄存器傳送用定義的變量傳送3)利用地址表傳送4)
用堆棧傳送66
一、概述:
例:編寫完整匯編語言程序,要求:清屏,顯示“HelloChina!”方法:將0AH功能輸入的字符串,用09H功能顯示出來。結(jié)果如下:dataSEGMENTmaxDB12,?,4DUP(?)stringDB‘HelloWorld!’,’$’dataENDS§7.7DOS功能調(diào)用67
codeSEGMENTASSUMECS:code,DS:datastart:MOVAX,data;置緩沖區(qū)地址于DS:DXMOVDS,AXLEADX,maxMOVAH,0AH;調(diào)用0AH輸入功能INT21HLEADX,stringMOVAH,09H;調(diào)用09H顯示功能INT21HMOVAH,4CHINT21H;返回DOScodeENDSENDstart68
PC—DOS是IBMPC微型計算機的磁盤操作系統(tǒng)。它為用戶提供了許多命令,也有80多個子程序可供用戶調(diào)用。這些子程序的功能主要是實現(xiàn)對存儲器和基本I/O設備的管理等。為了便于調(diào)用將所有子程序順序編號,如PCDOS2.0有87個子程序,編號從0開始到57H。
用戶編程原則:盡可能使用DOS的系統(tǒng)功能調(diào)用,提高程序可移植性。②在DOS功能不能實現(xiàn)情況下,考慮用BIOS功能調(diào)用。③在DOS和BIOS的中斷子程不能解決問題時,使用
IN/OUT指令直接控制硬件。691.調(diào)用方法DOS系統(tǒng)功能調(diào)用是一種內(nèi)部中斷方式,它是通過INT21H指令進入功能調(diào)用,再通過功能號進入具體子程序。
需要三個語句:①將入口參數(shù)送指定寄存器②將功能號(0~57H)送AH寄存器③使用內(nèi)部中斷指令:INT21H70設置入口參數(shù)在AH設置功能號m執(zhí)行中斷指令INTN分析、應用出口參數(shù)1.調(diào)用方法71使用DOS功能調(diào)用還要注意下列問題:(1)從鍵盤輸入的字符由系統(tǒng)自動轉(zhuǎn)換為ASCII碼,在進行數(shù)據(jù)處理時要特別注意;(2)需要在屏幕上顯示的字符要在程序中將其轉(zhuǎn)換為ASCII碼。
2、DOS功能調(diào)用要注意的問題721.顯示單字符(02H功能)入口參數(shù)DL=要顯示字符的ASCII碼功能號
AH=02H類型號
INT21H出口參數(shù)無實現(xiàn)功能顯示指定字符,光標隨動。例
顯示字符AMOVDL,‘A’MOVAH,02HINT21H二、DOS系統(tǒng)功能調(diào)用(21H類型中斷調(diào)用)73入口參數(shù)①定義要顯示的字符串,字符串尾應為’$’,作為結(jié)束顯示的標志。②DS:DX=字符串的首地址功能號
AH=09H類型號
21H出口參數(shù)無實現(xiàn)功能顯示字符串,遇’$’停止顯示,光標隨動。2.顯示字符串(09H功能)74例編程顯示字符串’TsinghuaUniversity’dataSEGMENT
;定義顯示的子符串striDB‘TsinghuaUniversity’,‘$’dataENDScodeSEGMENTASSUMECS:code,DS:datastart:MOVAX,data
;置緩沖區(qū)地址于DS:DXMOVDS,AXLEADX,stri
MOVAH,09H;調(diào)顯示功能
INT21HMOVAH,4CH;返回DOS
INT21HcodeENDS
ENDstart75①入口參數(shù)無
功能號
AH=01H
類型號
21H
出口參數(shù)AL=鍵入字符的ASCII碼
實現(xiàn)功能
等待從鍵盤輸入一個字并在屏幕上回顯,光標移動,檢測
Ctrl-Break鍵3.單字符輸入(01H、07H功能)76例利用鍵盤輸入的字符產(chǎn)生分支:MOVAH,1INT21H;等待從鍵盤輸入
CMPAL,‘Y’
;是’Y’?
JZyesno:......JMPexityes:......exit:...77②
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 表格數(shù)據(jù)計算的示例第4章 EXCEL應用
- 標準員專業(yè)管理實務統(tǒng)考考試題庫及答案
- 2025年杭州貨運從業(yè)資格證考試模擬考試題目答案
- 2025年云浮貨運上崗證考試題庫答案
- 氦氣和空氣的密度
- 氮化鋁陶瓷相關書籍
- 彈簧的制造過程
- 憐憫情緒表達方法
- 第五單元-職業(yè)生涯規(guī)劃管理調(diào)整與評價
- 公司對員工表揚信(15篇)
- 人工呼吸的三種方式和操作方法課件
- 建筑空間組合論
- 項目基坑坍塌事故專項應急預案桌面演練腳本
- 危險化學品MSDS(氮氣)
- 無創(chuàng)通氣常用模式與參數(shù)調(diào)節(jié)
- 清遠市城市樹木修剪技術指引(試行)
- GB∕T 8427-2019 紡織品 色牢度試驗 耐人造光色牢度:氙弧
- 退休人員實行社區(qū)管理申請書
- 廣州國際文化中心詳細勘察報告正文-171229end
- 全國同等學力工商管理大綱重點整理
- 機耕道監(jiān)理實施細則完整
評論
0/150
提交評論