版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
IBM-PC匯編程序設計第3章I/O程序設計Contents本章目錄接口技術核心模塊與程序設計方法概覽01基本概念與指令系統回顧02發聲系統程序設計03顯示器I/O程序設計04鍵盤輸入程序設計05中斷程序設計CHAPTER01基本概念與指令系統回顧理解匯編語言的底層本質與Intel80x86指令體系AssemblyFundamentals機器語言與匯編語言的關系匯編語言是機器語言的符號化表示,與特定CPU架構緊密綁定。理解這一底層本質是進行I/O端口編程的前提。01·Binary二進制指令流機器語言是CPU直接執行的二進制指令流,如ADDAX,02H對應機器碼05H02H00H,人類難以直接閱讀和編寫。02·Mnemonic助記符替代操作碼匯編語言用助記符(如ADD、SUB、MOV)替代二進制操作碼,需經匯編器翻譯為機器碼后方可由CPU執行。03·Architecture與CPU架構強綁定Intel80x86匯編程序無法在Z80CPU上運行,而C等高級語言具有跨平臺特性。04·I/O端口操作的精確時序I/O編程依賴匯編語言,端口操作指令(IN/OUT)直接對應硬件電氣信號,需要精確的時序控制。REGISTERARCHITECTUREIntel80x86寄存器體系80x86的寄存器體系是匯編編程的操作核心。I/O操作強制要求通過AL/AX寄存器進行數據傳輸,理解寄存器結構是掌握端口編程的第一步。01—通用數據寄存器AX累加器I/O操作的必經通道,IN/OUT指令只支持AL(8位)或AX(16位)作為數據載體IN/OUTBX基址寄存器常用于內存間接尋址的基址指針,也可作為通用數據暫存間接尋址CX計數寄存器LOOP指令的隱含計數器,在循環I/O操作中扮演關鍵角色LOOPDX數據寄存器I/O指令中存放端口地址,端口號>255時必須使用DX間接尋址端口地址02—段寄存器與指針段寄存器CS/DS/SS/ES四個段寄存器分別指向代碼段、數據段、堆棧段和附加段,構成8086的分段內存模型CS·DS·SS·ES指針與變址SP/BP為堆棧指針,SI/DI為變址寄存器,在字符串I/O操作(如LODSB/STOSB)中作為隱含操作數SP·BP·SI·DI8086ArchitectureI/O端口編址與訪問方式8086采用獨立I/O編址,65536個端口地址通過IN/OUT指令訪問。端口地址≤255可直接尋址,>255需通過DX間接尋址,這是所有I/O程序設計的底層規則。獨立編址空間I/O端口地址空間0000H~FFFFH,共64K個端口,與內存地址空間完全分離。這種設計使得I/O操作與內存訪問互不干擾,便于硬件擴展。0000H–FFFFHIN指令·讀取從端口讀數據到AL(8位)或AX(16位),如INAL,61H讀取端口61H。用于獲取外設狀態或輸入數據,是程序查詢方式的核心指令。AL/AXOUT指令·寫入將AL/AX內容寫入端口,如OUT42H,AL將AL值寫入端口42H。用于向外設發送控制命令或輸出數據,實現對外部設備的精確控制。AL/AX尋址方式分界端口號0~255可直接寫在指令中(直接尋址);超過255必須先將端口號裝入DX,再用INAL,DX訪問(間接尋址)。這種設計兼顧了指令長度與尋址靈活性,短指令用于常用端口,DX擴展支持全地址空間。255·DXINDIRECTIBM-PC關鍵端口42H/43H定時器、61H揚聲器、60H鍵盤數據端口。這些端口是系統底層編程的基礎,直接控制硬件設備的工作狀態與數據傳輸。42H·61H·60HASSEMBLY·I/OBIOS中斷與DOS功能調用BIOS中斷(INT10H/16H等)提供底層硬件服務,DOS中斷(INT21H)提供操作系統級服務。兩者通過AH功能號選擇具體服務,是匯編I/O編程中最常用的兩類接口。BIOS中斷直接調用ROM中的硬件驅動,覆蓋顯示、鍵盤、打印、磁盤四類核心設備服務INT10H·16H·17H·13H調用方式AH←功能號→設置入口參數→INTn,三步完成中斷調用AH=09H→INT21HDOS中斷INT21H提供更高層OS服務,涵蓋字符輸入輸出與程序控制01H·02H·09H·4CH對比取舍BIOS速度快但依賴硬件,DOS兼容性好但稍慢,實際編程中混合使用速度vs兼容性CHAPTER02發聲系統程序設計通過8253定時器與8255接口芯片控制PC揚聲器發聲HARDWAREPRINCIPLEPC發聲系統硬件原理PC揚聲器通過8253定時器通道2產生方波、8255端口61H控制門控和連接,三者協同實現發聲。頻率由定時器計數初值決定:計數值=1193180÷目標頻率(Hz)。01定時器通道2發聲8253定時器通道2專用于發聲,向其端口42H寫入計數初值,以1.19318MHz為基準分頻產生方波信號1.19318MHz02端口61H門控8255端口61H的PB0控制定時器GATE2門控信號,PB1控制揚聲器是否連接到定時器輸出端PB0·PB103頻率計算公式計數初值=1193180÷目標頻率。例如發出440Hz標準A音,計數值≈2712(0A98H)440Hz→271204控制流程設置8253工作方式(43H)→寫入計數初值(42H)→讀端口61H置位PB0/PB1后回寫開啟揚聲器43H→42H→61HASSEMBLY·8253TIMER發聲程序核心代碼邏輯發聲程序遵循"保存端口狀態→開啟揚聲器→設置頻率→延時→恢復端口狀態"的標準流程。掌握這一模式后可擴展為演奏任意樂曲。01保存端口狀態:INAL,61H讀取當前端口61H值并暫存(如存入BX),以便發聲結束后恢復原始狀態,避免干擾其他功能02開啟揚聲器:將AL低兩位置1(ORAL,03H)后OUT61H,AL,同時激活GATE2門控和揚聲器連接03設置8253工作方式:MOVAL,0B6H/OUT43H,AL,選擇通道2、讀寫低高字節、方式3(方波發生器)04寫入計數初值:將頻率對應計數值分低字節和高字節依次寫入端口42H,如MOVAX,2712/OUT42H,AL/MOVAL,AH/OUT42H,AL05延時與關閉:調用延時子程序控制發聲持續時間,結束后用保存的原始值OUT61H,BL恢復端口狀態關閉揚聲器MusicPlayerDesign樂曲演奏程序設計方法樂曲演奏通過頻率表和時間表的并行遍歷實現:頻率表定義音高(定時器計數值),時間表定義節奏(持續時長),循環調用發聲子程序即可完成連續演奏。262Hz·4553建立頻率數據表按旋律順序排列各音符對應的定時器計數值,建立音高與硬件計數的映射關系,為后續發聲提供基礎數據支撐。音高映射定時器18.2ticks/s建立時間數據表按相同順序排列各音符的持續時長,精確控制每個音符的播放節奏,實現旋律的時間維度編排。節奏控制時長SI&DI雙指針并行遍歷SI指向頻率表、DI指向時間表,每輪同步取出一對數據,指針各加2繼續下一輪,實現音高與節奏的精準同步。SI寄存器DI寄存器FFFFH結束標記設計在頻率表末尾放置特殊終止標志值FFFFH,程序檢測到該值后立即退出循環,確保演奏完整結束。終止檢測循環退出gun·musex教材示例程序gun程序演示單次音效發聲,musex程序演示完整音階的連續演奏,兩者結合展示不同應用場景。單次音效連續演奏EXPERIMENT發聲系統實驗練習樂曲編程實驗要求學生獨立設計頻率表和時間表,綜合運用端口I/O、循環遍歷、子程序調用等技術,從簡單旋律到完整樂曲逐步提升編程能力。實驗3.1樂曲程序(1)01選擇一段簡單旋律(如《小星星》),手動計算各音符對應的8253定時器計數值并建立頻率表,理解音高與定時器初值的數學關系02設計配套的時間數據表確保節奏正確;編寫主程序實現頻率表和時間表的循環遍歷與發聲控制,掌握數據驅動編程思想03要求程序結構清晰,包含獨立的發聲子程序、延時子程序和主循環,便于調試和擴展,培養模塊化設計能力8253頻率表·定時器編程實驗3.2樂曲程序(2)01在實驗3.1基礎上增加功能擴展:支持多首樂曲選擇、播放速度調節或增加休止符處理,提升程序靈活性02優化用戶體驗:在演奏前通過DOS中斷INT21H顯示曲名和播放提示,結束后顯示結束信息,學習系統調用方法03鼓勵創新:可嘗試加入按鍵控制(按任意鍵停止演奏)或實現簡單的和聲效果,探索更多硬件交互可能性INT21H交互·人機接口CHAPTER03顯示器I/O程序設計從光標控制到窗口管理,掌握BIOSINT10H顯示服務DISPLAYARCHITECTURE視頻顯示模式與緩沖區文本模式將屏幕劃分為25×80字符網格,每個位置由字符碼+屬性字節組成,緩沖區起始于B800:0000。理解這一內存映射結構是直接寫屏顯示的基礎。文本模式Mode03H25行×80列字符網格,每字符占2字節——低字節為ASCII碼,高字節為屬性字節控制顏色顯示。25×80顯示緩沖區地址CGA/EGA文本模式為B800:0000,單顯為B000:0000,直接寫內存比調用INT10H速度快數倍。B800:0000屬性字節結構高4位為背景色(RGB+閃爍位),低4位為前景色(RGB+高亮度位),如07H=灰字黑底,70H=黑字灰底。07H/70HBIOS模式切換INT10HAH=00H切換顯示模式:AL=03H設為80×25彩色文本,AL=12H設為640×480VGA圖形模式。INT10HBIOSINTERRUPTSERVICESBIOSINT10H核心顯示功能INT10H提供光標控制、字符顯示、窗口滾動等完整顯示服務。通過功能號(AH)選擇服務,配合寄存器參數實現精確的屏幕控制,是文本界面編程的核心工具。光標與字符操作AH=02H設置光標位置—DH=行號(0~24),DL=列號(0~79),BH=顯示頁號,定位后所有字符輸出從該位置開始AH=09H顯示字符及屬性—AL=字符ASCII碼,BL=屬性字節(前景/背景色),CX=重復次數,光標不自動前進AH=0EH電傳打字輸出—AL=字符碼,BL=前景色,自動前進光標并處理CR/LF/BS等控制字符,類似DOS字符輸出窗口與滾動操作AH=06H窗口上滾—AL=滾動行數(0=清窗口),CH:CL=左上角行:列,DH:DL=右下角行:列,BH=空白行填充屬性AH=07H窗口下滾—參數與06H相同但方向相反,兩者配合可實現屏幕局部區域的動態滾動效果AH=08H讀取光標處字符及屬性—返回AL=字符碼、AH=屬性字節,可用于屏幕內容的讀取和保存Assembly·I/OProgramming光標軌跡程序(draw)設計分析光標軌跡程序通過讀取方向鍵掃描碼實時更新光標坐標,在移動路徑上寫入字符實現屏幕繪圖。這是鍵盤I/O與顯示I/O協同工作的經典案例。01擴展鍵的雙次讀取機制方向鍵為擴展鍵,需通過INT16HAH=00H兩次讀取:第一次返回AL=00H作為擴展前綴,第二次返回掃描碼標識具體按鍵。INT16H·AH=00H02方向鍵掃描碼映射48H=上移(行號?1),50H=下移(行號+1),4BH=左移(列號?1),4DH=右移(列號+1),四組掃描碼精確定位方向。48H·50H·4BH·4DH03屏幕邊界檢測每次更新坐標后檢查是否超出屏幕范圍(行0–24,列0–79),越界則保持原位置不移動,確保光標始終在可視區域內。Row0–24·Col0–7904軌跡字符寫入用INT10HAH=02H將光標定位到新坐標,再用AH=09H在該位置寫入軌跡字符(如'*'或'█'),實現可視化繪圖。INT10H·AH=09HAssembly·INT10H屏幕窗口控制技術(wdex)通過INT10HAH=06H對指定矩形區域執行滾動/清屏操作,配合不同屬性字節,可在文本模式下創建多個獨立窗口區域,實現分區域顯示管理。窗口定義用左上角(CH:CL)和右下角(DH:DL)兩個坐標確定矩形區域,AH=06H+AL=0實現清窗口并填充屬性。CH:CL→DH:DL多窗口隔離為不同窗口分配不同顏色屬性,視覺上形成獨立的界面區域,如標題欄用反白、內容區用常規配色。70H/07H窗口內輸出先用AH=02H將光標定位到目標窗口內的指定位置,再執行字符輸出,內容自然限制在該窗口范圍內。AH=02H滾動更新當窗口內容超出一屏時,用AH=06H+AL=1實現窗口內整體上滾一行,底部出現新的空白行用于追加內容。AL=1GridDrawing·技術細節橫豎線繪制程序(grid)實現文本模式下的線條繪制依賴IBM擴展字符集中的制表符(如─、│、┼),通過循環在指定行列坐標連續寫入這些特殊字符來構建網格和表格界面。制表符編碼IBM擴展字符集提供橫線(C4H)、豎線(B3H)、十字交叉(C5H)、左下(C0H)、右下(D9H)等制表字符。C4H·B3H水平線繪制固定行號,從起始列到終止列循環,每次用INT10HAH=02H定位光標+AH=09H寫入橫線字符C4H。INT10H垂直線繪制固定列號,從起始行到終止行循環,每次定位光標后寫入豎線字符B3H,行號遞增而列號不變。行遞增交叉點處理橫線與豎線交匯處需寫入十字交叉字符C5H,程序需預先計算所有交叉點坐標避免覆蓋。C5H交叉AssemblyLab·INT10H顯示器I/O實驗練習三個遞進式實驗從字符圖形到窗口管理再到線條繪制,系統訓練學生的屏幕控制能力,每個實驗都綜合運用多種INT10H功能。實驗3.3字符圖形程序使用ASCII字符和IBM擴展字符在屏幕上繪制指定圖案(如三角形、菱形、方框嵌套等)練習光標精確定位和循環控制,要求圖案居中顯示且比例協調IBM擴展字符實驗3.4屏幕窗口程序創建至少3個不重疊的屏幕窗口,每個窗口使用不同顏色屬性和邊框樣式在不同窗口中分別顯示不同內容(如系統信息、時間、用戶輸入等),實現簡易多窗口界面多窗口界面實驗3.5畫柵欄線程序按指定間距繪制水平和垂直交叉的柵欄圖案,正確計算所有交叉點并使用對應的制表符支持用戶輸入柵欄的行數和列數參數,動態調整網格密度動態網格密度CHAPTER04鍵盤輸入程序設計從BIOS中斷到端口直讀,掌握多層次的鍵盤輸入技術KeyboardInput鍵盤輸入的三個層次鍵盤輸入從高層到底層分為DOS調用、BIOS中斷和端口直讀三種方式。層次越低控制越精細但編程越復雜,實際應用中通常優先使用BIOSINT16H。DOS層·INT21HAH=01H等待按鍵并回顯字符到屏幕,返回AL=ASCII碼,自動處理Ctrl+C中斷AH=07H/08H等待按鍵但不回顯,08H響應Ctrl+Break而07H不響應,適用于密碼輸入AH=0AH緩沖輸入字符串,DS:DX指向輸入緩沖區(首字節最大長度,次字節返回實際長度)BIOS層·INT16HAH=00H阻塞等待按鍵,返回AL=ASCII碼+AH=掃描碼;功能鍵AL=00H需查掃描碼識別AH=01H非阻塞查詢鍵盤緩沖區,ZF=1無鍵按下,ZF=0有鍵可讀取(但不取出)AH=02H讀取Shift/Ctrl/Alt等修飾鍵狀態,返回AL中各標志位,用于組合鍵判斷KEYBOARDI/O鍵盤處理演示程序(kbdio)分析kbdio程序通過檢查AL是否為0來區分普通字符鍵和功能鍵,采用"分發-查表-執行"模式處理各類按鍵輸入,是交互式鍵盤程序的標準設計范式。按鍵分類判斷INT16H讀取后檢查AL——AL≠0為可打印字符直接輸出,AL=0為擴展鍵需進一步查掃描碼AL≠0→PRINT掃描碼查表機制建立掃描碼→功能地址跳轉表,用AH值作為索引,通過JMP[BX+SI]實現快速分支跳轉JMP[BX+SI]功能鍵映射AH=48H(↑)調用上移光標,AH=50H(↓)調用下移子程序,AH=01H(Esc)觸發退出邏輯48H↑·50H↓·01HESC回顯控制程序自行決定是否回顯輸入內容,可實現密碼掩碼顯示、命令編輯等高級交互功能ECHOCONTROLAssemblyModule自定義鍵盤輸入模塊(keyboard)keyboard程序自行管理輸入緩沖區和光標位置,支持退格刪除、光標移動等編輯功能,比DOSAH=0AH的簡單緩沖輸入更靈活,適用于需要復雜交互的場景。緩沖區管理定義固定大小的字符數組作為輸入緩沖區,用DI指向當前位置,SI記錄已輸入字符數DI·SI退格處理檢測掃描碼08H時,DI回退一位、SI減1,用空格覆蓋屏幕上最后一個字符并回移光標Scan08H回車確認檢測掃描碼0DH時,在緩沖區末尾添加'$'終止符,設置返回標志退出輸入循環Scan0DH溢出保護每次輸入前比較SI與緩沖區最大長度,達到上限時忽略后續輸入并發出蜂鳴提示INT10HI/OProgramming字處理演示程序(wspp)設計思路wspp程序綜合運用鍵盤輸入、屏幕顯示和緩沖區管理技術,實現了簡易文本編輯器功能,是I/O編程技術的集大成應用案例。文本緩沖區在內存中維護一個大于屏幕面積的二維字符數組,存儲所有已輸入的文本內容,支持隨機訪問和高效讀寫操作2DArray光標與視圖同步屏幕顯示緩沖區中當前可見的25行內容,光標移動超出屏幕邊界時觸發整屏滾動更新,保持視圖與數據一致25Lines編輯操作映射普通字符插入緩沖區并顯示,Backspace刪除前一字符并刷新,Enter插入換行符并下移光標,實現完整的編輯功能映射3Mappings性能優化頻繁刷新時繞過INT10H直接寫入B800:0000顯示緩沖區,避免BIOS調用的額外開銷,顯著提升屏幕更新效率B800:0000EXPERIMENTPRACTICE鍵盤輸入實驗練習兩個擴充型實驗要求在示例程序基礎上增加新功能,鍛煉學生對鍵盤I/O技術的綜合運用能力和程序架構設計能力。實驗3.6擴充鍵盤處理功能在kbdio基礎上增加Ctrl組合鍵支持:如Ctrl+S保存、Ctrl+Q退出、Ctrl+C復制等常用快捷鍵實現按鍵歷史記錄功能:維護環形緩沖區保存最近N次按鍵,支持按F2回放歷史輸入增加按鍵統計功能:實時顯示已按鍵次數、字符鍵/功能鍵比例,按F10切換顯示統計面板實驗3.7擴充字處理功能在wspp基礎上增加文本查找功能:按Ctrl+F彈出查找輸入框,輸入關鍵詞后在緩沖區中搜索并高亮定位實現行號顯示:在屏幕左側固定顯示當前行號,隨光標移動實時更新增加文件保存功能:按Ctrl+S時調用DOSINT21H的文件創建和寫入功能,將緩沖區內容保存為磁盤文件CHAPTER05中斷程序設計理解中斷向量表,掌握中斷處理程序的編寫與安裝8086Architecture中斷機制與中斷向量表8086通過256項中斷向量表(IVT)管理所有中斷,每項4字節存儲處理程序的段地址和偏移地址。自定義中斷程序的核心操作就是修改IVT中對應項的指針值。IVT結構中斷類型號0~255對應256個中斷向量,每個向量4字節(低字=偏移IP,高字=段CS),IVT位于物理地址00000H~003FFH。00000H–003FFH中斷響應過程CPU收到中斷→標志寄存器入棧→清IF/TF→CS:IP入棧→從IVT讀取處理程序地址→跳轉執行。6步響應鏈IRET返回指令依次彈出IP、CS、標志寄存器,恢復被中斷程序的執行現場,與RET指令不同——RET不恢復FLAGS。IRET≠RET向量定位公式類型號n的向量地址=n×4。如INT09H(鍵盤中斷)向量地址=09H×4=00024H(即0000:0024)。n×4=0000:0024ASSEMBLY·INTERRUPT自定義中斷處理程序的編寫與安裝安裝自定義中斷處理程序需遵循"保存原向量→關中斷→安裝新向量→開中斷"的安全流程,程序退出時必須恢復原向量以防止系統崩潰。01獲取原向量DOSAH=35HMOVAH,35H/MOVAL,中斷類型號/INT21H,返回ES:BX=原處理程序地址,存入內存變量保存02編寫處理過程FARPROC以FARPROC聲明,入口處用PUSH保存所有修改的寄存器,出口處POP恢復,最后IRET返回03安裝新向量DOSAH=25HCLI關中斷→DX=偏移地址→DS=段地址→MOVAH,25H/MOVAL,類型號/INT21H→STI開中斷04恢復原向量EXITRESTORE程序退出前用同樣方法(AH=25H)將保存的原ES:BX寫回IVT,確保后續程序能正常使用該中斷InterruptProgramming打字計時程序(type-ex)實例分析type-ex通過替換INT1CH定時器中斷實現后臺精確計時,在不干擾主程序鍵盤輸入的前提下統計打字時間,展示了中斷在異步事件處理中的核心價值。01INT1CH是定時器滴答中斷(約18.2次/秒),BIOS默認處理為空操作(僅IRET),用戶可安全替換為自定義計時邏輯02計時實現:自定義INT1CH處理程序每次被調用時將內存計數器加1,主程序讀取計數器值÷18.2即得秒數03主程序邏輯:安裝INT1CH處理程序→等待用戶按鍵開始→循環讀取鍵盤輸入并計數→回車結束→讀取計數器計算速度→恢復原向量04關鍵技術點:計數器變量必須在主程序和處理程序之間共享(同一數據段),且操作計數器時需考慮原子性(16位加法可能被中斷打斷)DOSMEMORYARCHITECTURE駐留程序(TSR)基本概念TSR程序通過DOSAH=31H終止并駐留內存,安裝自定義中斷處理程序監聽熱鍵激活。這是DOS時代實現"后臺常駐"和"隨時呼出"功能的核心技術。01TSR終止方式通過DOSINT21HAH=31H(TerminateandStayResident)實現終止駐留,AL寄存器傳入返回碼,DX指定駐留內存大小(以16字節節數計)。INT21H·AH=31H02熱鍵激活機制替換INT09H(鍵盤中斷)或INT16H(鍵盤服務),在中斷處理程序中檢測特定組合鍵(如Ctrl+Alt+Del)以觸發TSR功能。INT09H·INT16H03內存管理TSR駐留后占用固定內存區域,需精確計算所需空間(代碼+數據+堆棧),避免與后續加載的程序產生內存沖突。16字節/節04安全注意事項TSR激活時必須保存當前所有寄存器和顯示狀態,執行完畢后完全恢復現場,否則會導致前臺程序運行異常。SAV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- lcc置管及相關并發癥的防控
- D14函數的極限復習
- DNA的生物合成復制-1
- 關于門診護士年度總結
- ESD防護技術培訓教材
- JCBC0甲烷指示警報器
- 2026年注冊建筑師考試《建筑結構規范》模擬卷
- 2026年藥物分析題庫及答案四川農業大學
- 2026年測繪設計工程師《測繪管理》真題試卷
- 細節決定成敗安全管理
- 礦產資源開發合作框架協議書范本
- 2024風力發電場后評價及改造技術規范
- 糧食應急預案與應急演練
- 學校保安保潔及宿管服務投標方案(技術方案)
- 延長石油招聘筆試試題
- 項目實施、驗收組織方案
- 《我愛上班》朗誦稿
- F-1600泥漿泵性能及維護課件
- 名著導讀《水滸傳》教學設計-部編版語文九年級上冊
- 維克多高中英語3500詞匯
- 2023年全國火電廠分布
評論
0/150
提交評論