




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章 32位匯編程序設(shè)計(jì)80186以后CPU在8086基礎(chǔ)上增加的常用指令。在DOS下和Windows下如何使用32位指令設(shè)計(jì)程序。 區(qū)別于DOS下的Debug,如何用W32Dasm調(diào)試Windows程序。5.1 32位指令系統(tǒng)Intel公司于1985年正式公布了32位微處理器80386。80386采用32位指令系統(tǒng)的結(jié)構(gòu),被Intel公司稱為英特爾結(jié)構(gòu),簡(jiǎn)稱IA(1ntel Architecture)結(jié)構(gòu),并明確宣布作為后續(xù)80 x86微處理器的標(biāo)準(zhǔn)。在此基礎(chǔ)上,Intel公司又相繼推出了80486、Pentium、MMX Pentium 、Pentium Pro、Pentium II、P
2、entium III、Pentium 等微處理器,它們都繼承了80386的32位指令系統(tǒng),同時(shí)又新增了若干條專用指令;另外還在32位整數(shù)指令系統(tǒng)的基礎(chǔ)上加入了浮點(diǎn)指令、整數(shù)多媒體MMX指令和浮點(diǎn)多媒體SSE指令,極大地豐富了Intel 80 x86微處理器的指令系統(tǒng),有效地增強(qiáng)了Intel 80 x86微處理器的功能。32位的尋址方式Intel 80 x86系列的微處理器32位CPU相對(duì)于16位CPU尋址方式的主要區(qū)別有:(1) 32位尋址方式的操作數(shù)可以是8位、16位或32位,包括32位的立即數(shù)。例如: MOV EAX,12345678H ;源操作數(shù)為32位立即數(shù) MOV EAX,EBX ;
3、兩個(gè)寄存器均為32位 MOV EAX,2000H ;因?yàn)镋AX為32位,從DS:2000H處取4字節(jié)(2) 在使用寄存器間接尋址、寄存器相對(duì)尋址或相對(duì)的基址變址尋址時(shí),既可以用16位的寄存器,又可以使用32位的寄存器。例如: MOV AX,BX MOV DX,EBX MOV EAX,EBX+80H MOV EAX,EBX+ESI+0400H(3) 80386的所有32位通用寄存器都可以作為偏移地址參加尋址,而在8086/8088/80186/80286中的AX、DX、CX寄存器不能用來存放存儲(chǔ)器操作數(shù)的偏移地址。例如: MOV AX,ECX ;正確 MOV BX,EAX ;正確 MOV BX,
4、AX ;在16位下錯(cuò)誤(4) 80386的所有32位通用寄存器都可以作為基地址寄存器使用,除了ESP寄存器以外都可以作為變址寄存器使用。(5) 32位變址寄存器的值可以乘上一個(gè)比例常數(shù)(如1,2,4,8),乘上比例常數(shù)的變址方式對(duì)于訪問數(shù)組等數(shù)據(jù)結(jié)構(gòu)特別有效。例如: MOV EAX,ESI*2MOV EAX,EBX+ESI*8MOV EAX,EBX+ESI*4+0400H由此可見,16位存儲(chǔ)器操作數(shù)的尋址方式的組成公式為: 16位有效地址=基址寄存器(BX/BP)+變址寄存器(SI/DI)+8/16位的偏移量其中基址寄存器只能是BX或BP,變址寄存器只能是SI或DI。 而32位存儲(chǔ)器操作數(shù)的尋
5、址方式的組成公式為:32位有效地址=基址寄存器+(變址寄存器*比例)+8/32位的偏移量其中基址寄存器為任何8個(gè)32位通用寄存器之一,變址寄存器為除ESP之外的任何32位通用寄存器之一,比例可以是1、2、4或8,代表操作數(shù)的長(zhǎng)度是1、2、4或8字節(jié),位移量可以是8或32位的值。32位擴(kuò)展指令 1數(shù)據(jù)傳送指令的擴(kuò)展 (1) 堆棧操作 a. 進(jìn)棧指令PUSH和出棧指令POP b.16位通用寄存器進(jìn)棧指令PUSHA和出棧指令POPA 從80186開始引入了如下指令: PUSHA ;順序?qū)X/CX/DX/BX/SP/BP/SI/DI的內(nèi)容 壓入堆棧,SPSP-16 POPA ;功能和PUSHA指令功
6、能相反,SPSP+16c. 32位通用寄存器進(jìn)棧指令PUSHAD和出棧指令POPAD. 這兩條指令是32位CPU新擴(kuò)展的指令: PUSHAD ;順序?qū)?EAX/ECX/EDX/EBX/ESPEBP/ESI/EDI的內(nèi)容壓入堆棧,SPSP-32POPAD ;功能和PUSHAD指令功能相反,SPSP+32(2) 標(biāo)志傳送 標(biāo)志傳送指令增加了兩條: PUSHFD ;將EFLAGS的內(nèi)容壓入堆棧,堆棧中D16D17兩位被清0POPFD ;將堆棧內(nèi)容彈出到EFLAGS,堆棧中D20D19兩位被清0,D16保持不變(3) 地址傳送地址傳送指令增加了三條:LFS r16/r32, mem ;FS:r16/r
7、32存儲(chǔ)單元的32/48位遠(yuǎn)指針LGS r16/r32, mem ;GS:r16/r32存儲(chǔ)單元的32/48位遠(yuǎn)指針LSS r16/r32, mem ;SS:r16/r32存儲(chǔ)單元的32/48位遠(yuǎn)指針2. 算術(shù)運(yùn)算指令的擴(kuò)展 (1) 乘除法指令I(lǐng)MUL r16,r16/m16/i8/i16 ;r16 r16*r16/m16/i8/i16IMUL r16,r16/m16,i8/i16 ;r16 r16/m16*i8/i16IMUL r32,r32/m32/i8/i32 ;r32 r32*r32/m32/i8/i16IMUL r32,r32/m32,i8/i32 ;r16 r32/m32*i8/i
8、16 指令說明:新增的這些指令要求目的操作數(shù)和源操作數(shù)的長(zhǎng)度要相同。對(duì)于8位立即數(shù)i8要進(jìn)行符號(hào)擴(kuò)展,擴(kuò)展后為16/32位。 (2) 符號(hào)擴(kuò)展指令80386 新擴(kuò)展的指令有:CWDE ;將AX符號(hào)擴(kuò)展為EAXCDQ ;將EAX符號(hào)擴(kuò)展為EDX.EAXMOVSX r16,r8/m8 ;r16將r8/m8符號(hào)擴(kuò)展MOVZX r16,r8/m8 ;r16將r8/m8零位擴(kuò)展MOVSX r32,r8/m8/r16/m16 ;r32將r8/m8/r16/m16符號(hào)擴(kuò)展MOVZX r32,r8/m8/r16/m16 ;r32將r8/m8/r16/m16零位擴(kuò)展 3. 位操作指令擴(kuò)展移位指令從80186開始
9、支持一個(gè)立即數(shù)做移位次數(shù),其指令格式為:SHL/SHR/SAL/SAR/ROL/ROR/RCL/RCR reg/mem,1/cl/i8 4. 串操作指令擴(kuò)展 從80186開始支持端口的串操作,配合重復(fù)前綴指令就能夠?qū)崿F(xiàn)用一條指令連續(xù)進(jìn)行輸入或輸出操作,大大提高了CPU的I/O操作能力。(1) 串輸入 指令格式及功能: INSB/INSW/INSD ;ES:DI/EDI DX指定的輸入端口,DI/EDIDI/EDI1/2/4 指令說明:INS指令從由DX指定的輸入端口中輸入一個(gè)字節(jié)(INSB)或一個(gè)字(INSW)或一個(gè)雙字INSD)數(shù)據(jù)到由ES:DI/EDI指定的存儲(chǔ)單元中,且能使DI/EDI自
10、動(dòng)1或2或4;DX內(nèi)容保持不變。ES段寄存器不能被段超越。(2) 串輸出指令格式及功能: OUTSB/OUTSW/OUTSD ;DX指定的輸出端口DS:SI/ESI,SI/ESISI/ESI1/2/4 指令說明:該指令實(shí)現(xiàn)從由DS:SI/ESI指定的內(nèi)存單元中的一個(gè)字節(jié)(OUTSB)或一個(gè)字(OUTSW)或一個(gè)雙字(OUTSD)數(shù)據(jù)到由DX指定輸出端口中,且能使SI/ESI自動(dòng)1或2或4;DX內(nèi)容保持不變。DS段寄存器可以被段超越。 80386新增指令80386CPU中通用寄存器由32位寄存器組成,因此所有16位指令都有其相應(yīng)的32位指令形式,以支持32位數(shù)據(jù)類型的操作。操作數(shù)可為8位、16位
11、或32位,并且可以使用32位尋址方式。80386的執(zhí)行單元中新增了一個(gè)“桶型”移位器,所以可以實(shí)現(xiàn)快速移位操作,新增的指令主要是有關(guān)位操作的。另外,80386還增加了條件設(shè)置指令,以及對(duì)控制、調(diào)試和測(cè)試寄存器的傳送指令。80486新增指令 80486CPU不僅包括80386CPU的結(jié)構(gòu),還包括了80387協(xié)處理器FPU的結(jié)構(gòu),且在此基礎(chǔ)上增加了8KB的Cache高速緩沖存儲(chǔ)器,它的最高內(nèi)部時(shí)鐘頻率達(dá)到了100MHZ。采用了精簡(jiǎn)指令系統(tǒng)集計(jì)算機(jī)技術(shù)RISC和指令流水線方式,使指令的執(zhí)行速度及其他性能有了更大的提高,且可以直接執(zhí)行8087的所有浮點(diǎn)運(yùn)算指令。80486的指令系統(tǒng)在80386指令系統(tǒng)
12、的基礎(chǔ)上增加了6條指令,其中,INVLPG、INVD及WBINVD三條專用于Cache管理,一般用戶不需使用,另外三條XADD、CMPXCHG和BSWAP指令是可供系統(tǒng)應(yīng)用程序使用的指令。Pentium新增指令Pentium CPU仍為32位結(jié)構(gòu),地址總線為32位,但外部數(shù)據(jù)線為64位,內(nèi)部時(shí)鐘頻率為60MHZ200MHZ。Pentium CPU對(duì)浮點(diǎn)處理單元進(jìn)行了重大改進(jìn),增加了專用的加法、乘法和除法單元;采用具有兩條流水線的超標(biāo)量技術(shù);對(duì)常用的簡(jiǎn)單指令用硬件實(shí)現(xiàn)等,進(jìn)一步提高了Pentium CPU的整體性能。Pentium CPU指令系統(tǒng)中新增加了一條8字節(jié)比較交換指令CMPXCHG8B
13、,一條處理器識(shí)別指令CPUID,4條系統(tǒng)專用指令RDTSC、RDMSR、WRMSR、RSM。Pentium pro新增指令 Pentium Pro CPU的地址總線為36位,可以尋址的主存空間可達(dá)64GB。Pentium Pro CPU內(nèi)含一級(jí)Cache 為16KB,二級(jí)Cache 為256/512KB;擴(kuò)展了超標(biāo)量技術(shù),具有三個(gè)整數(shù)處理單元和一個(gè)浮點(diǎn)處理單元,能同時(shí)執(zhí)行三條指令,并對(duì)32位指令進(jìn)行了優(yōu)化處理。Pentium Pro CPU在Pentium指令系統(tǒng)的基礎(chǔ)上新增了3條實(shí)用的指令CMOV、RDPMC、UD2。DOS下32位匯編程序32位程序編寫規(guī)范 32位指令的程序設(shè)計(jì)方法和我們?cè)?/p>
14、前面講過的16位指令的程序設(shè)計(jì)方法基本相同。但在編寫完整的匯編程序時(shí),需注意以下問題: 指定匯編程序識(shí)別新指令處理16位段和32位段注意有些指令在16位段和32位段的差別 DOS 32位程序舉例 例1:將一個(gè)64位數(shù)據(jù)算術(shù)左移4位分析:本例采用EDX.EAX保存64位數(shù)據(jù),用4次循環(huán)實(shí)現(xiàn)移位。.MODEL SMALL.386 ;采用32位指令,16位段模式.STACK.DATAQVAR DQ 1234567887654321H.CODE .STARTUPMOV EAX,DWORD PTR QVARMOV EDX DWORD PTR QVAR 4MOV ECX,4NEXT:SHL EAX,1RC
15、L EDX,1LOOP NEXTMOV DWORD PTR QVAR,EAXMOV DWORD PTR QVAR4,EDX .EXIT 0ENDWindows下32位匯編程序 若較好地掌握了Windows下的匯編程序開發(fā),可以讓我們深刻地理解高級(jí)語言是怎么來的,而且在學(xué)習(xí)反病毒技術(shù)、軟件的加密解密方面這是必須的。在高級(jí)語言的開發(fā)中涉及到程序的調(diào)試,也要用到匯編語言。 Windows下匯編語言的開發(fā)使用軟件Masm32或Tasm32,本書使用的是Masm32。程序的調(diào)試使用W32dasm、Soft-Ice等軟件。Windows匯編語言特點(diǎn)DOS下的匯編程序是“指令+中斷”,而Windows下32
16、位匯編程序是“指令+API+消息”。 API函數(shù):API是“Application Programming Interface”的英文縮寫,很象DOS下的中斷。中斷是系統(tǒng)提供的功能,在操作系統(tǒng)運(yùn)行后就被裝載在內(nèi)存中,而API函數(shù)是通過將函數(shù)所在的動(dòng)態(tài)連接庫裝載到內(nèi)存后調(diào)用函數(shù)的。 在Windows下設(shè)計(jì)應(yīng)用程序不使用API是不可能的,有些高級(jí)語言看似沒有使用API,只不過它們提供的模塊對(duì)API進(jìn)了封裝。API是Windows的基礎(chǔ),API包含在眾多擴(kuò)展名為dll的動(dòng)態(tài)連接庫中,三個(gè)關(guān)鍵的動(dòng)態(tài)連接庫文件是:Kernel32.dll:系統(tǒng)服務(wù)功能。包含內(nèi)存管理、任務(wù)管理和文件操作等API函數(shù)。一般
17、情況下都要使用該動(dòng)態(tài)連接庫。也許一個(gè)程序什么功能也沒有,但不能沒有類似DOS下退出內(nèi)存的.EXIT 0指令,在Windows下為API函數(shù)ExitProcess。Gui32.dll:圖形設(shè)備接口。提供顯示文本和圖形等API函數(shù)。Windows程序最大的一個(gè)特點(diǎn)是窗口,如果設(shè)計(jì)的程序要包含窗口,則需要該庫中的函數(shù),包括窗口的建立、顯示、事件處理和銷毀。User32.dll:用戶接口服務(wù)。提供建立窗口和傳送消息的API函數(shù)。用戶點(diǎn)擊按鈕或拖動(dòng)窗口,界面之所以出現(xiàn)相應(yīng)的變化,因?yàn)橄到y(tǒng)對(duì)不同的用戶操作用消息來描述,不同的消息又對(duì)應(yīng)不同的函數(shù),由它們?nèi)ヌ幚怼?消息:消息是指Windows發(fā)出的一個(gè)通知,
18、告訴應(yīng)用程序某個(gè)事情發(fā)生了。例如,單擊鼠標(biāo)、改變窗口尺寸、按下鍵盤上的一個(gè)鍵都會(huì)使Windows發(fā)送一個(gè)消息給應(yīng)用程序。 消息本身是作為一個(gè)用MSG命名的結(jié)構(gòu)傳遞給應(yīng)用程序的,這個(gè)結(jié)構(gòu)中包含了消息的類型等信息。其定義如下:MSG structHwnd dword ? ;消息目的窗口句柄Message dword ? ;消息常量標(biāo)識(shí)符,是用WM_開頭的預(yù)定義常量wParam dword ? ;32位消息帶的參數(shù)1lParam dword ? ;32位消息帶的參數(shù)2Time dword ? ;消息創(chuàng)建時(shí)的時(shí)間Pt POINT ;消息創(chuàng)建時(shí)的鼠標(biāo)位置MSG endsMASM32開發(fā)環(huán)境Steve H
19、utchesson的免費(fèi)軟件包編輯器geditor.exeMASM 6.14匯編程序和鏈接程序相當(dāng)完整的Win32的包含文件、庫文件以及教程和示例等MASM32的網(wǎng)絡(luò)資源Hutch的32位MASM第8版(masm32v82r.zip)http:/Iczelion的Win32教程http:/spiff.tripnet.se/iczelionhttp:/API文檔/msdn MASM32界面.386 ;偽指令,還可以是.486 .586.MODEL Flat, STDCALL ;內(nèi)存模式偽指令.DATA ; STDCALL告訴編譯器參數(shù)的傳遞約定。 ;初始化數(shù)據(jù)定義于此 . .DATA? ;未初始
20、化數(shù)據(jù)定義于此.CONST ;常量定義于此.CODE;標(biāo)號(hào) ;start:;代碼部分. end ;end startWin32ASM程序結(jié)構(gòu)一個(gè)最簡(jiǎn)單的Win32匯編語言程序顯示標(biāo)準(zhǔn)Windows消息窗口的程序消息框顯示:匯編語言并不難標(biāo)題:歡迎進(jìn)入32位Windows世界將下面的代碼存為aa.asm,然后選擇菜單“Project”“Assemble & Link”,如果沒有錯(cuò)誤的話,會(huì)生成aa.exe。雙擊aa.exe就可以執(zhí)行它。Win32ASM程序示例.386.model flat,stdcalloption casemap:noneinclude masm32includewindow
21、s.incinclude masm32includekernel32.incinclude masm32includeuser32.incincludelib masm32libkernel32.libincludelib masm32libuser32.libAPI區(qū)別大小寫包含對(duì)系統(tǒng)常量和API函數(shù)等的聲明包含API函數(shù)的庫文件.dataszCaptiondb “歡迎進(jìn)入32位Windows世界”,0szText db “匯編語言并不難!”,0.codestart:invoke MessageBox,NULL,offset szText, addr szCaption,MB_OKinvok
22、e ExitProcess,NULLend start顯示消息框API調(diào)用返回操作系統(tǒng)API調(diào)用MessageBox在Win32程序員參考手冊(cè)中的定義:int MessageBox( HWND hWnd,/ handle of owner window LPCTSTR lpText,/ address of text in message box LPCTSTR lpCaption,/ address of title of message box UINT uType/ style of message box );在user32.inc的聲明:MessageBoxA PROTO :DWOR
23、D,:DWORD,:DWORD,:DWORDMessageBox equ ExitProcess在Win32程序員參考手冊(cè)中的定義:VOID ExitProcess( UINT uExitCode/ exit code for all threads );在user32.inc的聲明:ExitProcess PROTO :DWORD在windows.inc 的定義:NULLequ 0MB_OKequ 0W32Dasm反匯編工具簡(jiǎn)介W32Dasm是著名的靜態(tài)反匯編工具,它能把PE等格式的文件反匯編為易于閱讀的文本文件。所謂的靜態(tài)反匯編是有別于動(dòng)態(tài)反匯編工具,一次完成反匯編,不能一條指令一條指令的
24、跟蹤執(zhí)行的一種反匯編方式。W32Dasm只有簡(jiǎn)單的調(diào)試功能。 W32Dasm的主要功能 保存反匯編文本文件和創(chuàng)建方案文件 跳轉(zhuǎn)到代碼的某個(gè)位置 查看導(dǎo)入、導(dǎo)出函數(shù) 以二進(jìn)制方式查看數(shù)據(jù)段和代碼段數(shù)據(jù) 資源定位 簡(jiǎn)單的動(dòng)態(tài)調(diào)試功能 W32Dasm ver 8.3W32Dasm 的反匯編代碼閱讀我們以上個(gè)例子生成的可執(zhí)行文件進(jìn)行反匯編,然后分析其反匯編文件結(jié)構(gòu)。下面按行進(jìn)行說明:反匯編的文件名為test.exe。代碼段在文件中偏移地址為400h,大小為200h。數(shù)據(jù)段在文件中偏移地址為800h,大小為200h。 節(jié)個(gè)數(shù)為3,程序內(nèi)存中裝載的虛擬地址為00400000h。節(jié)是可執(zhí)行文件中代碼、數(shù)據(jù)和
25、資源的基本單位。節(jié):性質(zhì)相同的數(shù)據(jù)放在一個(gè)連續(xù)區(qū)域內(nèi),該區(qū)域叫節(jié)節(jié)名.text,內(nèi)存中相對(duì)于ImageBase的偏移值為1000h,文件中偏移為400h,大小為200h,節(jié)屬性值為60000020h。屬性表明該節(jié)是可執(zhí)行、可讀和可寫等特征的。該節(jié)一般包含可執(zhí)行的代碼。 節(jié)名.rdata,內(nèi)存中相對(duì)于ImageBase的偏移值為2000h,文件中偏移為600h,大小為200h,節(jié)屬性值為40000040h。節(jié)名.data,內(nèi)存中相對(duì)于ImageBase的偏移值為3000h,文件中偏移為800h,大小為200h,節(jié)屬性值為0c0000040h。定義的全局變量一般在該節(jié)。節(jié)名.rsrc,內(nèi)存中相對(duì)于
26、ImageBase的偏移值為4000h,文件中偏移為0a00h,大小為600h,節(jié)屬性值為0c0000040h。文件中使用到的資源一般在該節(jié)。程序有一個(gè)菜單資源,但格式不清楚。程序無對(duì)話框資源。 導(dǎo)入函數(shù)信息。有兩個(gè)導(dǎo)入模塊。導(dǎo)入模塊1為kernel32.dll,模塊2為user32.dll。調(diào)用模塊1中函數(shù)ExitProcess,在內(nèi)存中地址為0040205ch,函數(shù)序號(hào)為0075h。調(diào)用模塊2中函數(shù)MessageBoxA,在內(nèi)存中地址為00402078h,函數(shù)序號(hào)為01bbh。 導(dǎo)出函數(shù)個(gè)數(shù)為0。一般只有dll文件才有導(dǎo)出模塊。匯編代碼列表。代碼部分在節(jié).text。程序入口在內(nèi)存00401000h,在文件偏移位置1600h。后面部分為匯編代碼部分。在原程序中調(diào)用MessageBox的方法為: invoke MessageBox,0,offset text1,offset text2,MB_OK在反匯編中,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咖啡館場(chǎng)地租賃合同
- 建筑單價(jià)施工合同
- 亮化工程合同協(xié)議書
- 北京租房居間合同
- 會(huì)議接待流程優(yōu)化方案
- 室外地磚施工方案
- 老路破除修補(bǔ)施工方案
- 別墅屋頂防水施工方案
- 浮吊桁架吊裝施工方案
- 堤壩加固施工方案
- 2025年皖西衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫含答案
- 中小學(xué)-安全使用與維護(hù)家用電器-主題班會(huì)教案
- 2025年湖南信息職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫及答案1套
- 2025年湖南中醫(yī)藥高等??茖W(xué)校單招職業(yè)技能測(cè)試題庫必考題
- 2025年陜西延長(zhǎng)石油集團(tuán)有限責(zé)任公司招聘筆試參考題庫含答案解析
- 2024年湖南省中考英語試題卷(含答案)
- 小學(xué)語文新課標(biāo)學(xué)習(xí)任務(wù)群的基本理解和操作要領(lǐng)
- 績(jī)效評(píng)價(jià)師考試-隨機(jī)題庫
- 電動(dòng)車銷售合同
- 美的集團(tuán)優(yōu)秀員工評(píng)選管理辦法
- 區(qū)塊鏈項(xiàng)目資金申請(qǐng)報(bào)告范文
評(píng)論
0/150
提交評(píng)論