版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、匯編語(yǔ)言課件,王爽 著清華大學(xué)出版社,制作工具:Microsoft PowerPoint2003,本課件由匯編網(wǎng)()制作提供,第9章 轉(zhuǎn)移指令的原理,9.1 操作符offset 9.2 jmp指令 9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令 9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令 9.5 轉(zhuǎn)移地址在寄存器中的jmp指令 9.6 轉(zhuǎn)移地址在內(nèi)存中的jmp指令 9.7 jcxz指令 9.8 loop指令 9.9 根據(jù)位移進(jìn)行轉(zhuǎn)移的意義 9.10 編譯器對(duì)轉(zhuǎn)移位移超界的檢測(cè),引言,8086CPU的轉(zhuǎn)移指令分為以下幾類: 無(wú)條件轉(zhuǎn)移指令 (如:jmp) 條件轉(zhuǎn)移指令 循環(huán)指令(如:loop) 過(guò)程 中斷
2、,9.1 操作符offset,操作符offset在匯編語(yǔ)言中是由編譯器處理的符號(hào),它的功能是取得標(biāo)號(hào)的偏移地址。 比如下面的程序: assume cs:codesg codeseg segment start:mov ax,offset start ; 相當(dāng)于 mov ax,0 s:mov ax,offset s ; 相當(dāng)于mov ax,3 codesg ends end start,9.1 操作符offset,問(wèn)題9.1 有如下程序段,添寫2條指令,使該程序在運(yùn)行中將s處的一條指令復(fù)制到s0處。 思考后看分析。,assume cs:codesg codesg segment s: mov a
3、x,bx ;(nop的機(jī)器碼占一個(gè)字節(jié)) mov si,offset s mov di,offset s0 _ _ s0: nop ;(nop的機(jī)器碼占一個(gè)字節(jié)) nop codesg ends ends,9.1 操作符offset,問(wèn)題9.1分析 (1)s和s0處的指令所在的內(nèi)存單元的地址是多少? cs:offset s 和cs:offset s0。 (2)將s處的指令復(fù)制到s0處,就是將cs:offeet s 處的數(shù)據(jù)復(fù)制到cs:offset s0處;,9.1 操作符offset,問(wèn)題9.1分析(續(xù)) (3)段地址已知在cs中,偏移地址offset s和offset s0已經(jīng)送入si和di
4、中; (4)要復(fù)制的數(shù)據(jù)有多長(zhǎng)? mov ax,bx指令的長(zhǎng)度為兩個(gè)字節(jié),即1個(gè)字。 完整程序,9.1 操作符offset,assume cs:codesg codesg segment s: mov ax,bx ;(mov ax,bx 的機(jī)器碼占兩個(gè)字節(jié)) mov si,offset s mov di,offset s0 mov ax,cs:si mov cs:di,ax s0: nop ;(nop的機(jī)器碼占一個(gè)字節(jié)) nop codesg ends ends,問(wèn)題9.1完整程序:,9.2 jmp指令,jmp為無(wú)條件轉(zhuǎn)移,可以只修改IP,也可以同時(shí)修改CS和IP; jmp指令要給出兩種信息:
5、 轉(zhuǎn)移的目的地址 轉(zhuǎn)移的距離(段間轉(zhuǎn)移、段內(nèi)短轉(zhuǎn)移,段內(nèi)近轉(zhuǎn)移),9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,jmp short 標(biāo)號(hào)(轉(zhuǎn)到標(biāo)號(hào)處執(zhí)行指令) 這種格式的 jmp 指令實(shí)現(xiàn)的是段內(nèi)短轉(zhuǎn)移,它對(duì)IP的修改范圍為 -128127,也就是說(shuō),它向前轉(zhuǎn)移時(shí)可以最多越過(guò)128個(gè)字節(jié),向后轉(zhuǎn)移可以最多越過(guò)127個(gè)字節(jié)。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,比如:程序9.1 assume cs:codesg codesg segment start:mov ax,0 jmp short s add ax,1 s:inc ax codesg ends end start,左面的程序執(zhí)行后, ax中的
6、值為 1 ,因?yàn)閳?zhí)行 jmp short s 后 ,越過(guò)了add ax,1 ,IP 指向了標(biāo)號(hào) s處的 inc ax。也就是說(shuō),程序只進(jìn)行了一次ax加1操作。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,匯編指令jmp short s 對(duì)應(yīng)的機(jī)器指令應(yīng)該是什么樣的呢? 我們先看一下別的匯編指令和其對(duì)應(yīng)的機(jī)器指令,(示例) 現(xiàn)在我們?cè)贒ebug中將程序9.1翻譯成為機(jī)器碼,看看結(jié)果,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,匯編指令與機(jī)器碼的對(duì)應(yīng)示例 可以看到,在一般的匯編指令中,匯編指令中的idata(立即數(shù)),不論它是表示一個(gè)數(shù)據(jù)還是內(nèi)存單元的偏移地址,都會(huì)在對(duì)應(yīng)的機(jī)器指令中出現(xiàn),因?yàn)镃PU執(zhí)行的是機(jī)
7、器指令,它必須要處理這些數(shù)據(jù)或地址。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,對(duì)照匯編源程序,我們可以看到,Debug 將 jmp short s 中的 s 表示為inc ax 指令的偏移地址 8 ,并將jmp short s 表示為 jmp 0008 ,表示轉(zhuǎn)移到cs:0008處。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,這一切似乎合理,可是當(dāng)我們查看jmp short s或jmp 0008所對(duì)應(yīng)的機(jī)器碼,去發(fā)現(xiàn)了問(wèn)題。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,jmp 0008 ( Debug 中的表示)或jmp short s (匯編語(yǔ)言中的表示)所對(duì)應(yīng)的機(jī)器碼為EB 03,注意,這個(gè)機(jī)器碼中竟
8、不包含轉(zhuǎn)移的目的地址。 這意味著,CPU 在執(zhí)行EB 03的時(shí)候,并不知道轉(zhuǎn)移目的地址。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,那么,CPU根據(jù)什么進(jìn)行轉(zhuǎn)移呢? 沒(méi)有了目的地址,CPU如何知道轉(zhuǎn)移到哪里呢?,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,令人奇怪的是,匯編指令jmp short s中,明明是帶有轉(zhuǎn)移的目的地址(由標(biāo)號(hào) s 表示)的,可翻譯成機(jī)器指令后,怎么目的地址就沒(méi)了呢?,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,沒(méi)有了目的地址,CPU如何知道轉(zhuǎn)移到哪里? 我們把程序9.1改寫一下,變成這樣: 程序9.2,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,程序9.2 assume cs:codesg
9、 codesg segment start:mov ax,0 mov bx,0 jmp short s add ax,1 s:inc ax codesg ends end start 我們?cè)贒ebug中將程序9.2翻譯為機(jī)器碼,看看結(jié)果,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,比較一下程序1和2用Debug查看的結(jié)果,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,注意,兩個(gè)程序中的 jmp指令都要使IP 指向 inc ax 指令,但是程序 1 的 inc ax 指令的偏移地址為 0008 ,而程序 2 的 inc ax 指令的偏移地址為000BH。 我們?cè)賮?lái)看兩個(gè)程序中的jmp指令所對(duì)應(yīng)的機(jī)器碼,都是E
10、B 03。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,這說(shuō)明CPU在指令jmp指令的時(shí)候并不需要轉(zhuǎn)移的目的地址。 兩個(gè)程序中的jmp指令的轉(zhuǎn)移目的地址并不一樣,一個(gè)是cs:0008,另一個(gè)是cs:000B。 如果機(jī)器指令中包含了轉(zhuǎn)移的目的地址的話,那么它們對(duì)應(yīng)的機(jī)器碼應(yīng)該是不同的。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,可是它們對(duì)應(yīng)的機(jī)器碼都是 EB 03,這說(shuō)明在機(jī)器指令中并不包含轉(zhuǎn)移 的目的地址。 如果機(jī)器指令中不包含目的地址的話,那么,也就是說(shuō) CPU不需要這個(gè)目的地址就可以實(shí)現(xiàn)對(duì)IP的修改。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,這種信息是什么呢? 我們一步步地分析。 我們先簡(jiǎn)單回憶一下C
11、PU執(zhí)行指令的過(guò)程(如果你需要更多地回憶,可以復(fù)習(xí)一下2.10節(jié)的內(nèi)容)。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,CPU執(zhí)行指令的過(guò)程: (1)從CS:IP指向內(nèi)存單元讀取指令,讀取的指令進(jìn)入指令緩沖區(qū); (2)(IP) = (IP)+所讀取指令的長(zhǎng)度,從而指向下一條指令; (3)執(zhí)行指令。轉(zhuǎn)到1,重復(fù)這個(gè)過(guò)程。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,按照這個(gè)步驟,我們參照程序9.2的圖看一下: jmp short s指令的讀取和執(zhí)行過(guò)程,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,jmp short s指令的讀取和執(zhí)行過(guò)程: (1)(CS)=0BBDH,(IP)=0006,CS:IP指向EB 03
12、(jmp short s的機(jī)器碼); (2)讀取指令碼EB 03進(jìn)入指令緩沖器; (3)(IP)=(IP)+所讀取指令的長(zhǎng)度=(IP)+2=0008,CS:IP指向add ax,1; (4)CPU指行指令緩沖器中的指令EB 03; (5)指令EB 03執(zhí)行后,(IP)=000BH,CS:IP指向inc ax。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,從上面的過(guò)程中我們看到,CPU 將指令EB 03 讀入后,IP 指向了下一條指令,即 CS:0008 處的add ax,1,接著執(zhí)行EB 03。 如果 EB 03 沒(méi)有對(duì) IP 進(jìn)行修改的話,那么,接下來(lái) CPU將執(zhí)行 add ax,1。,9.3 依
13、據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,可是,CPU 執(zhí)行的 EB 03確是一條修改IP的轉(zhuǎn)移指令,執(zhí)行后 (IP) = 000BH ,CS:IP指向inc ax,CS:0008處的add ax,1沒(méi)有被執(zhí)行。 CPU在執(zhí)行EB 03的時(shí)候是根據(jù)什么修改的 IP,使其指向目標(biāo)指令呢?就是根據(jù)指令碼中的03。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,注意,要轉(zhuǎn)移的目的地址是CS:000B,而CPU 執(zhí)行 EB 03時(shí),當(dāng)前的(IP)=0008,如果將當(dāng)前的IP值加3,使(IP)=000BH,CS:IP就可以指向目標(biāo)指令。 在轉(zhuǎn)移指令EB 03中并沒(méi)有告訴CPU要轉(zhuǎn)移的目的地址,卻告訴了 CPU 要轉(zhuǎn)移的位移,
14、即將當(dāng)前的IP向后移動(dòng)3個(gè)字節(jié)。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,因?yàn)槌绦?、2中的jmp 指令轉(zhuǎn)移的位移相同,都是向后 3 個(gè)字節(jié),所以它們的機(jī)器碼都是EB 03。 原來(lái)如此,在“jmp short 標(biāo)號(hào)”指令所對(duì)應(yīng)的機(jī)器碼中,并不包含轉(zhuǎn)移的目的地址,而包含的是轉(zhuǎn)移的位移。 這個(gè)位移,使編譯器根據(jù)匯編指令中的“標(biāo)號(hào)”計(jì)算出來(lái)的,,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,轉(zhuǎn)移位移具體的計(jì)算方法如下圖:,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,結(jié)論: CPU執(zhí)行 jmp short 標(biāo)號(hào) 指令時(shí)并不需要轉(zhuǎn)移的目的地址,只需要知道轉(zhuǎn)移的位移就行了。 具體過(guò)程演示,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp
15、指令,實(shí)際上,指令“jmp short 標(biāo)號(hào)”的功能為(IP)=(IP)+8位位移。 (1)8位位移=“標(biāo)號(hào)”處的地址-jmp指令后的第一個(gè)字節(jié)的地址; (2)short指明此處的位移為8位位移; (3)8位位移的范圍為-128127,用補(bǔ)碼表示 (如果你對(duì)補(bǔ)碼還不了解,請(qǐng)閱讀附注2) (4)8位位移由編譯程序在編譯時(shí)算出。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jmp指令,還有一種和指令“jmp short 標(biāo)號(hào)”功能相近的指令格式: jmp near ptr 標(biāo)號(hào) 它實(shí)現(xiàn)的時(shí)段內(nèi)近轉(zhuǎn)移。 指令“jmp near ptr 標(biāo)號(hào)”的功能為: (IP)=(IP)+16位位移。,9.3 依據(jù)位移進(jìn)行轉(zhuǎn)移的jm
16、p指令,指令“jmp near ptr 標(biāo)號(hào)”的說(shuō)明: (1)16位位移=“標(biāo)號(hào)”處的地址-jmp指令后的第一個(gè)字節(jié)的地址; (2)near ptr指明此處的位移為16位位移,進(jìn)行的是段內(nèi)近轉(zhuǎn)移; (3)16位位移的范圍為 -3276932767,用補(bǔ)碼表示; (4)16位位移由編譯程序在編譯時(shí)算出。,9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令,前面講的jmp指令,其對(duì)應(yīng)的機(jī)器碼中并沒(méi)有轉(zhuǎn)移的目的地址,而是相對(duì)于當(dāng)前IP的轉(zhuǎn)移位移。 指令 “jmp far ptr 標(biāo)號(hào)” 實(shí)現(xiàn)的是段間轉(zhuǎn)移,又稱為遠(yuǎn)轉(zhuǎn)移。,9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令,指令 “jmp far ptr 標(biāo)號(hào)” 功能
17、如下: (CS)=標(biāo)號(hào)所在段的段地址; (IP)=標(biāo)號(hào)所在段中的偏移地址。 far ptr指明了指令用標(biāo)號(hào)的段地址和偏移地址修改CS和IP。 我們看下面的程序,9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令,程序9.3: assume cs:codesg codesg segment start:mov ax,0 mov bx,0 jmp far ptr s db 256 dup (0) s: add ax,1 inc ax codesg ends end start,9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令,我們?cè)贒ebug中將程序9.3翻譯成為機(jī)器碼,看到的結(jié)果如圖:,如圖中所示: 源程序中
18、的db 256 dup (0),被Debug解釋為相應(yīng)的若干條匯編指令 。這不是關(guān)鍵,關(guān)鍵是,我們要注意一下jmp far ptr s所對(duì)應(yīng)的機(jī)器碼:EA 0B 01 BD 0B ,其中包含轉(zhuǎn)移的目的地址。,9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令,“0B 01 BD 0B” 是目的地址在指令中的存儲(chǔ)順序,高地址的“BD 0B”是轉(zhuǎn)移的段地址:0BBDH,低地址的“0B 01” 是偏移地址:010BH。 對(duì)于“jmp X 標(biāo)號(hào)”格式的指令的深入分析請(qǐng)參看附注3。,9.4 轉(zhuǎn)移的目的地址在指令中的jmp指令,9.5 轉(zhuǎn)移地址在寄存器中的jmp指令,指令格式:jmp 16位寄存器 功能:IP =
19、(16位寄存器) 這種指令我們?cè)谇懊娴恼n程(參見2.11節(jié))中已經(jīng)講過(guò),這里就不再詳述。,9.6 轉(zhuǎn)移地址在內(nèi)存中的jmp指令,轉(zhuǎn)移地址在內(nèi)存中的jmp指令有兩種格式: (1) jmp word ptr 內(nèi)存單元地址(段內(nèi)轉(zhuǎn)移) 功能:從內(nèi)存單元地址處開始存放著一個(gè)字,是轉(zhuǎn)移的目的偏移地址。 內(nèi)存單元地址可用尋址方式的任一格式給出。 示例,9.6 轉(zhuǎn)移地址在內(nèi)存中的jmp指令,(1) jmp word ptr 內(nèi)存單元地址(段內(nèi)轉(zhuǎn)移) 示例:,mov ax,0123H mov bx,ax jmp word ptr bx 執(zhí)行后,(IP)=0123H,mov ax,0123H mov ds:0,
20、ax jmp word ptr ds:0 執(zhí)行后,(IP)=0123H,9.6 轉(zhuǎn)移地址在內(nèi)存中的jmp指令,轉(zhuǎn)移地址在內(nèi)存中的jmp指令的第二種格式: (2) jmp dword ptr 內(nèi)存單元地址(段間轉(zhuǎn)移) 功能:從內(nèi)存單元地址處開始存放著兩個(gè)字,高地址處的字是轉(zhuǎn)移的目的段地址,低地址處是轉(zhuǎn)移的目的偏移地址。 (CS)=(內(nèi)存單元地址+2) (IP)=(內(nèi)存單元地址) 內(nèi)存單元地址可用尋址方式的任一格式給出。 示例,9.6 轉(zhuǎn)移地址在內(nèi)存中的jmp指令,(2) jmp dword ptr 內(nèi)存單元地址(段間轉(zhuǎn)移) 示例:,mov ax,0123H mov bx,ax mov word
21、ptr bx+2,0 jmp dword ptr bx 執(zhí)行后, (CS)=0 (IP)=0123H CS:IP指向0000:0123。,mov ax,0123H mov ds:0,ax mov word ptr ds:2,0 jmp dword ptr ds:0 執(zhí)行后, (CS)=0 (IP)=0123H CS:IP指向0000:0123。,特別提示,檢測(cè)點(diǎn)9.1(p170) 沒(méi)有完成此檢測(cè)點(diǎn),請(qǐng)不要向下進(jìn)行。,9.7 jcxz指令,jcxz指令為有條件轉(zhuǎn)移指令,所有的有條件轉(zhuǎn)移指令都是短轉(zhuǎn)移,在對(duì)應(yīng)的機(jī)器碼中包含轉(zhuǎn)移的位移,而不是目的地址。對(duì)IP的修改范圍都為-128127。 指令格式:
22、jcxz 標(biāo)號(hào) (如果(cx)=0,則轉(zhuǎn)移到標(biāo)號(hào)處執(zhí)行。) 操作,9.7 jcxz指令,jcxz 標(biāo)號(hào) 指令操作: 當(dāng)(cx)=0時(shí),(IP)=(IP)+8位位移) 8位位移=“標(biāo)號(hào)”處的地址-jcxz指令后的第一個(gè)字節(jié)的地址; 8位位移的范圍為-128127,用補(bǔ)碼表示; 8位位移由編譯程序在編譯時(shí)算出。 當(dāng)(cx)=0時(shí),什么也不做(程序向下執(zhí)行)。,9.7 jcxz指令,我們從 jcxz的功能中可以看出,指令“jcxz 標(biāo)號(hào)”的功能相當(dāng)于: if(cx)=0)jmp short 標(biāo)號(hào); (這種用C語(yǔ)言和匯編語(yǔ)言進(jìn)行的綜合描述,或許能使你對(duì)有條件指令理解得更加清楚。),特別提示,檢測(cè)點(diǎn)9.
23、2(p171) 沒(méi)有完成此檢測(cè)點(diǎn),請(qǐng)不要向下進(jìn)行。,9.8 loop指令,loop指令為循環(huán)指令,所有的循環(huán)指令都是短轉(zhuǎn)移,在對(duì)應(yīng)的機(jī)器碼中包含轉(zhuǎn)移的位移,而不是目的地址。對(duì)IP的修改范圍都為-128127。 指令格式:loop 標(biāo)號(hào) (cx)=(cx)-1,如果(cx)0,轉(zhuǎn)移到標(biāo)號(hào)處執(zhí)行。 操作,9.8 loop指令,loop 標(biāo)號(hào) 指令操作: (1)(cx)=(cx)-1; (2)如果(cx)0,(IP)=(IP)+8位位移。 8位位移=“標(biāo)號(hào)”處的地址-loop指令后的第一個(gè)字節(jié)的地址; 8位位移的范圍為-128127,用補(bǔ)碼表示; 8位位移由編譯程序在編譯時(shí)算出。 當(dāng)(cx)=0,什么也不做(程序向下執(zhí)行)。,9.8 loop指令,我們從loop的功能中可以看出,指令“l(fā)oop 標(biāo)號(hào)”的功能相當(dāng)于: (cx)-; if(cx)0)jmpshort 標(biāo)號(hào),特別提示,檢測(cè)點(diǎn)9.3(p172) 沒(méi)有完成此檢測(cè)點(diǎn),請(qǐng)不要向下進(jìn)行。,9.9 根據(jù)位移進(jìn)行轉(zhuǎn)移的意義,前面我們講到: jmp short 標(biāo)號(hào) jmp near p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北省廊坊市三河市2025-2026學(xué)年八年級(jí)上學(xué)期期末生物學(xué)試題(含解析)
- 養(yǎng)老院醫(yī)療設(shè)施管理制度
- 養(yǎng)老院工作人員服務(wù)態(tài)度規(guī)范制度
- 企業(yè)設(shè)備維護(hù)保養(yǎng)制度
- 譯林版(2024)七年級(jí)上冊(cè)英語(yǔ)期末復(fù)習(xí):Unit 1~8 作文 專項(xiàng)練習(xí)題(含答案+范文)
- 家長(zhǎng)參與幼兒園管理工作的制度
- 老年糖尿病患者的認(rèn)知功能保護(hù)健康教育方案設(shè)計(jì)
- 2026年高考生物一輪復(fù)習(xí):選擇性必修1穩(wěn)態(tài)與調(diào)節(jié) 重點(diǎn)考點(diǎn)背誦提綱
- 光伏組件制造工崗前工作合規(guī)化考核試卷含答案
- 涂裝工10S考核試卷含答案
- 2025大模型安全白皮書
- 工程款糾紛專用!建設(shè)工程施工合同糾紛要素式起訴狀模板
- 地坪漆施工方案范本
- 2026湖北武漢長(zhǎng)江新區(qū)全域土地管理有限公司招聘3人筆試備考題庫(kù)及答案解析
- 2025年低壓電工理論考試1000題(附答案)
- 《質(zhì)量管理體系成熟度評(píng)價(jià)指南》
- 《人類行為與社會(huì)環(huán)境》課件
- 通用技術(shù)技術(shù)與設(shè)計(jì)2必修2高二下期全套教案
- 常見危重癥早期識(shí)別及處理原則()課件
- GB∕T 39402-2020 面向人機(jī)協(xié)作的工業(yè)機(jī)器人設(shè)計(jì)規(guī)范
- 國(guó)家開放大學(xué)《理工英語(yǔ)1》邊學(xué)邊練參考答案
評(píng)論
0/150
提交評(píng)論