版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基礎(chǔ)知識(shí)開始1.1匯編語(yǔ)言及特點(diǎn)1.1.1機(jī)器語(yǔ)言1.1.2匯編語(yǔ)言1.1.3高級(jí)語(yǔ)言1.1.4匯編語(yǔ)言的特點(diǎn)返回本章首頁(yè)1.1.1機(jī)器語(yǔ)言 計(jì)算機(jī)能夠直接識(shí)別的數(shù)據(jù)是由二進(jìn)制數(shù)0和1組成的代碼。機(jī)器指令就是用二進(jìn)制代碼組成的指令,一條機(jī)器指令控制計(jì)算機(jī)完成一個(gè)基本操作。 用機(jī)器語(yǔ)言編寫的程序是計(jì)算機(jī)惟一能夠直接識(shí)別并執(zhí)行的程序,而用其他語(yǔ)言編寫的程序必須經(jīng)過(guò)翻譯才能變換成機(jī)器語(yǔ)言程序,所以,機(jī)器語(yǔ)言程序被稱為目標(biāo)程序。返回本節(jié)1.1.2匯編語(yǔ)言 為了克服機(jī)器語(yǔ)言的缺點(diǎn),人們采用助記符表示機(jī)器指令的操作碼,用變量代替操作數(shù)的存放地址等,這樣就形成了匯編語(yǔ)言。所以匯編語(yǔ)言是一種用符號(hào)書寫的、基本操作與機(jī)器指令相對(duì)應(yīng)的、并遵循一定語(yǔ)法規(guī)則的計(jì)算機(jī)語(yǔ)言。 用匯編語(yǔ)言編寫的程序稱為匯編源程序。 匯編語(yǔ)言是一種符號(hào)語(yǔ)言,比機(jī)器語(yǔ)言容易理解和掌握,也容易調(diào)試和維護(hù)。但是,匯編語(yǔ)言源程序要翻譯成機(jī)器語(yǔ)言程序才可以由計(jì)算機(jī)執(zhí)行。這個(gè)翻譯的過(guò)程稱為“匯編”,這種把匯編源程序翻譯成目標(biāo)程序的語(yǔ)言加工程序稱為匯編程序。返回本節(jié)1.1.3高級(jí)語(yǔ)言
匯編語(yǔ)言雖然較機(jī)器語(yǔ)言直觀,但仍然煩瑣難懂。于是人們研制出了高級(jí)程序設(shè)計(jì)語(yǔ)言。高級(jí)程序設(shè)計(jì)語(yǔ)言接近于人類自然語(yǔ)言的語(yǔ)法習(xí)慣,與計(jì)算機(jī)硬件無(wú)關(guān),易被用戶掌握和使用。 目前廣泛應(yīng)用的高級(jí)語(yǔ)言有多種,如BASIC、FORTRAN、PASCAL、C、C++等等。返回本節(jié)1.1.4匯編語(yǔ)言的特點(diǎn)(1)匯編語(yǔ)言與處理器密切相關(guān)。(2)匯編語(yǔ)言程序效率高。(3)編寫匯編語(yǔ)言源程序比編寫高級(jí)語(yǔ)言源程序煩瑣。(4)調(diào)試匯編語(yǔ)言程序比調(diào)試高級(jí)語(yǔ)言程序困難。匯編語(yǔ)言的主要應(yīng)用場(chǎng)合:
(1)程序執(zhí)行占用較短的時(shí)間,或者占用較小存儲(chǔ)容量的場(chǎng)合。(2)程序與計(jì)算機(jī)硬件密切相關(guān),程序直接控制硬件的場(chǎng)合。(3)需提高大型軟件性能的場(chǎng)合。(4)沒(méi)有合適的高級(jí)語(yǔ)言的場(chǎng)合。返回本節(jié)1.2數(shù)據(jù)表示1.2.1數(shù)值數(shù)據(jù)1.2.2字符數(shù)據(jù)返回本章首頁(yè)1.2.1數(shù)值數(shù)據(jù)數(shù)值數(shù)據(jù)分為有符號(hào)數(shù)和無(wú)符號(hào)數(shù)。無(wú)符號(hào)數(shù)最高位表示數(shù)值,而有符號(hào)數(shù)最高位表示符號(hào)。有符號(hào)數(shù)有不同的編碼方式,常用的是補(bǔ)碼。1.原碼最高位表示符號(hào)(正數(shù)用0,負(fù)數(shù)用1),其他位表示數(shù)值位,稱為有符號(hào)數(shù)的原碼表示法?!纠?.1】有符號(hào)數(shù)的原碼表示。X=45=00101101B[X]原=00101101BX=-45,[X]原=10101101B原碼表示簡(jiǎn)單易懂,但若是兩個(gè)異號(hào)數(shù)相加(或兩個(gè)同號(hào)數(shù)相減),就要做減法。為了把減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算就引進(jìn)了反碼和補(bǔ)碼。2.反碼正數(shù)的反碼與原碼相同,符號(hào)位用0表示,數(shù)值位值不變。負(fù)數(shù)的反碼符號(hào)位用1表示,數(shù)值位為原碼數(shù)值位按位取反形成,即0變1、1變0。【例1.2】有符號(hào)數(shù)的反碼表示。X=45=00101101B,[X]反=00101101BX=-45,[X]反=11010010B3.補(bǔ)碼正數(shù)的補(bǔ)碼與原碼相同,即符號(hào)位用0表示,數(shù)值位值不變。負(fù)數(shù)的補(bǔ)碼為反碼加1形成?!纠?.3】有符號(hào)數(shù)的補(bǔ)碼表示。X=45=00101101B[X]補(bǔ)=00101101BX=-45[X]補(bǔ)=11010011B4.符號(hào)擴(kuò)展在數(shù)據(jù)處理時(shí),有時(shí)需要把8位二進(jìn)制數(shù)擴(kuò)展成16位二進(jìn)制數(shù),當(dāng)要擴(kuò)展的數(shù)是無(wú)符號(hào)數(shù)時(shí),可在最高位前擴(kuò)展8個(gè)0。如果要擴(kuò)展的數(shù)是補(bǔ)碼形式的有符號(hào)數(shù),那么,就要進(jìn)行符號(hào)位的擴(kuò)展,符號(hào)擴(kuò)展后,其結(jié)果仍是該數(shù)的補(bǔ)碼。【例1.4】符號(hào)擴(kuò)展表示。21的8位二進(jìn)制補(bǔ)碼為:00010101符號(hào)擴(kuò)展后21的16位二進(jìn)制補(bǔ)碼為:0000000000010101。00010101和0000000000010101都是21的補(bǔ)碼。5.數(shù)據(jù)的表示范圍和大小
n位二進(jìn)制數(shù)能夠表示的無(wú)符號(hào)整數(shù)的范圍是:0≤I≤2n-1n位二進(jìn)制數(shù)能夠表示的有符號(hào)整數(shù)的范圍是:-2(n-1)≤I≤+2(n-1)-16.十六進(jìn)制表示
由于二進(jìn)制數(shù)的基數(shù)太小,書寫和閱讀都不方便.而十六進(jìn)制的基數(shù)16=24,這樣二進(jìn)制數(shù)與十六進(jìn)制之間能方便地轉(zhuǎn)換。因此,習(xí)慣把二進(jìn)制數(shù)改寫成十六進(jìn)制數(shù),在匯編語(yǔ)言程序設(shè)計(jì)時(shí)尤其如此。在書寫時(shí),為了區(qū)別于十六進(jìn)制和二進(jìn)制數(shù),通常在十六進(jìn)制數(shù)后加字母H。返回本節(jié)1.2.2字符數(shù)據(jù)1.ASCII碼2.BCD碼1.ASCII碼標(biāo)準(zhǔn)ASCII碼用7位二進(jìn)制數(shù)編碼,共有128個(gè)。計(jì)算機(jī)存儲(chǔ)器基本單位為8位,ASCII碼的最高位通常為0,通信時(shí),最高位用作奇偶校驗(yàn)位。ASCII碼表中的前32個(gè)和最后1個(gè)編碼是不能顯示的控制字符,用于表示某種操作。ASCII碼表中20H后的94個(gè)編碼是可顯示和打印的字符,其中包括數(shù)碼0~9,英文字母,標(biāo)點(diǎn)符號(hào)等。2.BCD碼 雖然二進(jìn)制數(shù)實(shí)現(xiàn)容易,但不符合人們的使用習(xí)慣,且書寫閱讀不方便,所以在計(jì)算機(jī)輸入輸出時(shí)通常還是采用十進(jìn)制來(lái)表示數(shù),這就需要實(shí)現(xiàn)十進(jìn)制與二進(jìn)制間的轉(zhuǎn)換。為了轉(zhuǎn)換方便,常采用二進(jìn)制編碼的十進(jìn)制,簡(jiǎn)稱為BCD碼。 BCD碼就是用4位二進(jìn)制數(shù)表示1位十進(jìn)制整數(shù)。表示的方法有多種,常用的是8421BCD碼,它的表示規(guī)律如表1.1所示。表1.1十進(jìn)制數(shù)字的8421BCD碼十進(jìn)制數(shù)字8421BCD碼十進(jìn)制數(shù)字8421BCD碼00000501011000160110200107011130011810004010091001返回本節(jié)1.38086CPU和寄存器組
1.3.1Intel
8086CPU內(nèi)部結(jié)構(gòu)1.3.28086寄存器組1.3.3標(biāo)志寄存器返回本章首頁(yè)1.3.1Intel
8086CPU內(nèi)部結(jié)構(gòu)圖1.28086CPU內(nèi)部結(jié)構(gòu)圖1.28086CPU內(nèi)部結(jié)構(gòu)返回本節(jié)1.3.28086寄存器組圖1.38086CPU寄存器分組1.通用寄存器(1)數(shù)據(jù)寄存器數(shù)據(jù)寄存器共有4個(gè)寄存器AX、BX、CX、DX,用來(lái)保存操作數(shù)或運(yùn)算結(jié)果等信息。AX寄存器稱為累加器。使用頻度最高,用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等。BX寄存器稱為基址寄存器。常用于存放存儲(chǔ)器地址。CX寄存器稱為計(jì)數(shù)器。一般作為循環(huán)或串操作等指令中的隱含計(jì)數(shù)器。DX寄存器稱為數(shù)據(jù)寄存器。常用來(lái)存放雙字?jǐn)?shù)據(jù)的高16位,或存放外設(shè)端口地址。變址和指針寄存器包括SI、DI、SP、BP4個(gè)16位寄存器,主要用于存放某個(gè)存儲(chǔ)單元的偏移地址。SI是源變址寄存器,DI是目的變址寄存器,在字符串操作中,SI和DI都具有自動(dòng)增量或減量的功能。SP為堆棧指針寄存器,用于存放當(dāng)前堆棧段中棧頂?shù)钠频刂?;BP為基址指針寄存器,用于存放堆棧段中某一存儲(chǔ)單元的偏移地址。(2)變址和指針寄存器2.段寄存器8086CPU的4個(gè)16位的段寄存器分別稱為代碼段寄存器CS,數(shù)據(jù)段寄存器DS,堆棧段寄存器SS,附加數(shù)據(jù)段寄存器ES。段寄存器用來(lái)確定該段在內(nèi)存中的起始地址。代碼段用來(lái)存放程序的指令序列。CS存放代碼段的段首址,指令指針寄存器IP指示代碼段中指令的偏移地址。3.指令指針 8086CPU中的指令指針I(yè)P,它總是保存下一次將要從主存中取出指令的偏移地址,偏移地址的值為該指令到所在段段首址的字節(jié)距離。在目標(biāo)程序運(yùn)行時(shí),IP的內(nèi)容由微處理器硬件自動(dòng)設(shè)置,程序不能直接訪問(wèn)IP,但一些指令卻可改變IP的值,如轉(zhuǎn)移指令、子程序調(diào)用指令等。返回本節(jié)1.3.3標(biāo)志寄存器8086CPU中有一個(gè)很重要的16位標(biāo)志寄存器,它包含9個(gè)標(biāo)志位,主要用于保存一條指令執(zhí)行后,CPU所處狀態(tài)信息及運(yùn)算結(jié)果的特征。1.條件標(biāo)志2.狀態(tài)控制標(biāo)志1.條件標(biāo)志(1)進(jìn)位標(biāo)志CF(2)零標(biāo)志ZF(3)符號(hào)標(biāo)志SF(4)溢出標(biāo)志OF(5)奇偶標(biāo)志PF(6)輔助進(jìn)位標(biāo)志AF2.狀態(tài)控制標(biāo)志(1)方向標(biāo)志DF(2)中斷允許標(biāo)志IF(3)追蹤標(biāo)志TF返回本節(jié)1.4存儲(chǔ)器物理地址的形成1.4.1存儲(chǔ)器1.4.2存儲(chǔ)器單元的地址和內(nèi)容1.4.3物理地址的形成返回本章首頁(yè)1.4.1存儲(chǔ)器 存儲(chǔ)器是計(jì)算機(jī)的記憶部件,用來(lái)存放程序和數(shù)據(jù)。按所在的位置,存儲(chǔ)器可以分成主存儲(chǔ)器和輔助存儲(chǔ)器。 主存儲(chǔ)器存放當(dāng)前正在執(zhí)行的程序和使用的數(shù)據(jù),CPU可以直接存取,它由半導(dǎo)體存儲(chǔ)器芯片構(gòu)成,其成本高,容量小,但速度快。 輔助存儲(chǔ)器可用來(lái)長(zhǎng)期保存大量程序和數(shù)據(jù),CPU需要通過(guò)I/O接口訪問(wèn),它由磁盤或光盤構(gòu)成,其成本低,容量大,但速度較慢。返回本節(jié)1.4.2存儲(chǔ)器單元的地址和內(nèi)容存儲(chǔ)單元地址:8086系統(tǒng)中,為了標(biāo)識(shí)和存取每一個(gè)存儲(chǔ)單元,給每個(gè)存儲(chǔ)單元規(guī)定一個(gè)編號(hào),這就是存儲(chǔ)單元地址。存儲(chǔ)單元的內(nèi)容:一個(gè)存儲(chǔ)單元中存放的信息稱為該存儲(chǔ)單元的內(nèi)容。圖1.4表明了存儲(chǔ)器中部分存儲(chǔ)單元存放信息情況。從圖1.4可看到,地址為34560H的字節(jié)的存儲(chǔ)單元中的內(nèi)容是34H,而地址為34561H的字節(jié)存儲(chǔ)單元中的內(nèi)容是12H。返回本節(jié)1.4.3物理地址的形成 8086CPU的地址線是20位的,這樣最大可尋址空間應(yīng)為220=1MB,其物理地址范圍從00000H~FFFFFH。而8086CPU寄存器都是16位的。那么,這1MB空間如何用16位寄存器表達(dá)呢? 根據(jù)要求可把1M字節(jié)地址空間劃成若干邏輯段。每個(gè)邏輯段必須滿足兩個(gè)條件:一是邏輯段的起始地址(簡(jiǎn)稱段首址)必須是16的倍數(shù);二是邏輯段的最大長(zhǎng)度為64K。按照這兩個(gè)條件,1M字節(jié)地址空間最多可劃分成64K個(gè)邏輯段,最少也要?jiǎng)澐殖?6個(gè)邏輯段。邏輯段與邏輯段可以相連,也可以不連,還可以重疊?!纠?.5】各獨(dú)立段的分配情況示例。設(shè)CS=B000H、DS=1CDEH、SS=4200H、ES=0150H,它們分別為代碼段、數(shù)據(jù)段、堆棧段和附加段的段首址。自每個(gè)段首址開始,各段均占64KB的范圍,各段之間互不重疊。如圖1.5所示。【例1.6】各段相互重疊情況示例。設(shè)CS=0200H、DS=0400H、SS=0480H,這樣代碼段、數(shù)據(jù)段和堆棧段的物理首地址分別為02000H、04000H和04800H。其中代碼段占8KB地址空間,數(shù)據(jù)段占2KB,堆棧段占256B,SP=0100H。如圖1.6所示。8086CPU的指令系統(tǒng)的基本指令包括數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、位操作類指令、串操作類指令、控制轉(zhuǎn)移類指令、處理機(jī)控制類指令。后幾節(jié)將分別介紹這些指令的語(yǔ)句格式和功能。8086CPU的指令的共同的規(guī)律l
大多數(shù)數(shù)據(jù)傳送類指令、算術(shù)運(yùn)算類指令、位操作類指令及串操作類指令,其雙操作數(shù)指令有相同的語(yǔ)句格式和操作規(guī)定。
語(yǔ)句格式:[標(biāo)號(hào):]操作符
OPD,OPS[;注釋]l
算術(shù)運(yùn)算和位操作類指令的部分單操作數(shù)指令有相同的語(yǔ)句格式和操作規(guī)定。語(yǔ)句格式:[標(biāo)號(hào):]操作符
OPD[;注釋]2.1尋址方式2.1.1寄存器尋址2.1.2寄存器間接尋址2.1.3變址尋址2.1.4基址加變址尋址2.1.5立即尋址2.1.6直接尋址2.1.7跨段問(wèn)題返回本章首頁(yè)2.1.1寄存器尋址寄存器尋址方式的操作數(shù)在指令指明的寄存器中。匯編格式:R其中R表示寄存器名。功能:操作數(shù)直接存放在寄存器R中。圖形表示:
R
指令→操作數(shù)【例2.1】下列程序執(zhí)行后,(AX)=?,(BX)=?MOVAX,1234HMOVBX,5678HADDAX,BX該程序中MOV指令為數(shù)據(jù)傳送指令操作符,ADD指令為加法指令操作符,三條指令皆為雙操作數(shù)指令。第一、二條指令A(yù)X、BX皆為目的操作數(shù)地址,為寄存器尋址方式。第三條指令中,AX為目的操作數(shù)地址,BX為源操作數(shù)地址。源地址和目的地址皆為寄存器尋址方式。圖形表示:執(zhí)行:1234H→AX5678H→BX
(AX)+(BX)→AX執(zhí)行后:(AX)=68ACH,(BX)=5678H返回本節(jié)2.1.2寄存器間接尋址寄存器間接尋址方式中,寄存器的內(nèi)容為操作數(shù)的偏移地址EA,操作數(shù)在存儲(chǔ)器中。匯編格式:[R]功能:操作數(shù)存放在存儲(chǔ)器,寄存器R存放操作數(shù)的偏移地址EA。偏移地址EA計(jì)算方法如下:EA=[SI] SI作間址寄存器。[DI] DI作間址寄存器。[BX] BX作間址寄存器。[BP] BP作間址寄存器。執(zhí)行指令:MOVAX,[BP]執(zhí)行后:(AX)=?,(BP)=?,(SS)=?,(20030H)=?圖形表示如下:
【例2.2】寄存器和存儲(chǔ)器內(nèi)容分別為:(AX)=0,(BP)=0030H,(SS)=2000H,(20030H)=1234H返回本節(jié)2.1.3變址尋址變址尋址方式操作數(shù)的偏移地址EA為寄存器的內(nèi)容加位移量,操作數(shù)在存儲(chǔ)器中。匯編格式:X[R](X表示位移量,是8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,寄存器R的內(nèi)容加位移量X為操作數(shù)的偏移地址EA。圖形表示如下:偏移地址EA計(jì)算方法如下:【例2.3】設(shè)執(zhí)行前:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0050H執(zhí)行指令:ADD6[BX],AX執(zhí)行后:(AX)=?,(BX)=?,(DS)=?,(20036H)=?圖形表示如下:
執(zhí)行:(20036H)+(AX)→20036H執(zhí)行后:(AX)=0040H,(BX)=0030H,(DS)=2000H,(20036H)=0090H。返回本節(jié)2.1.4基址加變址尋址基址加變址尋址方式中,操作數(shù)的偏移地址EA是指令中基址寄存器內(nèi)容、變址寄存器內(nèi)容、位移量X三項(xiàng)之和,操作數(shù)在存儲(chǔ)器中。匯編格式:X[BR+IR]功能:操作數(shù)存放在存儲(chǔ)器,BR的內(nèi)容加IR的內(nèi)容加位移量X是操作數(shù)的偏移地址EA。圖形表示:操作數(shù)偏移地址EA計(jì)算方法如下返回本節(jié)2.1.5立即尋址立即尋址方式中,指令操作碼和操作數(shù)都在存儲(chǔ)器代碼段中。匯編格式:n(n為立即操作數(shù),是用8位或16位二進(jìn)制補(bǔ)碼表示的有符號(hào)數(shù))功能:操作數(shù)存放在存儲(chǔ)器,指令下一單元的內(nèi)容為立即操作數(shù)n。圖形表示:【例2.5】【例2.5】MOVAX,10執(zhí)行后(AX)=?該例中源操作數(shù)為立即尋址方式,立即數(shù)為10,存放在指令的下一單元。圖形表示:執(zhí)行:10→AX執(zhí)行后:(AX)=000AH
返回本節(jié)2.1.6直接尋址匯編格式:①含有變量的地址表達(dá)式。②段寄存器名:[EA]。功能:指令下一字單元的內(nèi)容是操作數(shù)的偏移地址EA。圖形表示:【例2.6】【例2.6】寄存器和存儲(chǔ)器內(nèi)容為:(AX)=1212H,BUF為數(shù)據(jù)段定義的變量,其偏移地址是2000H,(DS)=3000H,(32000H)=4545H。執(zhí)行指令:MOVAX,BUF執(zhí)行后:(AX)=?圖形表示:執(zhí)行:(32000H)→AX執(zhí)行后:(AX)=4545H返回本節(jié)2.1.7跨段問(wèn)題按前述規(guī)定:若選用BP作間址基址寄存器、變址寄存器或基址寄存器,則操作數(shù)在堆棧段,操作數(shù)的物理地址PA由堆棧段寄存器SS的內(nèi)容左移4位與偏移地址EA相加后形成;否則,操作數(shù)在數(shù)據(jù)段,操作數(shù)的物理地址PA由數(shù)據(jù)段寄存器DS的內(nèi)容左移4位與偏移EA相加后形成。該規(guī)定為系統(tǒng)默認(rèn)狀態(tài)。當(dāng)要否定默認(rèn)狀態(tài),到非約定段尋找操作數(shù)時(shí),必須用跨段前綴指明操作數(shù)的段寄存器名。匯編格式:段寄存器名:操作數(shù)地址。功能:段寄存器名指明操作數(shù)屬哪個(gè)段。【例2.7】跨段前綴示例。MOV AX,DS:[BP]MOV CX,SS:[SI]該例中,DS:,SS:均為跨段前綴,此時(shí)默認(rèn)狀態(tài)無(wú)效,操作數(shù)的物理地址PA由段寄存器內(nèi)容左移4位加偏移EA形成。上述2條指令的源操作數(shù)物理地址分別為:PA1=(DS)左移4位+[BP]PA2=(SS)左移4位+[SI返回本節(jié)2.2數(shù)據(jù)傳送類指令2.2.1通用數(shù)據(jù)傳送指令2.2.2堆棧操作指令2.2.3標(biāo)志寄存器傳送指令2.2.4地址傳送指令2.2.5輸入輸出指令返回本章首頁(yè)2.2.1通用數(shù)據(jù)傳送指令1.傳送指令MOV2.?dāng)?shù)據(jù)交換指令XCHG3.查表轉(zhuǎn)換指令
XLAT1.傳送指令MOV語(yǔ)句格式:MOVOPD,OPS功能:將源操作數(shù)傳送入目的地址,源地址內(nèi)容不變。即(OPS)→OPD。下圖2.1描述了MOV指令在傳送數(shù)據(jù)時(shí)允許傳送的路徑及類型。圖2.1MOV指令所允許的數(shù)據(jù)傳送路徑及類型【例2.8】存儲(chǔ)器與寄存器間數(shù)據(jù)傳送。MOVAX,BUF;BUF是變量,源操作數(shù)為直接尋址MOVBH,[DI] ;源操作數(shù)為寄存器間接尋址MOVDI,ES:3[SI];源操作數(shù)為變址尋址,使用跨段前綴MOVBP,3[BX+SI] ;源操作數(shù)為基址加變址尋址MOVBUFA,DL ;BUFA是一字節(jié)變量MOV[BP],AX ;使用SS段寄存器MOVDS:[BP],DL ;使用跨段前綴MOVBUF,DS ;BUF是個(gè)字變量MOVES,BUF2.?dāng)?shù)據(jù)交換指令XCHG語(yǔ)句格式:XCHGOPD,OPS功能:將源地址與目的地址中的內(nèi)容互換。即(OPD)→OPS,(OPS)→OPD。【例2.9】寄存器與存儲(chǔ)器之間數(shù)據(jù)交換。MOV AX,5678H ;(AX)=5678HMOV BX,0FFFFH ;(BX)=0FFFFHXCHG AX,BX ;(AX)=0FFFFH,(BX)=5678H3.查表轉(zhuǎn)換指令XLA語(yǔ)句格式:XLATOPS或XLAT功能:將(BX)為首址(AL)為位移量的字節(jié)存儲(chǔ)單元中的數(shù)據(jù)送AL寄存器。即([BX+AL])→AL。返回本節(jié)2.2.2堆棧操作指令1.進(jìn)棧指令PUSH2.出棧指令POP1.進(jìn)棧指令PUSH語(yǔ)句格式:PUSHOPS功能:將寄存器、段寄存器或存儲(chǔ)器中的一個(gè)字?jǐn)?shù)據(jù)壓入堆棧,堆棧指針減2。即:①(SP)-1→SP(OPS)15~8→[SP]②(SP)-1→SP (OPS)7~0→[SP]2.出棧指令POP語(yǔ)句格式:POPOPD功能:將棧頂元素彈出送至某一寄存器、段寄存器(除CS外)或存儲(chǔ)器,堆棧指針加2。從POP指令功能可看出,該指令為PUSH指令的逆過(guò)程。即:①([SP])→(OPD)7~0 (SP)+1→SP②([SP])→(OPD)15~8 (SP)+1→SP返回本節(jié)2.2.3標(biāo)志寄存器傳送指令1.標(biāo)志送AH指令LAHF2.AH送標(biāo)志指令SAHF3.標(biāo)志寄存器進(jìn)棧指令PUSHF4.標(biāo)志寄存器出棧指令POPF1.標(biāo)志送AH指令LAHF語(yǔ)句格式:LAHF功能:將標(biāo)志寄存器的低8位送入AH寄存器。即(FLAGS)7-0→AH。該指令的執(zhí)行對(duì)標(biāo)志位無(wú)影響。【例2.13】標(biāo)志寄存器傳送。執(zhí)行前:(FLAGS)=0485H,(AX)=0FFFFH執(zhí)行指令:LAHF2.AH送標(biāo)志指令SAHF語(yǔ)句格式:SAHF功能:將AH的內(nèi)容送入標(biāo)志寄存器的低8位,高8位不變。即(AH)→FLAGS7-0.。從該指令功能可看出,SAHF為L(zhǎng)AHF的逆過(guò)程。3.標(biāo)志寄存器進(jìn)棧指令PUSHF語(yǔ)句格式:PUSHF功能:將標(biāo)志寄存器的內(nèi)容壓入堆棧。即(FLAGS)→↓(SP)。4.標(biāo)志寄存器出棧指令POPF功能:將棧頂內(nèi)容彈出送入標(biāo)志寄存器中。即↑(SP)→FLAGS。POPF指令與PUSHF指令互為逆過(guò)程?!纠?.14】將標(biāo)志寄存器的單步標(biāo)志TF置位。PUSHF ;(FLSGS)→↓(SP)POPAX ;(SP)→AXORAX,0100H ;設(shè)置D8=TF=1PUSHAX ;(AX)→↓(SP)POPF;(SP)→↓FLAGS,即(AX)→↓FLAGS返回本節(jié)2.2.4地址傳送指令1.傳送偏移地址指令LEA2.傳送偏移地址及數(shù)據(jù)段首址指令LDS3.傳送偏移地址及附加數(shù)據(jù)段指令LES1.傳送偏移地址指令LEA語(yǔ)句格式:LEAOPD,OPS功能:主存按源地址的尋址方式計(jì)算偏移地址,將偏移地址送入指定寄存器?!纠?.15】主存偏移地址的獲取。MOVBX,0100H ;(BX)=0100HMOVSI,0210H ;(SI)=0210HLEABX,1234[BX+SI] ;(BX)=1544H2.傳送偏移地址及數(shù)據(jù)段首址指令LDS語(yǔ)句格式:LDSOPD,OPS功能:將主存中指定字單元數(shù)據(jù)送入指定存儲(chǔ)器,下一字單元數(shù)據(jù)送DS寄存器。3.傳送偏移地址及附加數(shù)據(jù)段指令LES語(yǔ)句格式:LESOPD,OPS功能:將主存某字單元內(nèi)容送指定寄存器。即(OPS)→OPD,(OPS+2)→ES。返回本節(jié)2.2.5輸入輸出指令1.輸入指令I(lǐng)N2.輸出指令OUT1.輸入指令I(lǐng)N輸入指令用來(lái)從指定的外設(shè)寄存器取信息送入累加器。它有四種形式:(1)語(yǔ)句格式:IN AL,PORT
功能:(PORT) →AL(2)語(yǔ)句格式:IN AX,PORT
功能:(PORT) →AX(3)語(yǔ)句格式:IN AL,DX
功能:([DX]) →AL(4)語(yǔ)句格式:IN AX,DX
功能:([DX]) →AL2.輸出指令OUT輸出指令用來(lái)把累加器的內(nèi)容送往指定的外設(shè)存儲(chǔ)器,它有四種形式:(1)語(yǔ)句格式:OUT PORT,AL
功能:(AL)
→PORT(2)語(yǔ)句格式:OUT PORT,AX
功能:(AX)
→PORT(3)語(yǔ)句格式:OUT DX,AL
功能:(AL)
→[DX](4)語(yǔ)句格式:OUT DX,AX
功能:(AX)
→[DX]返回本節(jié)2.3算術(shù)運(yùn)算類指令2.3.1加法指令2.3.2減運(yùn)算指令2.3.3乘運(yùn)算指令2.3.4除運(yùn)算指令2.3.5符號(hào)擴(kuò)展指令2.3.6十進(jìn)制調(diào)整指令返回本章首頁(yè)2.3.1加法指令1.加1指令
INC2.加指令A(yù)DD3.帶進(jìn)位加指令A(yù)DC1.加1指令I(lǐng)NC語(yǔ)句格式:INCOPD功能:將目的操作數(shù)加1,結(jié)果送目的地址。即(OPD)+1→OPD。INC指令是一個(gè)單操作數(shù)指令,操作數(shù)可以是寄存器或存儲(chǔ)器操作數(shù)。如:INCBX,即(BX)+1→BX。加1指令可用于對(duì)計(jì)數(shù)器和地址指針進(jìn)行調(diào)整。2.加指令A(yù)DD語(yǔ)句格式:ADDOPD,OPS功能:將目的操作數(shù)與源操作數(shù)相加,結(jié)果存入目的地址中,源地址的內(nèi)容不改變。即(OPD)+(OPS)→OPD。3.帶進(jìn)位加指令A(yù)DC語(yǔ)句格式:ADCOPD,OPS功能:將目的操作數(shù)加源操作數(shù)再加低位進(jìn)位,結(jié)果送目的地址。即(OPD)+(OPS)+CF→OPD?!纠?.20】無(wú)符號(hào)雙字加法運(yùn)算。MOV AX,4652H ;(AX)=4652HADD AX,0F0F0H ;(AX)=3742H,CF=1MOV DX,0234H ;(DX)=0234HADC DX,0F0F0H ;(DX)=0F325H,CF=0返回本節(jié)2.3.2減運(yùn)算指令1.減1指令DEC2.減指令SUB3.求補(bǔ)指令NEG4.帶借位減指令
SBB5.比較指令
CMP1.減1指令DEC語(yǔ)句格式:DECOPD功能:將目的操作數(shù)減1,結(jié)果送目的地址。即(OPD)-1→OPD。DEC指令是一個(gè)單操作數(shù)指令,操作數(shù)可以是寄存器或存儲(chǔ)器操作數(shù)。如:DECCX。即(CX)-1→CX。減1指令DEC也一般用于對(duì)計(jì)數(shù)器和地址指針的調(diào)整。2.減指令SUB語(yǔ)句格式:SUBOPD,OPS功能:目的操作數(shù)減源操作數(shù),結(jié)果存于目的地址,源地址內(nèi)容不變。即(OPD)-(OPS)→OPD【例2.21】減法運(yùn)算。MOV AX,5678H ;(AX)=5678HSUB AX,1234H ;(AX)=4444HMOV BX,3354H ;(BX)=3354HSUB BX,3340H ;(BX)=0014H3.求補(bǔ)指令NEG語(yǔ)句格式:NEGOPD功能:將目的操作數(shù)的每一位求反(包括符號(hào)位)后加1,結(jié)果送目的地址。即(OPD)+1→OPD。【例2.22】求補(bǔ)運(yùn)算。MOV AX,0FF64HNEG AL ;(AX)=0FF9CHSUB AL,9DH ;(AX)=0FFFFHNEG AX ;(AX)=0001HDEC AL ;(AX)=0000HNEG AX ;(AX)=0000H4.帶借位減指令SBB語(yǔ)句格式:SBBOPD,OPS功能:目的操作數(shù)減源操作數(shù)再減低位借位CF,結(jié)果送目的地址。即(OPD)―(OPS)―CF→OPD5.比較指令CMP語(yǔ)句格式:CMPOPD,OPS功能:目的操作數(shù)減源操作數(shù),結(jié)果只影響標(biāo)志位,不送入目的地址。即(OPD)-(OPS)?!纠?.24】比較AL的內(nèi)容數(shù)值大小。CMP AL,50 ;(AL)-50JB BELOW ;(AL)<50,轉(zhuǎn)到BELOW處執(zhí)行SUB AL,50 ;(AL)>=50,(AL)-50→ALINC AH ;(AH)+1→AHBELOW: …返回本節(jié)2.3.3乘運(yùn)算指令1.無(wú)符號(hào)數(shù)乘法指令MUL2.有符號(hào)乘指令I(lǐng)MUL1.無(wú)符號(hào)數(shù)乘法指令MUL語(yǔ)句格式:MULOPS功能:若是字節(jié)數(shù)據(jù)相乘,(AL)與OPS相乘得到字?jǐn)?shù)據(jù)存入AX中;若是字?jǐn)?shù)據(jù)相乘,則(AX)與OPS相乘得到雙字?jǐn)?shù)據(jù),高字存入DX、低字存入AX中。即字節(jié)乘法:(AL)*(OPS)→AX,字乘法:(AX)*(OPS)→DX,AX【例2.25】無(wú)符號(hào)數(shù)0A3H與11H相乘。MOV AL,0A3H ;(AL)=0A3HMOV BL,11H ;(BL)=11HMUL BL ;(AX)=0AD3H2.有符號(hào)乘指令I(lǐng)MUL語(yǔ)句格式:IMULOPS功能:字節(jié)乘法:(AL)*(OPS)→AX,字乘法:(AX)*(OPS)→DX、AX。IMUL指令除計(jì)算對(duì)象是帶符號(hào)二進(jìn)制數(shù)外,其他都與MUL一樣,但計(jì)算結(jié)果不同?!纠?.26】有符號(hào)數(shù)0B4H與11H相乘。MOV AL,0B4H ;(AL)=B4HMOV BL,11H ;(BL)=11HIMUL BL ;(AX)=0FAF4H返回本節(jié)2.3.4除運(yùn)算指令1.無(wú)符號(hào)除指令DIV2.有符號(hào)除指令I(lǐng)DIV1.無(wú)符號(hào)除指令DIV語(yǔ)句格式:DIVOPS功能:字節(jié)除法:(AX)/(OPS)→AL(商)、AH(余數(shù))字除法:(DX、AX)/(OPS)→AX(商)、DX(余數(shù))【例2.27】寫出實(shí)現(xiàn)無(wú)符號(hào)數(shù)0400H/0B4H運(yùn)算的程序段。MOV AX,0400H ;(AX)=0400HMOV BL,0B4H ;(BL)=0B4HDIV BL ;商(AL)=05H,余數(shù)(AH)=7CH
2.有符號(hào)除指令I(lǐng)DIV語(yǔ)句格式:IDIVOPS功能:字節(jié)除法:(AX)/(OPS)→AL(商)、AH(余數(shù))字除法:(DX,AX)/(OPS)→AX(商)、DX(余數(shù))除法指令DIV和IDIV雖然對(duì)標(biāo)志的影響未定義,但可產(chǎn)生溢出。【例2.28】寫出實(shí)現(xiàn)有符號(hào)數(shù)0400H/0B4H運(yùn)算的程序段。MOV AX,0400H ;(AX)=0400HMOV BX,0B4H ;(BX)=0B4HIDIV BX ;(AL)=0F3H,(AH)=24H返回本節(jié)2.3.5符號(hào)擴(kuò)展指令1.字節(jié)轉(zhuǎn)換成字指令CBW2.將字轉(zhuǎn)換成雙字指令CWD1.字節(jié)轉(zhuǎn)換成字指令CBW語(yǔ)句格式:CBW功能:將AL中的符號(hào)位數(shù)據(jù)擴(kuò)展至AH。【例2.29】將字節(jié)數(shù)據(jù)擴(kuò)展成字?jǐn)?shù)據(jù)。MOV AL,0A5H ;(AL)=0A5HCBW ;(AX)=0FFA5HADD AL,70H ;(AL)=25HCBW ;(AX)=0025H2.將字轉(zhuǎn)換成雙字指令CWD語(yǔ)句格式:CWD功能:將AX中的符號(hào)位數(shù)據(jù)擴(kuò)展至DX?!纠?.30】將字?jǐn)?shù)據(jù)擴(kuò)展成雙字?jǐn)?shù)據(jù)。MOV DX,0 ;(DX)=0MOV AX,0FFABH ;(AX)=0FFABHCWD ;(DX)=0FFFFH(AX)=0FFABH返回本節(jié)2.3.6十進(jìn)制調(diào)整指令1.壓縮BCD碼調(diào)整指令2.非壓縮BCD碼調(diào)整指令(1)加法的十進(jìn)制調(diào)整指令DAA語(yǔ)句格式:DAA功能:如果AL寄存器中低4位大于9或輔助進(jìn)位(AF)=1,則(AL)=(AL)+6且(AF)=1;如果(AL)>=0A0H或(CF)=1,則(AL)=(AL)+60H且(CF)=1。同時(shí),SF、ZF、PF均有影響?!纠?.31】壓縮BCD碼的加法運(yùn)算。MOVAL,68H ;(AL)=68H,表示壓縮BCD碼68MOVBL,28H ;(BL)=28H,表示壓縮BCD碼28ADDAL,BL ;二進(jìn)制加法:(AL)=68H+28H=90HDAA ;十進(jìn)制調(diào)整:(AL)=96H;實(shí)現(xiàn)壓縮BCD碼加法:68+28=96(2)減法的十進(jìn)制調(diào)整指令DAS語(yǔ)句格式:DAS功能:如果(AF)=1或AL寄存器中低4位大于9,則(AL)=(AL)-6且(AF)=1;如果(AL)>=0A0H或(CF)=1,則(AL)=(AL)-60H且(CF)=1。同時(shí)SF、ZF、PF均受影響?!纠?.32】壓縮BCD碼的減法運(yùn)算。MOV AL,68H;(AL)=68H,表示壓縮BCD碼68MOV BL,28H;(BL)=28H,表示壓縮BCD碼28SUB AL,BL ;二進(jìn)制減法:(AL)=68H-28H=40HDAS ;十進(jìn)制調(diào)整:(AL)=40H ;實(shí)現(xiàn)壓縮BCD碼減法:68-28=40
2.非壓縮BCD碼調(diào)整指令(1)加法的非壓縮BCD碼調(diào)整指令A(yù)AA(2)減法的非壓縮BCD碼調(diào)整指令A(yù)AS(3)乘法的非壓縮BCD碼調(diào)整指令A(yù)AM(4)除法的非壓縮BCD碼調(diào)整指令A(yù)AD(1)加法的非壓縮BCD碼調(diào)整指令A(yù)AA語(yǔ)句格式:AAA功能:如果AL的低4位大于9或(AF)=1,則:(AL)=(AL)+6(AH)=(AH)+1(AF)=(CF)=1
且AL高4位清零。否則:(CF)=(AF)=0AL高4位清零。(2)減法的非壓縮BCD碼調(diào)整指令A(yù)AS語(yǔ)句格式:AAS功能:如果AL的低4位大于9或(AF)=1,則:(AL)=(AL)-6(AH)=(AH)-1(AF)=(CF)=1AL高4位清零。否則:(CF)=(AF)=0AL高4位清零。其他標(biāo)志位OF、PF、SF、ZF不確定。(3)乘法的非壓縮BCD碼調(diào)整指令A(yù)AM語(yǔ)句格式:AAM功能:被調(diào)整的乘積在AX中,對(duì)AL按10取模,則:(AL)/0AH→AH(商):AL(余數(shù))其中AH為商,AL為余數(shù),標(biāo)志位AF、CF、OF、PF、SF、ZF受影響。(4)除法的非壓縮BCD碼調(diào)整指令A(yù)AD語(yǔ)句格式:AAD功能:除法運(yùn)算前,先調(diào)整被除數(shù)AX內(nèi)容,使:(AL)=(AL)+(AH)*0AH(AH)=0即把非壓縮型十進(jìn)制數(shù)變成二進(jìn)制數(shù)。返回本節(jié)2.4位操作類指令2.4.1邏輯運(yùn)算指令2.4.2移位指令
返回本章首頁(yè)2.4.1邏輯運(yùn)算指令1.求反指令NOT2.邏輯乘指令A(yù)ND3.測(cè)試指令TEST4.邏輯加指令OR5.按位加指令XOR1.求反指令NOT語(yǔ)句格式:NOTOPD功能:將目的地址中的內(nèi)容逐位取反后送入目的地址。即(OPD)→OPD【例2.37】邏輯非運(yùn)算。MOV AX,878AH ;(AX)=878AHNOT AX, ;(AX)=7875H2.邏輯乘指令A(yù)ND語(yǔ)句格式:ANDOPD,OPS 功能:將目的操作數(shù)和源操作數(shù)進(jìn)行邏輯乘運(yùn)算,結(jié)果存目的地址。即(OPD)∧(OPS)→OPD。該指令用于清除目的操作數(shù)中與源操作數(shù)置0的對(duì)應(yīng)位。說(shuō)明:邏輯乘的運(yùn)算法則為:1∧1=1,1∧0=0,0∧1=0,0∧0=0【例2.38】將AL中第3位和第7位清零。MOV AL,0FFHAND AL,77H3.測(cè)試指令TEST語(yǔ)句格式:TESTOPD,OPS功能:源地址和目的地址的內(nèi)容執(zhí)行按位的邏輯乘運(yùn)算,結(jié)果不送入目的地址。即(OPD)∧(OPS)?!纠?.39】測(cè)試AX中的第12位是否為0,不為0則轉(zhuǎn)L。TEST AX,1000HJNE L4.邏輯加指令OR語(yǔ)句格式:OROPD,OPS功能:將目的操作數(shù)和源操作數(shù)進(jìn)行邏輯加運(yùn)算,結(jié)果存目的地址。即(OPD)∨(OPS)→OPD。說(shuō)明:邏輯加的運(yùn)算法則為:1∨1=1,1∨0=1,0∨1=1,0∨0=0?!纠?.40】將AL寄存器中第3位和第7位置1。MOV AL,0OR AL,88H5.按位加指令XOR語(yǔ)句格式:XOROPD,OPS功能:目的操作數(shù)與源操作數(shù)做按位加運(yùn)算,結(jié)果送入目的地址。即(OPD)⊕(OPS)→OPD。說(shuō)明:按位加的運(yùn)算法則為;1⊕1=0,1⊕0=1,0⊕1=1,0⊕0=0?!纠?.41】按位加運(yùn)算。MOV AL,45H ;(AL)=45HXOR AL,31H ;(AL)=74H返回本節(jié)2.4.2移位指令移位指令包括算術(shù)移位指令、邏輯移位指令和循環(huán)移位指令,分別進(jìn)行左移和右移操作。這些指令均有統(tǒng)一的語(yǔ)句格式:[標(biāo)號(hào):]操作符OPD,1或[標(biāo)號(hào):]操作符OPD,CL其功能為將目的操作數(shù)的所有位按操作符規(guī)定的方式移動(dòng)1位或按寄存器CL規(guī)定的次數(shù)(0~255)移動(dòng),結(jié)果送入目的地址。目的操作數(shù)是8位(或16位)的寄存器數(shù)據(jù)或存儲(chǔ)器數(shù)據(jù)。1.算術(shù)左移和邏輯左移指令SAL(SHL)語(yǔ)句格式:SALOPD,1或SHLOPD,1SALOPD,CL或SHLOPD,CL功能:將(OPD)向左移動(dòng)CL指定的次數(shù),最低位補(bǔ)入相應(yīng)的0,CF的內(nèi)容為最后移入位的值。2.算術(shù)右移指令SAR語(yǔ)句格式:SAROPD,1或SAROPD,CLCF功能:將(OPD)向右移動(dòng)CL指定的次數(shù)且最高位保持不變;CF的內(nèi)容為最后移入位的值?!纠?.43】算術(shù)右移運(yùn)算。MOV BH,0F4H ;(BH)=0F4HMOV CL,2 ;(CL)=2SAR BH,CL ;(BH)=0FDH,(CF)=0該例語(yǔ)句“SARBH,CL”實(shí)際上完成了(BH)/4→BH的運(yùn)算,所以,用SAR指令可以實(shí)現(xiàn)對(duì)有符號(hào)數(shù)除2n的運(yùn)算(n為移位次數(shù))。3.邏輯右移指令SHR語(yǔ)句格式:SHROPD,1或SHROPD,CL功能:將(OPD)向右移動(dòng)CL規(guī)定的次數(shù),最高位補(bǔ)入相應(yīng)個(gè)數(shù)的0,CF的內(nèi)容為最后移入位的值。4.循環(huán)左移指令ROL語(yǔ)句格式:ROLOPD,1或ROLLPD,CL功能:將目的操作數(shù)的最高位與最低位連成一個(gè)環(huán),將環(huán)中的所有位一起向左移動(dòng)CL規(guī)定的次數(shù)。CF的內(nèi)容為最后移入位的值。5.循環(huán)右移指令ROR語(yǔ)句格式:ROROPD,1或ROROPD,CL功能:將目的操作數(shù)的最高位與最低位連成一個(gè)環(huán),將環(huán)中的所有位一起向右移動(dòng)CL規(guī)定的次數(shù),CF的內(nèi)容為最后移入位的值。6.帶進(jìn)位的循環(huán)左移指令RCL語(yǔ)句格式:RCLOPD,1或RCLOPD,CL功能:將目的操作數(shù)連同CF標(biāo)志一起向左循環(huán)移動(dòng)CL規(guī)定的次數(shù)。7.帶進(jìn)位的循環(huán)右移指令RCR語(yǔ)句格式:RCROPD,1或RCROD,CL功能:將目的操作數(shù)連同CF標(biāo)志一起向右循環(huán)移動(dòng)所規(guī)定的次數(shù)。返回本節(jié)2.5串操作類指令串操作指令:數(shù)據(jù)傳送類指令每次只能傳送一個(gè)數(shù)據(jù),若要傳送大批數(shù)據(jù)就需要重復(fù)編程,這樣就浪費(fèi)了大量的時(shí)間和空間。為此8086提供了一組處理主存中連續(xù)存放數(shù)據(jù)串的指令,這就是串操作指令。
返回本章首頁(yè)圖2.3流程圖總結(jié)了串操作的過(guò)程。圖2.3串操作流程圖1.傳送指令MOVS語(yǔ)句格式:①M(fèi)OVSB——字節(jié)串傳送②MOVSW——字串傳送功能:將以SI為指針的源串中的一個(gè)字節(jié)(或字)存儲(chǔ)單元中的數(shù)據(jù)傳送至以DI為指針的目的地址中去,并自動(dòng)修改指針,使之指向下一個(gè)字節(jié)(或字)存儲(chǔ)單元。即:①(DS:[SI])→ES:[DI]。
②
當(dāng)DF=0時(shí),(SI)和(DI)增量。當(dāng)DF=1時(shí),(SI)和(DI)減量。2.串比較指令CMPS語(yǔ)句格式:①CMPSB——字節(jié)串比較②CMPSW——字串比較功能:將SI所指的源串中的一個(gè)字節(jié)(或字)存儲(chǔ)單元中的數(shù)據(jù)與DI所指的目的串中的一個(gè)字節(jié)(或字)存儲(chǔ)單元中的數(shù)據(jù)相減,并根據(jù)相減的結(jié)果設(shè)置標(biāo)志,但結(jié)果并不保存。即:①([SI])-([DI])。②修改串指針,使之指向串中的下一個(gè)元素。當(dāng)DF=0時(shí),(SI)和(DI)增量。當(dāng)DF=1時(shí),(SI)和(DI)減量。3.串搜索指令SCAS語(yǔ)句格式:①SCASB——字節(jié)串搜索②SCASW——字串搜索功能:AL(字節(jié))或AX(字)中的內(nèi)容與DI所指的目的串中的一個(gè)字節(jié)(或字)存儲(chǔ)單元中的數(shù)據(jù)相減,根據(jù)相減結(jié)果設(shè)置標(biāo)志位,結(jié)果不保存,即:①字節(jié)操作:(AL)-([DI]),字操作:(AX)-([DI])。②修改指針使之指向串中的下一個(gè)元素。當(dāng)DF=0時(shí),(DI)增量。當(dāng)DF=1時(shí),(DI)減量。4.從源串中取數(shù)指令LODS語(yǔ)句格式:①LODSB——從字節(jié)串中取數(shù)②LODSW——從字串中取數(shù)功能:將SI所指的源串中的一個(gè)字節(jié)(或字)存儲(chǔ)單元中的數(shù)據(jù)取出來(lái)送入AL(或AX)中。即:①字節(jié)操作:([SI])→AL,字操作:([SI])→AX。②修改指針SI,使它指向串中的下一個(gè)元素。當(dāng)DF=0時(shí),(SI)增量。當(dāng)DF=1時(shí),(SI)減量。5.往目的串中存數(shù)指令STOS語(yǔ)句格式:①STOSB——往字節(jié)串中存數(shù)②(2)STOSW——往字串中存數(shù)功能:將AL或AX中的數(shù)據(jù)送入DI所指的目的串中的字節(jié)(或字)存儲(chǔ)單元中。即:①字節(jié)操作:(AL)→[DI],字操作:(AX)→[DI]。②修改指針DI,使之指向串中的下一個(gè)元素。當(dāng)DF=0時(shí),(DI)增量)。當(dāng)DF=1時(shí),(DI)減量。6.重復(fù)前綴指令REPREPZREPNZ(1)REPREP前綴用在MOVS、STOS、LODS指令前。功能:每執(zhí)行一次串指令(CX)-1,直到(CX)=0,重復(fù)執(zhí)行結(jié)束。(2)REPZ該指令一般用在CMP、SCAS指令前。功能:每執(zhí)行一次串指令(CX)-1,并判斷ZF標(biāo)志是否為0,只要(CX)=0或ZF=0,則重復(fù)執(zhí)行結(jié)束。(3)REPNZ該指令一般用在CMPS、SCAS指令前。功能:每執(zhí)行一次串指令(CX)-1,并判斷ZF標(biāo)志是否為0,只要(CX)=0或ZF=1,則重復(fù)執(zhí)行結(jié)束。2.6控制轉(zhuǎn)移類指令2.6.1條件轉(zhuǎn)移指令2.6.2無(wú)條件轉(zhuǎn)移指令2.6.3循環(huán)指令
2.6.4子程序調(diào)用指令2.6.5中斷指令返回本章首頁(yè)2.6.1條件轉(zhuǎn)移指令1.簡(jiǎn)單條件轉(zhuǎn)移指令2.無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令3.有符號(hào)數(shù)條件轉(zhuǎn)移指令它們都有通用的語(yǔ)句格式和功能。語(yǔ)句格式:[標(biāo)號(hào):]操作符短標(biāo)號(hào)功能:如果條件滿足,則(IP)+位移量→IP。1.簡(jiǎn)單條件轉(zhuǎn)移指令
2.無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令表2.2無(wú)符號(hào)數(shù)條件轉(zhuǎn)移指令【例2.53】比較無(wú)符號(hào)數(shù)大小,將較大的數(shù)存放AX寄存器。CMP AX,BX;(AX)-(BX)JNB NEXT ;若AX>=BX,轉(zhuǎn)移到NEXTXCHG AX,BX;若AX<BX,交換NEXT:…3.有符號(hào)數(shù)條件轉(zhuǎn)移指令表2.3有符號(hào)數(shù)條件轉(zhuǎn)移指令【例2.54】比較有符號(hào)數(shù)大小,將較大的數(shù)存放在AX寄存器。CMP AX,BX ;(AX)-(BX)JNL NEXT ;若AX>=BX,轉(zhuǎn)移到NEXTXCHG AX,BX ;若AX<BX,交換NEXT:…返回本節(jié)2.6.2無(wú)條件轉(zhuǎn)移指令表2.4無(wú)條件轉(zhuǎn)移指令的語(yǔ)句格式及功能返回本節(jié)2.6.3循環(huán)指令1.循環(huán)指令LOOP2.相等/為零循環(huán)指令LOOPE3.不相等/不為零循環(huán)指令LOOPNE4.CX為零轉(zhuǎn)移指令JCXZ1.循環(huán)指令LOOP語(yǔ)句格式:LOOP短標(biāo)號(hào)功能:(CX)-1≠0,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。說(shuō)明:使用LOOP指令可代替兩條指令:DECCXJNE短標(biāo)號(hào)2.相等/為零循環(huán)指令LOOPE語(yǔ)句格式:①LOOPE短標(biāo)號(hào)②LOOPZ短標(biāo)號(hào)功能:(CX)-1≠0且ZF=1,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。3.不相等/不為零循環(huán)指令LOOPNE語(yǔ)句格式:①LOOPNE短標(biāo)號(hào)②LOOPNZ短標(biāo)號(hào)功能:(CX)-1≠0,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。4.CX為零轉(zhuǎn)移指令JCXZ語(yǔ)句格式:JCXZ短標(biāo)號(hào)功能:(CX)-1≠0,則程序轉(zhuǎn)移(循環(huán));否則,順序執(zhí)行。返回本節(jié)2.6.4子程序調(diào)用指令1.子程序調(diào)用指令CALL(1)段內(nèi)直接調(diào)用(2)段間直接調(diào)用(3)段內(nèi)間接調(diào)用(4)段間間接調(diào)用2.返回指令RET(1)語(yǔ)句格式:RET(2)語(yǔ)句格式:RETn(n為偶數(shù))返回本節(jié)2.6.5中斷指令1.中斷調(diào)用指令I(lǐng)NT語(yǔ)句格式:INTn功能:①(FLAGS)→↓(SP),0→IF、TF。②(CS)→↓(SP),(4*n+2)→CS。③(IP)→↓(SP),(4*n)→IP。2.中斷返回指令I(lǐng)RET語(yǔ)句格式:IRET功能:①↑(SP)→IP②↑(SP)
→CS③↑(SP)
→FLAGS返回本節(jié)2.7處理機(jī)控制類指令2.7.1標(biāo)志位設(shè)置指令2.7.2CPU狀態(tài)控制指令返回本章首頁(yè)2.7.1標(biāo)志位設(shè)置指令1.進(jìn)位標(biāo)志操作指令2.方向標(biāo)志操作指令3.中斷標(biāo)志操作指令返回本節(jié)3.1宏匯編語(yǔ)言格式3.1.1指令語(yǔ)句格式3.1.2偽指令語(yǔ)句格式返回本章首頁(yè)3.1.1指令語(yǔ)句格式指令語(yǔ)句的一般格式如下:[標(biāo)號(hào):]指令助記符操作數(shù);注釋1.標(biāo)號(hào):標(biāo)號(hào)是機(jī)器指令語(yǔ)句存放地址的符號(hào)表示,代表該指令目標(biāo)代碼的第一個(gè)字節(jié)地址,后面必須緊跟冒號(hào)“:”
。2.指令助記符:指令助記符為語(yǔ)句的核心成分,表示了該語(yǔ)句的操作類型。
3.操作數(shù):操作數(shù)表示指令助記符的操作對(duì)象。
4.注釋:注釋均以分號(hào)開始,它可占一行或多行,一般放在一條語(yǔ)句的后面。
返回本節(jié)3.1.2偽指令語(yǔ)句格式偽指令語(yǔ)句格式如下:[符號(hào)名]偽指令符操作數(shù);注釋1.符號(hào)名:符號(hào)名是偽指令語(yǔ)句的一個(gè)可選項(xiàng)。
2.偽指令符:偽指令符指定匯編程序要完成的具體操作,如數(shù)據(jù)定義偽指令DB、DW、DD,段定義偽指令SEGMENT,假定偽指令A(yù)SSUME等。
3.操作數(shù):偽指令后面的操作數(shù)可以是常數(shù)、字符串、變量、表達(dá)式等,其個(gè)數(shù)由具體的偽指令決定,各個(gè)操作數(shù)之間必須以“逗號(hào)”分隔。4.注釋:偽指令的注釋必須以“;”開始,其作用同指令語(yǔ)句中的注釋部分。
返回本節(jié)3.2匯編語(yǔ)句表達(dá)式3.2.1常量3.2.2變量3.2.3標(biāo)號(hào)3.2.4表達(dá)式與運(yùn)算符3.2.5運(yùn)算符的優(yōu)先級(jí)返回本章首頁(yè)3.2.1常量1.?dāng)?shù)值常量2.字符串常量1.?dāng)?shù)值常量表3.1各種形式數(shù)字常量格式對(duì)照表2.字符串常量字符串常量是用單引號(hào)或雙引號(hào)引起來(lái)的一個(gè)或多個(gè)字符。字符串常量是以各字符的ASCⅡ碼表示的。如‘A’用41H表示,字符串‘A1B2’用41H,31H,42H,32H表示。返回本節(jié)3.2.2變量1.變量2.變量的定義(1)段屬性(2)偏移地址屬性(3)類型屬性1.變量表達(dá)式項(xiàng)是給變量或指定存儲(chǔ)單元賦予初值,它有以下幾種形式:(1)數(shù)值表達(dá)式(2)字符串表達(dá)式(3)地址表達(dá)式(只適用DW和DD兩個(gè)偽指令)(4)?表達(dá)式(5)帶DUP的表達(dá)式2.變量的定義數(shù)據(jù)定義偽指令可以為一個(gè)或連續(xù)的存儲(chǔ)單元設(shè)置數(shù)值初值。【例3.1】為數(shù)據(jù)段分配存儲(chǔ)單元。DATA SEGMENTA DB 11H,12H,13HB DW 1122H,3344HC DD 12345678HDATA ENDS上述變量的存儲(chǔ)單元分配及初始化情況如下圖3.1所示。(1)數(shù)值表達(dá)式圖3.1數(shù)據(jù)段中數(shù)據(jù)存儲(chǔ)分配圖字符串表達(dá)式中的字符串必須用引號(hào)引起來(lái)。DB、DW、DD偽指令將字符串中的各字符均以ASCⅡ碼形式存放在相應(yīng)的存儲(chǔ)單元,但表示形式各不相同。【例3.2】為字符串分配存儲(chǔ)單元。DATA SEGMENTSTR1 DB ‘1234’STR2 DW ‘AB’,‘CD’,‘A’STR3 DD ‘AB’DATA ENDS其存儲(chǔ)單元分配如下圖3.2所示。(2)字符串表達(dá)式圖3.2數(shù)據(jù)段存儲(chǔ)分配圖(3)地址表達(dá)式(只適用DW和DD兩個(gè)偽指令)如果該地址表達(dá)式為一變量(或標(biāo)號(hào))名,用DW偽指令則是取它的偏移地址來(lái)初始化變量,用DD偽指令則是取它的段首址和偏移地址來(lái)初始化變量。例如:
BUF1 DW ABUF2 DD B在表達(dá)式中使用重復(fù)數(shù)據(jù)操作符DUP,可以為連續(xù)的存儲(chǔ)單元提供重復(fù)數(shù)據(jù),其格式為:
NDUP(表達(dá)式)其中N為重復(fù)因子,只能取正整數(shù),表示定義了N個(gè)重復(fù)數(shù)據(jù)存儲(chǔ)單元,其類型由它前面的數(shù)據(jù)定義偽指令確定,而每個(gè)數(shù)據(jù)存儲(chǔ)單元中的初值由DUP后面圓括號(hào)中的表達(dá)式給定。例如:BUFDB100DUP(0)以上語(yǔ)句定義了以BUF為首址,大小為100個(gè)字節(jié),初值為0的數(shù)據(jù)存儲(chǔ)單元。(5)帶DUP的表達(dá)式返回本節(jié)3.2.3標(biāo)號(hào)標(biāo)號(hào)是一條指令語(yǔ)句的符號(hào)地址。在匯編源程序中,只有在需要轉(zhuǎn)向一條指令語(yǔ)句時(shí),才為該指令語(yǔ)句設(shè)置標(biāo)號(hào),以便在轉(zhuǎn)移類指令(含子程序調(diào)用指令)中直接引用這個(gè)標(biāo)號(hào)。因此,標(biāo)號(hào)可作為轉(zhuǎn)移類指令的操作數(shù),即轉(zhuǎn)移地址?!纠?.3】符號(hào)地址表示。
┆NEXT:MOV AL,[SI] ;帶標(biāo)號(hào)NEXT的指令
┆DECCXJNENEXT ;標(biāo)號(hào)NEXT作轉(zhuǎn)移指令的操作數(shù)1.段屬性2.偏移地址屬性3.類型屬性標(biāo)號(hào)也具有三種屬性返回本節(jié)3.2.4表達(dá)式與運(yùn)算符1.算術(shù)運(yùn)算符2.邏輯運(yùn)算符3.關(guān)系運(yùn)算符4.屬性運(yùn)算符5.?dāng)?shù)值返回運(yùn)算符算術(shù)運(yùn)算符包括:+(加)、-(減)、*(乘)、/(除)、MOD(求模)、SHL(左移)、SHR(右移)幾種,它既可以用于數(shù)值表達(dá)式又可用于地址表達(dá)式。1.算術(shù)運(yùn)算符 ┆NUM1 EQU 25*4–50 ;NUM1=50NUM2 EQU NUM1/7 ;NUM2=7NUM3 DB NUM1MOD7 ;NUM3=1VAR1 DB 1,2,3,4,5VAR2 DB ‘12345’NUM4 EQU VAR2-VAR1 ;NUM4=5NUM5 EQU 0FH ┆ MOV AL,NUM5SHL4 ;(AL)=11110000B MOV BL,NUM5SHR4 ;(BL)=00000000B【例3.4】用算術(shù)運(yùn)算符進(jìn)行數(shù)值表達(dá)式運(yùn)算。邏輯運(yùn)算符包括:邏輯乘(AND)、邏輯加(OR)、按位加(XOR)、邏輯非(NOT)四種運(yùn)算。由于邏輯運(yùn)算是按位操作,且在匯編過(guò)程中完成,因而運(yùn)算的結(jié)果仍為整數(shù)常量?!纠?.5】用邏輯運(yùn)算符進(jìn)行運(yùn)算。MOV AL,34HAND0FH ;04H→ALMOV BL,05HOR30H ;35H→BLMOV CX,NOT00FFH ;0FF00H→CXMOV DX,789AHXOR000FH ;7895H→DX2.邏輯運(yùn)算符關(guān)系運(yùn)算符包括:相等(EQ),不等(NE),小于(LT),大于(GT),小于等于(LE)及大于等于(GE)。【例3.6】用關(guān)系運(yùn)算符進(jìn)行數(shù)值表達(dá)式運(yùn)算。NUM1 DB 10LT5 ;NUM1=0NUM2 DB 0AAAAHGT7FFFH ;NUM2=0FFFFH MOV AX,‘A‘EQ41H ;0FFFFH→AX MOV BX,NUM2LTNUM1 ;0→BX3.關(guān)系運(yùn)算符(1)PTR運(yùn)算符格式:類型PTR地址表達(dá)式②PTR與EQU連用,可定義與PTR右邊地址表達(dá)式類型不同的新變量名或新標(biāo)號(hào),但不另分配存儲(chǔ)單元。4.屬性運(yùn)算符(1)SEG運(yùn)算符(2)OFFSET運(yùn)算符(3)TYPE運(yùn)算符(4)LENGTH運(yùn)算符(5)SIZE運(yùn)算符(6)字節(jié)分離運(yùn)算符5.?dāng)?shù)值返回運(yùn)算符(1)SEG運(yùn)算符格式:SEG變量或標(biāo)號(hào)功能:分離出其后變量或標(biāo)號(hào)所在段的段首址。例如:MOV AX,SEG ARRMOV DS,AX(2)OFFSET運(yùn)算符格式:OFFSET變量或標(biāo)號(hào)功能:分離出其后變量或標(biāo)號(hào)的偏移地址。例如:
MOVBX,OFFSETBUF(3)TYPE運(yùn)算符格式:TYPE變量或標(biāo)號(hào)功能:分離出其后變量或標(biāo)號(hào)的類型。如果是變量,將返回該變量的類型對(duì)應(yīng)字節(jié)數(shù);如果是標(biāo)號(hào),則返回代表標(biāo)號(hào)類型的數(shù)值。它們之間的關(guān)系見表3.2所示。(4)LENGTH運(yùn)算符格式:LENGTH變量功能:取出變量所含的數(shù)據(jù)存儲(chǔ)單元個(gè)數(shù)?!纠?.12】取出變量占存儲(chǔ)單元個(gè)數(shù)。DATA SEGMENTA DB ‘ABCDEF’B DW 10 DUP(1,2DUP(2))C DB 3,20 DUP(0)DATA ENDS ┆ MOV AX,LENGTHA ;1→AX MOV BX,LENGTH B ;10→BX MOV CX,LENGTH C ;1→CX ┆(5)SIZE運(yùn)算符格式:SIZE變量功能:取出變量所含的數(shù)據(jù)存儲(chǔ)區(qū)大小。其返回值為:
LENGTH變量*TYPE變量例如:上例中A、B、C三變量:SIZEA=LENGTHA*TYPEA=1SIZEB=LENGTHB*TYPEB=20SIZEC=LENGTHC*TYPEC=1(6)字節(jié)分離運(yùn)算符字節(jié)分離運(yùn)算符包括:HIGH和LOW。格式:HIGH常量或地址表達(dá)式LOW常量或地址表達(dá)式功能:HIGH用來(lái)分離出其后16位常量或地址表達(dá)式的偏移量的高字節(jié);LOW用來(lái)分離出其后16位常量或地址表達(dá)式偏移量的低字節(jié)。返回本節(jié)3.2.5運(yùn)算符的優(yōu)先級(jí)表3.3運(yùn)算符的優(yōu)先級(jí)返回本節(jié)3.3偽指令3.3.1數(shù)據(jù)定義偽指令3.3.2符號(hào)定義偽指令3.3.3段定義偽指令SEGMENT/ENDS3.3.4假定偽指令A(yù)SSUME3.3.5置匯編地址計(jì)數(shù)器偽指令ORG3.3.6源程序結(jié)束偽指令返回本章首頁(yè)3.3.1數(shù)據(jù)定義偽指令常用的數(shù)據(jù)定義偽指令有DB,DW,DD,DQ,DT。格式:[變量名]數(shù)據(jù)定義偽指令表達(dá)式[,…]功能:定義數(shù)據(jù)存儲(chǔ)區(qū),類型由數(shù)據(jù)定義偽指令確定,初值由表達(dá)式給定。返回本節(jié)3.3.2符號(hào)定義偽指令1.等價(jià)偽指令2.等號(hào)偽指令3.定義符號(hào)名偽指令1.等價(jià)偽指令格式:符號(hào)名EQU表達(dá)式功能:為常量、表達(dá)式及其他各種符號(hào)定義一個(gè)等價(jià)的符號(hào)名,但它不申請(qǐng)存儲(chǔ)單元。用途:①用符號(hào)表示常量、數(shù)值表達(dá)式,即定義符號(hào)常量。使用符號(hào)常量可使程序簡(jiǎn)單明了,增強(qiáng)程序的可讀性和通用性。②EQU與屬性運(yùn)算符PTR或THIS聯(lián)合使用,可以給變量或標(biāo)號(hào)定義新的類型屬性并重新命名,但保持其段偏移地址屬性不變。③利用EQU可以用一個(gè)符號(hào)名替代一個(gè)復(fù)雜的地址表達(dá)式和其他一些符號(hào),如指令助記符、變量名、標(biāo)號(hào)、段名、寄存器名、宏定義名等。2.等號(hào)偽指令格式:符號(hào)名=表達(dá)式功能:為常量、表達(dá)式及其他各種符號(hào)定義一個(gè)等價(jià)的符號(hào)名,并能對(duì)所定義的符號(hào)多次重復(fù)定義,且以最后一次定義的值為準(zhǔn)?!纠?.17】定義等價(jià)符號(hào)名。
┆COST=20M =MOVLOST=LOST+10 ;30→LOSTM =ADD ;M=ADD ┆3.定義符號(hào)名偽指令3.定義符號(hào)名偽指令格式:變量名或標(biāo)號(hào)LABEL類型功能:定義與原有變量類型不同的新變量或?yàn)橹噶钫Z(yǔ)句定義有指定類型的標(biāo)號(hào)。通常與數(shù)據(jù)定義偽指令連用,其功能類似語(yǔ)句“變量名或標(biāo)號(hào)EQUTHIS類型”?!纠?.18】定義新類型的變量。
┆DDBUF LABELDWORDBUF DB 200DUP(0)
┆
A LABEL FARB: LEA DX,BUF ┆返回本節(jié)3.3.3段定義偽指令SEGMENT/END1.段名2.定位方式3.類別4.組合方式1.段名段名是為該段起的名字,用來(lái)指出匯編程序?yàn)樵摱畏峙涞拇鎯?chǔ)區(qū)起始位置。2.定位方式(1)PARA:表示本段必須從能被16整除的地址處開始存放,即段起始地址最低四位必須是0。(2)WORD:表示本段要從一個(gè)偶數(shù)地址處開始存放,即段起始地址的最低一位必須是0。(3)BYTE:表示本段起始地址可以從任一地址處開始存放。(4)PAGE:表示本段要從能被256整除的地址處開始存放,即起始地址的最低八位必須是0。【例3.19】對(duì)連接程序進(jìn)行連接后存儲(chǔ)區(qū)各段相對(duì)位置分布。DATA1 SEGMENT ‘DATA’CODE SEGMENT ‘CODE’STACK1 SEGMENT ‘STACK’DATA2 SEGMENT ‘DATA’STACK2 SEGMENT ‘STACK’經(jīng)連接程序連接后,各段的相對(duì)位置如下:DATA1 SEGMENT ‘DATA’DATA2 SEGMENT ‘DATA’STACK1 SEGMENT ‘STACK’STACK2 SEGMENT ‘STACK’CODE SEGMENT ‘CODE’3.類別組合方式有六種類型可供選擇。(1)“不選擇”(2)PUBLIC(3)STACK(4)COMMON(5)MEMORY(6)AT表達(dá)式4.組合方式【例3.20】有兩個(gè)模塊,各模塊段定義如下:模塊1:
┆DATA1 SEGMENTPARAPUBLIC‘DATA1’M1 DB45HDUP(0)DATA1 ENDSDATA2 SEGMENTPARACOMMON‘DATA2’N1 DB102HDUP(0)DATA2 ENDSEND模塊2:
┆DATA1 SEGMENTPARAPUBLIC‘DATA1’M2 DB104HDUP(11H)DATA1 ENDSDATA2 SEGMENTPARACOMMON‘DATA2’N2 DB105HDUP(0)DATA2 ENDSDATA3 SEGMENTT1 DB50DUP(20H)DATA3 ENDSEND該段的定位組合方式示意圖如圖3.3所示。圖3.3模塊1、模塊2連接后段的定位組合方式示意圖返回本節(jié)3.3.4假定偽指令A(yù)SSUME格式:ASSUME段寄存器:段名[,段寄存器:段名]功能:建立段寄存器與段之間的對(duì)應(yīng)關(guān)系。該偽指令一般出現(xiàn)在代碼段中?!纠?.21】用ASSUME偽指令建立代碼段、堆棧段與CS和SS的對(duì)應(yīng)關(guān)系。DATA1 SEGMENTA DB1,2,3DATA1 ENDSSTACK SEGMENTSTACKDB 200DUP(0)STACK ENDSDATA2 SGEMENTB DB‘123ABCDATA2 ENDSDATA3 SEGMENTC DB?,?,?DATA3 ENDSCODE SEGMENT ASSUME DS:DATA1,ES:DATA2,CS:CODE,SS:STACKSTART: MOV AX,DATA1 MOV DS,AX ;DATA1→DS MOV AX,DATA3 MOV
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校工作計(jì)劃
- 閉門器配件行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 四年級(jí)的科學(xué)教學(xué)工作計(jì)劃
- 倉(cāng)管的實(shí)習(xí)自我總結(jié)十篇
- 中秋節(jié)活動(dòng)策劃方案范文錦集六篇
- 三年級(jí)數(shù)學(xué)教師自我鑒定
- 初中語(yǔ)文課前演講稿10篇
- 生活中的美初中作文600字【5篇】
- 有關(guān)晚會(huì)策劃方案范文匯編5篇
- 旅游社實(shí)習(xí)報(bào)告四篇
- Unit 1 Art Using Language (教案)-高中英語(yǔ)人教版(2019)·選擇性必修第三冊(cè)
- 2023-2024學(xué)年鞍山市重點(diǎn)中學(xué)高一上數(shù)學(xué)期末質(zhì)量檢測(cè)試題含解析
- 基于PLC的自動(dòng)打鈴控制器
- 中式烹調(diào)技藝教案
- 招標(biāo)代理及政府采購(gòu)常識(shí)匯編
- 人工智能引論智慧樹知到課后章節(jié)答案2023年下浙江大學(xué)
- 醫(yī)保按病種分值付費(fèi)(DIP)院內(nèi)培訓(xùn)
- 國(guó)開2023秋《藥劑學(xué)》形考任務(wù)1-3參考答案
- 釣魚比賽招商方案范本
- 橋梁竣工施工總結(jié)
- 組態(tài)技術(shù)及應(yīng)用學(xué)習(xí)通課后章節(jié)答案期末考試題庫(kù)2023年
評(píng)論
0/150
提交評(píng)論