版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微機(jī)原理及接口技術(shù)第四章匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言和匯編語(yǔ)言程序格式偽指令匯編語(yǔ)言程序設(shè)計(jì)及舉例微機(jī)原理及接口技術(shù)一、三種語(yǔ)言1.機(jī)器語(yǔ)言:計(jì)算機(jī)執(zhí)行的指令一組二進(jìn)制代碼最原始編寫程序的方式2.匯編語(yǔ)言:利用指令的助記符、符號(hào)、地址、
標(biāo)號(hào)來編寫的語(yǔ)言。說明:面向機(jī)器的語(yǔ)言,和機(jī)器硬件密切相關(guān)。3.高級(jí)語(yǔ)言:獨(dú)立于機(jī)器第一節(jié)匯編語(yǔ)言和匯編語(yǔ)言程序格式微機(jī)原理及接口技術(shù)源程序匯編程序目標(biāo)程序源程序編譯程序目標(biāo)程序微機(jī)原理及接口技術(shù)4.比較(1)機(jī)器語(yǔ)言:不易記憶和理解,使用和修改麻煩但程序效率高,執(zhí)行最快。(2)匯編語(yǔ)言:執(zhí)行速度與機(jī)器語(yǔ)言相當(dāng)比機(jī)器語(yǔ)言易理解仍不能獨(dú)立于機(jī)器多用于實(shí)時(shí)控制,實(shí)時(shí)通信程序(3)高級(jí)語(yǔ)言:易學(xué)習(xí),使用方便,通用性強(qiáng)源程序較短,但目標(biāo)程序大執(zhí)行時(shí)間比較長(zhǎng),效率低微機(jī)原理及接口技術(shù)二、匯編語(yǔ)言程序格式源程序分段,若干段形成一個(gè)源程序,每段由若干語(yǔ)句行組成。NAME1SEGMENT
;段開始
語(yǔ)句NAME1ENDS
;段結(jié)束NAME2SEGMENT…NAME2ENDS…END<標(biāo)號(hào)>微機(jī)原理及接口技術(shù)三、語(yǔ)句行的構(gòu)成語(yǔ)句行:由標(biāo)記(Token)及分隔符按一定規(guī)則組織起來的。標(biāo)記符號(hào)表達(dá)式語(yǔ)句微機(jī)原理及接口技術(shù)1.標(biāo)記
宏匯編源程序的最小的,有意義的單位。(1)字符集
1)字母:大小寫英文字母
2)數(shù)字:0--9
3)特殊字符:+-*/=…可打印字符制表符,回車等不可打印字符(2)界符(Delimiters)
界符為特殊字符,表明某個(gè)標(biāo)記的結(jié)束。如:,;<-?/微機(jī)原理及接口技術(shù)(3)常量
1)數(shù)字(整數(shù))常量:二進(jìn)制以B結(jié)束十進(jìn)制十六進(jìn)制以H結(jié)束
2)字符串常量:?jiǎn)我?hào)內(nèi)的ASCII字符構(gòu)成‘A’(4)標(biāo)識(shí)符(Identifiers)
程序員建立的有意義的字符序列,如SUM。最多為32個(gè)字母,數(shù)字,特殊字符(?@-$),不能是數(shù)字打頭。微機(jī)原理及接口技術(shù)(5)保留字(Reservedwords)1)指令助記符,如:ADD,SUB,MOV2)寄存器名,如:AX,AL,SP3)偽指令,如:SEGMENT,END
4)其它保留字,如:BYTE,WORD(6)注釋(Comment)
;后的任意字符序列,直至行末。返回微機(jī)原理及接口技術(shù)2.符號(hào)符號(hào)用來代替存儲(chǔ)單元、寄存器、數(shù)據(jù)、表達(dá)式等,是一種標(biāo)識(shí)符。(1)寄存器(Registers)
代表某一操作數(shù),為8位或16位。(2)變量(Variable)
存放在存儲(chǔ)單元中的操作數(shù),程序中出現(xiàn)的是存儲(chǔ)單元地址。
1)段值(SEGMENT):段地址的高16位,低四位為02)偏移量(OFFSET):段內(nèi)偏移量16位
3)類型(TYPE):字節(jié)(BYTE),字(WORD),雙字DWORD微機(jī)原理及接口技術(shù)(3)標(biāo)號(hào)(Lable)
某條指令所存放單元的地址。屬性:(1)段值
(2)偏移量
(3)類型:NEAR近,只改變IPFAR遠(yuǎn),改變CS和IP(4)數(shù)
常數(shù)也以符號(hào)的形式出現(xiàn),便于修改。如:COUNTEQU100(5)其它符號(hào)返回微機(jī)原理及接口技術(shù)3.表達(dá)式表達(dá)式由標(biāo)志、符號(hào)通過運(yùn)算符組合起來。一個(gè)表達(dá)式由操作數(shù)和運(yùn)算符組成。(1)操作數(shù)(Operands)
一個(gè)操作數(shù),代表一個(gè)數(shù)據(jù),或一個(gè)寄存器名,一個(gè)存儲(chǔ)單元地址。
1)常量操作數(shù):如100,COUNT2)存儲(chǔ)器操作數(shù):為標(biāo)識(shí)符,分為標(biāo)號(hào)和變量。微機(jī)原理及接口技術(shù)(2)運(yùn)算符(Operators)
一個(gè)運(yùn)算符取一個(gè)或多個(gè)操作數(shù)的值,形成一個(gè)新值。
1)算術(shù)運(yùn)算符:如+-*/MOD
對(duì)地址的運(yùn)算如:加,減
2)邏輯運(yùn)算符:如AND、OR、XOR、NOT微機(jī)原理及接口技術(shù)3)關(guān)系運(yùn)算符相等EQ(Equal)
不等NE(NotEqual)
小于LT(LessThan)
大于GT(GreaterThan)
小于或等于LE(LessThanorEqual)
大于或等于GE(GreatThanorEqual)
說明:①兩個(gè)操作數(shù),或都為數(shù)字,或是同一段的存儲(chǔ)單元地址,結(jié)果總是一個(gè)數(shù)值。②關(guān)系是假,數(shù)值為0
關(guān)系是真,數(shù)值為全1微機(jī)原理及接口技術(shù)
例1:MOVBX,PORT_VALLT51)若PORT_VAL<5關(guān)系為真,匯編后產(chǎn)生語(yǔ)句為
MOVBX,0FFFFH2)若PORT_VAL≥5關(guān)系為假,匯編后產(chǎn)生語(yǔ)句為
MOVBX,0
例2:與邏輯運(yùn)算符結(jié)合用MOVBX,((PORT_VALLT5)AND20)OR((PORT_VALGE5)AND30)1)PORT_VAL<5為:MOVBX,202)PORT_VAL≥5為:MOVBX,30微機(jī)原理及接口技術(shù)4)分析運(yùn)算符存儲(chǔ)器單元地址段地址偏移量類型分解成5)合成運(yùn)算符
由已存在的存儲(chǔ)器操作數(shù)生成一個(gè)段值和偏移量相同,而類型不同的新的存儲(chǔ)器操作數(shù)。返回微機(jī)原理及接口技術(shù)4.語(yǔ)句
(1)指令型語(yǔ)句
即指令,匯編程序把它們翻譯成機(jī)器代碼。如:
MOV、ADD、JMP(2)指示型語(yǔ)句即偽指令,匯編程序并不把它們翻譯成機(jī)器代碼。偽指令用來為匯編程序提供某些信息,讓匯編程序在匯編中執(zhí)行某些特定功能。如:規(guī)定一個(gè)程序的數(shù)據(jù)段從哪里開始;分配存儲(chǔ)單元。微機(jī)原理及接口技術(shù)(3)宏指令語(yǔ)句一條宏指令是一系列語(yǔ)句的縮寫,可以是指令、指示性指令或宏指令。匯編程序?qū)⑺忉尀槎鄠€(gè)語(yǔ)句,然后匯編成機(jī)器代碼。微機(jī)原理及接口技術(shù)說明:
1)指令格式標(biāo)號(hào):助記符參數(shù),…參數(shù);注釋
偽指令格式名字命令參數(shù),…參數(shù);注釋注意:指令標(biāo)號(hào)后有冒號(hào),偽指令后沒有。
2)
指令的標(biāo)號(hào)與指令的地址相聯(lián),可作為JMP和CALL指令的目標(biāo)操作數(shù)。偽指令的名字與指令的地址毫無(wú)關(guān)系,絕不能轉(zhuǎn)向它。18微機(jī)原理及接口技術(shù)四、匯編語(yǔ)言程序的開發(fā)匯編語(yǔ)言程序的開發(fā)過程:
1.源程序的編輯建立.ASM文件。
2.源程序的匯編用匯編器MASM.EXE匯編源程序,建立.OBJ文件。
3.目標(biāo)文件的連接用連接器LINK.EXE將一個(gè)或多個(gè)目標(biāo)文件與庫(kù)文件進(jìn)行連接,生成.EXE可執(zhí)行文件。微機(jī)原理及接口技術(shù)4.可執(zhí)行文件的運(yùn)行匯編和連接后,生成的.EXE可執(zhí)行文件可以直接運(yùn)行。在命令行下鍵入文件即可。
5.可執(zhí)行文件的調(diào)試用調(diào)試器對(duì)可執(zhí)行文件進(jìn)行調(diào)試,來發(fā)現(xiàn)錯(cuò)誤。
DEBUG是最簡(jiǎn)單的調(diào)試器。
CodeView是多窗口、全屏幕的調(diào)試工具。微機(jī)原理及接口技術(shù)第二節(jié)偽指令二、數(shù)據(jù)定義語(yǔ)句一、符號(hào)定義語(yǔ)句三、段定義語(yǔ)句四、過程定義語(yǔ)句五、結(jié)束語(yǔ)句六、宏指令微機(jī)原理及接口技術(shù)一、符號(hào)定義語(yǔ)句(Symbol)1.等值語(yǔ)句格式:NAMEEQUEXPRESSION
功能:用來給變量,標(biāo)號(hào),常數(shù),指令,表達(dá)式等定義一個(gè)符號(hào)。例:NUMBEREQU100常數(shù)賦給符號(hào)名表達(dá)式賦給符號(hào)NEW_PORTEQU PORT_VAL+1A1 EQU [BX+SI]B1 EQU OFFSETA1COUNT EQU CX存儲(chǔ)單元內(nèi)容賦給符號(hào)偏移地址賦給符號(hào)COUNT定義為CX的同義語(yǔ)微機(jī)原理及接口技術(shù)2.等號(hào)語(yǔ)句格式:NAME=EXPRESSION功能:與EQU的功能相同,區(qū)別在于EQU的左邊標(biāo)號(hào)不能重新定義,而=語(yǔ)句可以。例:
EMP=6EMP=EMP+1A1=BX+SIMOVAX,[A1];[BX+SI]單元內(nèi)容→AXB1=ADDA1=BXMOVCX,[A1];[BX]單元內(nèi)容→CX微機(jī)原理及接口技術(shù)3.解除語(yǔ)句格式:PURGE符號(hào)1,符號(hào)2,...
功能:已經(jīng)用EQU定義的符號(hào),不用了可用
PURGE語(yǔ)句來解除。例:
PURGENEW_PORTNEW_PORTEQUPORT_VAL+10
解除后的符號(hào)又可用EQU來重新定義了。返回微機(jī)原理及接口技術(shù)二、數(shù)據(jù)定義語(yǔ)句(Data)1.定義存儲(chǔ)單元:DB,DW,DD,DQ,DT功能:DB定義字節(jié),DW定義字,
DD定義雙字,DQ定義4個(gè)字,
DT定義10個(gè)字節(jié)。
在MASM6.X中DB、DW、DD、DQ、DT可分別寫作BYTE、WORD、DWORD、QWORD、TBYTE。微機(jī)原理及接口技術(shù)例:THINGDB25存儲(chǔ)單元THING處存放25安排存儲(chǔ)單元BUF1,內(nèi)容不定BUF2單元開始留出9個(gè)單元,內(nèi)容不定42H放BUF3單元,41H放BUF3+1單元BUF4單元開始留出4個(gè)字單元,內(nèi)容不定()中為值,內(nèi)容不定BUF1DB?BUF2DB9DUP(?)BUF3DW4142HBUF4DW4DUP(?)重復(fù)次數(shù)微機(jī)原理及接口技術(shù)BIGGEST_THINGDD12345678H雙字,定義4個(gè)字節(jié)IN_PORTDBPORT_VAL初始值為表達(dá)式,PORT_VAL已賦值BUF5DB6DUP(0)BUF6DB4DUP(1,2DUP(20H))BUF5開始的6個(gè)單元,初始值為0DUP嵌套外重復(fù)次數(shù)內(nèi)重復(fù)次數(shù)20H,20H重復(fù)四次
1,20H,20HLITTLE_CYCLEDWCYCLECYCLE的段內(nèi)偏移放入LITTLE_CYCLE,LITTLE_CYCLE+1BIG_CYCLEDDCYCLECYCLE段地址和偏移,4個(gè)字節(jié)POWERS_2DB1,2,4,6,16參數(shù)為一個(gè)表,5個(gè)字節(jié)EXAM1 DB‘THISISAEXAMPLE’定義了字符串COUNT DT?定義了10個(gè)字節(jié),內(nèi)容不定微機(jī)原理及接口技術(shù)說明:(1)定義數(shù)據(jù)是使匯編程序在匯編時(shí)為數(shù)據(jù)分配存儲(chǔ)單元。(2)?表示內(nèi)容不定,但保留存儲(chǔ)單元。(3)DUP后的()中給出一個(gè)初值(或一組初值),前面的數(shù)字為初值的重復(fù)次數(shù)。微機(jī)原理及接口技術(shù)例:設(shè)有下列數(shù)據(jù)段定義:
data segment d1 db -1,?,3*2 db 2dup(2dup(?),5),14h n equ 10 d2 dw -1,?,3462h,n d3 db ‘ABC’ d4 dd 0abcdh data ends(1)EQU不占用內(nèi)存空間。(2)
變量d1的偏移地址為0。(3)對(duì)d3的定義等價(jià)于d3 db ‘A’,‘B’,‘C’19微機(jī)原理及接口技術(shù)2.分析運(yùn)算符功能:把存儲(chǔ)器單元地址分解成它的組
成部分,如段地址、偏移量和類型。運(yùn)算符:SEG段地址
OFFSET偏移地址
TYPE類型
LENGTH單元數(shù)
SIZE字節(jié)總數(shù)微機(jī)原理及接口技術(shù)若在一個(gè)程序的數(shù)據(jù)段定義:DATA_TABLESSEGMENTBUFFER1DB100DUP(0)BUFFER2DW200DUP(20H)BUFFER3DD100DUP(13)DATA_TABLESENDS微機(jī)原理及接口技術(shù)(1)
段地址SEG
格式:SEG
變量或標(biāo)號(hào)功能:返回變量或標(biāo)號(hào)的段地址
例:MOVAX,SEGBUFFER1;數(shù)據(jù)段地址→AXMOVDS,AX(2)偏移地址
OFFSET
格式:OFFSET
變量或標(biāo)號(hào)功能:返回變量或標(biāo)號(hào)的偏移地址
例:MOVBX,OFFSETBUFFER1MOVSI,OFFSETBUFFER2微機(jī)原理及接口技術(shù)(3)
類型
TYPE
格式:TYPE
存儲(chǔ)器操作數(shù)功能:返回存儲(chǔ)器操作數(shù)的類型
存儲(chǔ)器操作數(shù)類型數(shù)據(jù)字節(jié)1
數(shù)據(jù)字2
數(shù)據(jù)雙字4NEAR指令單元-1FAR指令單元-2注意:(1)字節(jié)、字、雙字類型分別是它們所占字節(jié)數(shù)。
(2)指令單元的類型沒有實(shí)際的物理意義。
微機(jī)原理及接口技術(shù)(4)LENGTH格式:LENGTH
變量功能:返回一個(gè)與存儲(chǔ)器地址操作數(shù)相聯(lián)系的單元數(shù)(字節(jié),字,雙字)。
注意:存儲(chǔ)區(qū)必須用DUP()定義,否則返回1
例:
MOVCX,LENGTHBUFFER1;100→CXMOVBX,LENGTHBUFFER2;200→BX微機(jī)原理及接口技術(shù)(5)SIZE
格式:SIZE
變量功能:返回該變量包含的總字節(jié)數(shù)。
SIZE=TYPE×LENGTH
例:
SIZEBUFFER1=100SIZEBUFFER2=400SIZEBUFFER3=400MOVBX,SIZEBUFFER2;400→BX微機(jī)原理及接口技術(shù)3.合成運(yùn)算符(1)PTR
格式:類型/距離
PTR
變量或標(biāo)號(hào)功能:將左邊的類型屬性賦給右邊的變
量或標(biāo)號(hào)。
注意:(1)PTR本身不分配存儲(chǔ)單元,僅給已分配的存儲(chǔ)單元賦予新的屬性,以保證運(yùn)算時(shí)操作數(shù)類型匹配。
(2)常與類型BYTE,WORD,DWORD,
NEAR,F(xiàn)AR連用。微機(jī)原理及接口技術(shù)例1:TWO_BYTEDW?分配存儲(chǔ)單元賦予新屬性,但不分配存儲(chǔ)單元ONE_BYTEEQUBYTEPTRTWO_BYTE(1)TWO_BYTE定義類型是字。(2)PTR建立一個(gè)新的存儲(chǔ)器操作數(shù)ONE_BYTE,由PTR左邊的BYTE規(guī)定了類型為字節(jié)。(3)這樣TWO_BYTE只能用于字操作,如:
MOVTWO_BYTE,AXONE_BYTE只能用于字節(jié)操作,如:
MOVAL,ONE_BYTE微機(jī)原理及接口技術(shù)例2:MOV[BX],6
用PTR指明送入的是字節(jié)還是字。
MOVBYTEPTR[BX],6MOVWORDPTR[BX],6
第一條指令是06H→[BX]
第二條指令是0006H→[BX+1][BX]例3:JMPFARPTRINCHES;段間轉(zhuǎn)移微機(jī)原理及接口技術(shù)(2)THIS
格式:變量/標(biāo)號(hào)EQUTHIS
類型/距離
功能:將EQU右邊的類型/距離屬性賦給左邊的變量/標(biāo)號(hào),左邊的變量/標(biāo)號(hào)的段地址和偏移與下一存儲(chǔ)單元的地址相同。
注意:THIS和PTR一樣,也不分配存儲(chǔ)單元。微機(jī)原理及接口技術(shù)例1:DATA_TABLESSEGMENTWBUFFER1EQUTHISWORDBUFFER1DB100DUP(0)BBUFFER2EQUTHISBYTEBUFFER2DW200DUP(20H)DWBUFFER3EQUTHISWORDBUFFER3DD100DUP(13)DATA_TABLESENDS(1)WBUFFER1用THIS指定,其段地址和偏移與BUFFER1相等,區(qū)別是WBUFFER1為字,BUFFER1為字節(jié)。(3)DWBUFFER3是字,BUFFER3是雙字。(2)BBUFFER2是字節(jié),BUFFER2是字。返回微機(jī)原理及接口技術(shù)1.ORG
格式:ORG<表達(dá)式>
功能:指定段內(nèi)程序和數(shù)據(jù)存放的起始地址。例:ORG0100H;定位于偏移地址0100HORG$+20
定位于當(dāng)前地址后的20個(gè)字節(jié)處,$指本條指令的第一個(gè)字節(jié)地址。三、段定義語(yǔ)句(Segment)微機(jī)原理及接口技術(shù)例:數(shù)據(jù)段:
S01 DB 12H,34H ORG$+4S02 DW 2,0ABCDH12H34HS01S0202H00HcdHabH微機(jī)原理及接口技術(shù)2.SEGMENT…ENDS
格式:段名SEGMENT定位類型,組合類型,‘分類名’
邏輯段內(nèi)容段名ENDS
功能:將一個(gè)邏輯段定義成一個(gè)整體。段名:邏輯段標(biāo)識(shí)符,不可省略。SEGMENT…ENDS:段定義的偽指令助記符,成對(duì)出現(xiàn),右邊三個(gè)參數(shù)一般可省略。微機(jī)原理及接口技術(shù)3.ASSUME
格式:
ASSUMECS:段名,DS:段名,SS:段名,ES:段名功能:定義4個(gè)邏輯段。注意:段寄存器的值程序中要賦給。說明:可用ASSUMENOTHING取消前面的定義,如
ASSUMEDS:NOTHING微機(jī)原理及接口技術(shù)例:如何使用SEGMRNT,ENDS,ASSUMEMY_DATASEGMENT;定義數(shù)據(jù)段XDB?YDW?ZDD?MY_DATAENDSMY_EXTRASEGMENT;定義附加數(shù)據(jù)段ALPHADB?BETADW?GAMMADD?MY_EXTRAENDS微機(jī)原理及接口技術(shù)MY_STACKSEGMENT;定義堆棧段
DW100DUP(?)TOPEQUTHISWORDMY_STACKENDS微機(jī)原理及接口技術(shù)MY_CODESEGMENT;定義代碼段
ASSUMECS:MY_CODE,DS:MY_DATAASSUMEES:MY_EXTRA,SS:MY_STACKSTART:MOVAX,SEGXMOVDS,AXMOVAX,SEGALPHAMOVES,AXMOVAX,MY_STACKMOVSS,AXMOVSP,OFFSETTOPMY_CODEENDSENDSTART返回20微機(jī)原理及接口技術(shù)例:設(shè)有下列數(shù)據(jù)段定義:
data segment org 100h buf1 db 10h,20h,30h,40h,50h buf2 dw buf1 buf3 dd buf1 count equ buf2–buf1 buf4 dw buf2–buf1 data ends
設(shè)data的值是1200H,請(qǐng)圖示各數(shù)據(jù)在內(nèi)存的存放方式。微機(jī)原理及接口技術(shù)四、過程定義語(yǔ)句(Procedure)
過程也稱子程序,常用的子程序獨(dú)立編寫,用過程定義語(yǔ)句定義。格式:過程名PROC屬性
過程內(nèi)容
RET
過程名ENDP說明:(1)過程名:不可缺少,是主程序CALL
的目標(biāo)操作數(shù)。
(2)PROC….ENDP:過程定義偽指令。
(3)RET:至少有一條RET。微機(jī)原理及接口技術(shù)例:一個(gè)過程定義的例子SEGX SEGMENTSUBT PROCFARSUBCX,1RETSUBT ENDPSTART:…... CALLSUBT…... CALLSUBT……SEGX ENDS ENDSATRT返回微機(jī)原理及接口技術(shù)五、結(jié)束語(yǔ)句(Termination)
1.SEGMENT…ENDS段結(jié)束
2.PROC…ENDP過程結(jié)束3.源程序結(jié)束語(yǔ)句END格式:END<表達(dá)式>功能:告訴匯編程序,整個(gè)源程序結(jié)束。表達(dá)式通常是程序第一條指令前的標(biāo)號(hào)。返回微機(jī)原理及接口技術(shù)六、宏指令(Macro)
宏是源程序中一段有獨(dú)立功能的語(yǔ)句序列,它只要在程序中定義一次,就可以多次調(diào)用。調(diào)用時(shí)用一條宏指令語(yǔ)句即可。匯編器將一個(gè)宏展開為它所表示的語(yǔ)句,然后匯編這些新的語(yǔ)句。微機(jī)原理及接口技術(shù)1.
宏定義、宏調(diào)用和宏展開
宏定義由一對(duì)偽指令MACRO與ENDM實(shí)現(xiàn)。宏指令名MACRO[形式參數(shù)表]…;宏體
ENDM
宏指令名在同一源文件中不能重復(fù)出現(xiàn),宏體可以是任意語(yǔ)句序列,可選的形式參數(shù)表以逗號(hào)分隔的若干參數(shù)名。微機(jī)原理及接口技術(shù)
宏調(diào)用:
宏指令名
[實(shí)在參數(shù)表]
其中,實(shí)在參數(shù)表的類型和順序應(yīng)與宏定義時(shí)的形式參數(shù)表一致。當(dāng)源程序被匯編時(shí),MASM用相應(yīng)的宏體取代每個(gè)宏調(diào)用,并用實(shí)在參數(shù)按位置替換宏定義中的形式參數(shù),稱為宏展開。微機(jī)原理及接口技術(shù)例:定義一個(gè)宏ADD2,將兩個(gè)數(shù)相加,和存入AX。宏定義宏體ADD2MACRONBR1,NBR2MOVAX,NBR1ADDAX,NBR2ENDM宏調(diào)用:ADD2VALUE1,VALUE2宏展開:MOVAX,VALUE1ADDAX,VALUE2微機(jī)原理及接口技術(shù)例:宏定義。宏定義宏體SHIFTMACROX,Y,ZMOVCL,XYZ,CLENDM宏調(diào)用:SHIFT4,SHL,AX宏展開:MOVCL,4SHLAX,CL微機(jī)原理及接口技術(shù)2.
跟宏有關(guān)的偽指令
(1)LOCAL偽指令
LOCAL偽指令用來定義宏內(nèi)部局部符號(hào)。
LOCAL符號(hào)名,…,符號(hào)名
LOCAL偽指令必須是宏體內(nèi)的第一條語(yǔ)句。宏展開時(shí),MASM將源文件中的所有局部符號(hào)統(tǒng)一按出現(xiàn)次序替換為唯一的標(biāo)識(shí)符(??0000~??FFFF)。21微機(jī)原理及接口技術(shù)例:宏定義。ABSOLMACROOPERLOCALNEXT CMPOPER,0JGENEXTNEGOPERNEXT:…ENDM宏調(diào)用:
…ABSOLVAR…ABSOLBX宏展開第一個(gè)宏:+
CMPVAR,0+
JGE??0000+
NEGVAR+??0000:第二個(gè)宏:+
CMPBX,0+
JGE??0001+
NEGBX+??0001:微機(jī)原理及接口技術(shù)
(2)EXITM偽指令
EXITM偽指令用來立即終止宏展開,通常與條件匯編結(jié)合使用。
MASM忽略EXITM與ENDM之間的所有語(yǔ)句。例:宏定義。BytesmacroCountifCounteq0dbCountexitmendifdbCountdup(0)endm宏調(diào)用Bytes0;時(shí)在匯編時(shí)被展開為db0Bytes10;時(shí)在匯編時(shí)被展開為db10dup(0)微機(jī)原理及接口技術(shù)七、其它1.NAME
格式:NAME
程序名功能:為源程序目標(biāo)模塊賦名字,放在
程序開始。微機(jī)原理及接口技術(shù)2.LABEL格式:名稱LABEL
類型屬性功能:給已定義的變量或標(biāo)號(hào)另取一個(gè)名字,重新定義類型屬性。名稱為L(zhǎng)ABEL語(yǔ)句下一行所使用的語(yǔ)句中的變量或標(biāo)號(hào)取的別名。微機(jī)原理及接口技術(shù)(1)與變量連用例1:DATBLABELBYTEDATWDW3031H,3032HMOVAL,DATB[0]MOVBX,DATW[1]DATB為DATW的別名31H→AL3032H→BX注意:
變量DATB類型為字節(jié),變量DATW類型為字。微機(jī)原理及接口技術(shù)例2:堆棧段中常用LABELSTACKSEGMENTSTACK‘STACK’DW100DUP(?)TOPLABELWORDSTACKENDS100個(gè)字堆棧TOP為棧頂?shù)拿C(jī)原理及接口技術(shù)(2)與標(biāo)號(hào)連用例:
DISFLABELFARDISN:MOVAX,[SI]DISF為DISN的別名DISF的屬性為FAR微機(jī)原理及接口技術(shù)第三節(jié)匯編語(yǔ)言程序設(shè)計(jì)及舉例概述順序結(jié)構(gòu)分支程序循環(huán)程序字符串處理程序碼轉(zhuǎn)換程序DOS系統(tǒng)功能調(diào)用子程序設(shè)計(jì)微機(jī)原理及接口技術(shù)一、概述1.編寫步驟
(1)分析問題,抽象出數(shù)學(xué)模型
(2)確定算法
(3)畫程序流程圖工作框判斷調(diào)子程序
(4)分配內(nèi)存工作單元和寄存器。
(5)按程序流程圖編制程序。
(6)上機(jī)調(diào)試,排錯(cuò)。起始框終止框微機(jī)原理及接口技術(shù)2.程序質(zhì)量判斷
(1)執(zhí)行時(shí)間
(2)占用內(nèi)存空間
(3)語(yǔ)句行數(shù)3.程序結(jié)構(gòu)順序分支循環(huán)子程序返回微機(jī)原理及接口技術(shù)二、順序結(jié)構(gòu)例4-1:P.105,兩個(gè)8位無(wú)符號(hào)數(shù)x和y,分別存放在BUF和BUF+1單元中,計(jì)算x-y的值,結(jié)果存回BUF單元。微機(jī)原理及接口技術(shù)SSEG SEGMENT STACK‘STACK’STA DW 100DUP(?)SSEG ENDSDSEG SEGMENT‘DATA’BUF DB 82,60DSEG ENDSCSEG SEGMENT‘CODE’ ASSUME CS:CSEG,DS:DSEG,SS:SSEGSTART: … … …CSEG ENDS
END START堆棧段源程序結(jié)束代碼段數(shù)據(jù)段微機(jī)原理及接口技術(shù)說明:(2)數(shù)據(jù)段DSEG SEGMENTBUF DB 82,60DSEG ENDS(1)堆棧段SSEG SEGMENT STACK ‘STACK’STA DW 100DUP(?)SSEG ENDS數(shù)據(jù)段定義減數(shù)被減數(shù)微機(jī)原理及接口技術(shù)(3)碼段CSEG SEGMENT ASSUMECS:CSEG,DS:DSEG,SS:SSEG … … …CSEG ENDSASSUME語(yǔ)句指明了哪些段是碼段、數(shù)據(jù)段、堆棧段和附加段微機(jī)原理及接口技術(shù)
1)
給DS賦值START:MOV AX,DSEG MOV DS,AX2)減法
MOV AL,BUFSUB AL,BUF+1MOVBUF,AL3)返回DOSMOVAH,4CHINT21H返回微機(jī)原理及接口技術(shù)三、分支程序例4-2:字節(jié)變量CHAR1放小寫字母字符,化為大寫。大轉(zhuǎn)NEXT與a的ASCII碼比較小轉(zhuǎn)NEXT與z的ASCII碼比較CODE1SEGMENT MOVAL,CHAR1CMPAL,’a’JBNEXTCMPAL,’z’JANEXT SUBCHAR1,20HNEXT:…CODE1ENDS化為大寫微機(jī)原理及接口技術(shù)(1)數(shù)據(jù)段DW定義的字變量XDW定義的字變量YDATA1 SEGMENTX DW ?Y DW ?DATA1 ENDS例4-3:P.106計(jì)算函數(shù)值Y,變量X和Y是帶符號(hào)的字變量。微機(jī)原理及接口技術(shù)(2)代碼段X>10建立條件<00<=X<=10存結(jié)果 MOVAX,X CMPAX,0
JGECASE23 ADDAX,10 JMPRESULTCASE23: CMPAX,10
JG CASE3 MOVBX,30 IMULBX JMPRESULTCASE3: SUBAX,190RESULT:MOVY,AX …返回22微機(jī)原理及接口技術(shù)四、循環(huán)程序組成:
(1)初始化(2)循環(huán)體(3)修改參數(shù)(4)循環(huán)控制結(jié)構(gòu)形式:微機(jī)原理及接口技術(shù)1.用計(jì)數(shù)器控制循環(huán)
(1)減1計(jì)數(shù)器
LOOP/LOOPE/LOOPNE(2)加1計(jì)數(shù)器微機(jī)原理及接口技術(shù)
例4-4:P.109分類統(tǒng)計(jì)字?jǐn)?shù)組data中正數(shù)負(fù)數(shù)零的個(gè)數(shù),放至指定的存儲(chǔ)單元,數(shù)組元素個(gè)數(shù)存在其第一個(gè)字中。存正數(shù)個(gè)數(shù)11個(gè)字,第一個(gè)為長(zhǎng)度存零個(gè)數(shù)(1)數(shù)據(jù)段DATA1SEGMENTDATADW10,X1,…X10POSITIONDW0NEGATIVEDW0ZERODW0DATA1ENDS存負(fù)數(shù)個(gè)數(shù)微機(jī)原理及接口技術(shù)CODE1SEGMENTASSUMECS:CODE1,DS:DATA1START
:MOV AX,DATA1MOV DS,AXXOR AX,AXXOR BX,BXXOR DX,DX MOV CX,DATA JCXZ SAVE LEA SI,data+2清零CX:減1計(jì)數(shù)器(2)代碼段CX=0結(jié)束SI地址指針(3)
循環(huán)初始化給DS賦值微機(jī)原理及接口技術(shù)AGAIN: CMPWORDPTR[SI],0
JL LOWER
JE EQUAL INC AX
JMP LOOP1LOWER: INC BX
JMP LOOP1EQUAL: INC DXLOOP1: ADD SI,2
LOOP AGAIN(4)循環(huán)體與0比較0,轉(zhuǎn)EQUAL負(fù),轉(zhuǎn)LOWER(5)
修改參數(shù),指針加2(6)循環(huán)控制CX-1→CX為0結(jié)束正,AX+1負(fù),BX+10,DX+1微機(jī)原理及接口技術(shù)SAVE:
MOV POSITION,AX
MOV NEGATION,BX MOV ZERO,DX MOV AX,4C00H INT 21HCODE1 ENDS END START存?zhèn)€數(shù)微機(jī)原理及接口技術(shù)
2.條件控制循環(huán)循環(huán)次數(shù)不確定,根據(jù)循環(huán)過程中某個(gè)特定條件是否滿足來控制循環(huán)繼續(xù)還是退出。例4-5:P.111計(jì)算數(shù)組score的平均整數(shù),并存入內(nèi)存字變量Average中,數(shù)組以-1為結(jié)束標(biāo)志。微機(jī)原理及接口技術(shù)存平均數(shù)數(shù)據(jù),以-1結(jié)束(1)數(shù)據(jù)段DATA1SEGMENTdataDW90,95,…,50,-1Average DW0DATA1ENDS23微機(jī)原理及接口技術(shù)CODE1SEGMENTASSUMECS:CODE1,DS:DATA1START
:MOV AX,DATA1MOV DS,AXXOR AX,AXXOR DX,DXXOR CX,CX LEA SI,data清零(2)代碼段SI地址指針(3)
循環(huán)初始化微機(jī)原理及接口技術(shù)
AGAIN:MOV BX,[SI] CMPBX,0
JL over ADDAX,BXADCDX,0 INC CXADDSI,2
JMP AGAINover:
JCXZexit
DIVCXMOVAverage,AXexit:MOV AX,4C00HINT 21HCODE1ENDSENDSTART(4)循環(huán)體負(fù),轉(zhuǎn)over退出循環(huán)(5)
修改參數(shù),指針加2(6)循環(huán),無(wú)條件跳個(gè)數(shù)為0,退出求和(DXAX)個(gè)數(shù)加1計(jì)算平均值,保存微機(jī)原理及接口技術(shù)
3.用開關(guān)變量控制循環(huán)一個(gè)循環(huán)體中有兩個(gè)循環(huán)支路,設(shè)一個(gè)開關(guān)變量,控制進(jìn)入哪個(gè)循環(huán)支路。例4-6:數(shù)據(jù)采集系統(tǒng)。采到的前5個(gè)數(shù)用一種函數(shù)(FUN1)處理,開關(guān)=0。采到的后7個(gè)數(shù)用另一種函數(shù)(FUN2)處理,開關(guān)=1。微機(jī)原理及接口技術(shù)說明:(1)數(shù)據(jù):datasegmentbufferdw5,5,5,5,5,5,5,5,5,5,5,5blockdw12dup(?)count1equ5count2equ7dataends12個(gè)數(shù)據(jù)個(gè)數(shù)存結(jié)果微機(jī)原理及接口技術(shù)(2)初始化:
源數(shù)據(jù)指針buffer→bx
處理后數(shù)據(jù)指針block→sicount1+1,count2+1→cx
開關(guān)0→dx(3)循環(huán)主體:
判開關(guān)量dx=0?dx=0callfun15個(gè)數(shù)據(jù)處理完后dx=1,cx=count2+1dx=1callfun2
每處理完一個(gè)數(shù),修改指針bx,si微機(jī)原理及接口技術(shù)
mov dx,0 mov cx,count1+1 lea bx,buffer
lea si,blockagain:mov ax,[bx] cmp dx,0 jne anoth call fun1 loop next mov dx,1 mov cx,count2+1 jmp againnext:
mov [si],ax inc bx inc bx inc si inc si jmp againanoth:call fun2 loop next(1)循環(huán)初始化開關(guān)dx=0cx為計(jì)數(shù)器bx源指針si目的指針(2)循環(huán)主體開關(guān)量轉(zhuǎn)為1為0,函數(shù)1處理處理后保存(3)修改參數(shù)函數(shù)2處理(4)循環(huán)控制開關(guān)不為0轉(zhuǎn)anoth微機(jī)原理及接口技術(shù)3.多重循環(huán)
一個(gè)循環(huán)中包含另一個(gè)循環(huán),稱多重循環(huán)。如:二維數(shù)組處理,二重循環(huán)。注意:
(1)各重循環(huán)的初始控制條件及實(shí)現(xiàn)。
(2)內(nèi)循環(huán)可嵌套在外循環(huán)中,也可幾個(gè)內(nèi)循環(huán)并列在外循環(huán)中,可從內(nèi)循環(huán)跳到外循環(huán),不可從外循環(huán)中直接跳進(jìn)內(nèi)循環(huán)。
(3)要防止出現(xiàn)死循環(huán)。
微機(jī)原理及接口技術(shù)例4-7:延時(shí)程序,多重循環(huán)實(shí)現(xiàn)軟件延時(shí)。DELAY:MOVDX,3FFH
TIME:MOVAX,0FFFFH
TIME1:NOPDECAXJNETIME1DECDX
JNETIMERET
內(nèi)循環(huán)控制變量AX,初值=FFFFH
外循環(huán)控制變量DX,初值=3FFH返回微機(jī)原理及接口技術(shù)
子程序技術(shù)是解決重復(fù)性問題的設(shè)計(jì)方法,在匯編語(yǔ)言中又稱為過程。1.
子程序調(diào)用格式:CALL子程序名分近調(diào)用(NEAR)和遠(yuǎn)調(diào)用(FAR)。五、子程序設(shè)計(jì)微機(jī)原理及接口技術(shù)2.參數(shù)傳遞技術(shù)入口參數(shù)出口參數(shù)傳遞參數(shù)的方法:
寄存器存儲(chǔ)器堆棧微機(jī)原理及接口技術(shù)(1)寄存器傳送參數(shù)例4-8P.115統(tǒng)計(jì)字符串中相同字符的個(gè)數(shù),個(gè)數(shù)最多的字符存CMORE單元。
CL字符串長(zhǎng)度
AL當(dāng)前字符
BX當(dāng)前字符地址
DL當(dāng)前字符個(gè)數(shù)
DH重復(fù)字符最多個(gè)數(shù)
CALLCPP
子程序CPP統(tǒng)計(jì)當(dāng)前字符的重復(fù)次數(shù)放DL,當(dāng)前字符放AL。微機(jī)原理及接口技術(shù)主程序:LEA BX,CSTRN MOV CL,50 MOV DX,0 MOV AL,[BX] MOV CMORE,ALLP: MOV AL,[BX]
CALL CPP CMP DH,DL JNC NEXT MOV DH,DL MOV CMORE,ALNEXT:INC BX DEC CL JNZ LP 調(diào)統(tǒng)計(jì)重復(fù)字符數(shù)子程序BX:字符串首地址CL:字符串長(zhǎng)度DH:重復(fù)個(gè)數(shù)(最多)DL:重復(fù)個(gè)數(shù)(當(dāng)前)當(dāng)前字符個(gè)數(shù)多,保存AL:當(dāng)前字符修改參數(shù),控制循環(huán)微機(jī)原理及接口技術(shù)CPP
PROC XORDL,DL MOVCH,CLMOVSI,BX INC SILP1:CMPAL,[SI] JNZ NEXT1INC DLNEXT1:INC SIDEC CHJNZ LP1RETCPP ENDP統(tǒng)計(jì)當(dāng)前字符的重復(fù)次數(shù)AL:當(dāng)前字符SI:串地址CH:串長(zhǎng)度DL:重復(fù)次數(shù)重復(fù)次數(shù)清0判重復(fù)?重復(fù)計(jì)數(shù)DL修改參數(shù)長(zhǎng)度、地址送CH、SI未完繼續(xù)子程序微機(jī)原理及接口技術(shù)(2)存儲(chǔ)單元傳送參數(shù)數(shù)據(jù)多,放在存儲(chǔ)器中,傳遞存儲(chǔ)地址。例4-9P.116統(tǒng)計(jì)字符串中數(shù)字字符、字母、其它字符的個(gè)數(shù),存BX、CX、DI中,字符串首地址DS:DX(以字符0結(jié)束)。微機(jī)原理及接口技術(shù)COUNTPROC PUSHAX PUSH SIXORBX,BX XOR CX,CXXOR DI,DI MOV SI,DXagain:MOV AL,[SI]INC SICMP AL,0JE overCMP AL,’0’JL otherCMP AL,’9’保護(hù)現(xiàn)場(chǎng)<‘0’轉(zhuǎn)other數(shù)字字符計(jì)數(shù)清0其它字符JG nextINC BXJMP againnext:CALL UPPERCMP AL,’A’JL otherCMP AL,’Z’JG otherINC CXJMP againother:INC DIJMP againover:POP SIPOP AXRETCOUNTENDP<‘A’>’Z’other字母恢復(fù)現(xiàn)場(chǎng)字符0結(jié)束24微機(jī)原理及接口技術(shù)(3)堆棧傳送參數(shù)數(shù)據(jù)定義:
STRINGDB‘……’LENGTH1DW$-STRINGKEYDB‘x’主程序中將數(shù)據(jù)壓入堆棧。
LEABX,STRINGLEACX,LENGTH1PUSHBX;壓入?yún)?shù)1
PUSHCX;壓入?yún)?shù)2CALLDELCHAR子程序中取出堆棧中數(shù)據(jù)。STRHSTRLLENGHLENGL返回H返回LSP高微機(jī)原理及接口技術(shù)子程序:DELCHAR:PUSHBPSTRHSTRLLENGHLENGL返回H返回LBP(SP)BPHBPLSPSPSPMOVBP,SPMOVSI,[BP+4];取LENGTH1地址MOVDI,[BP+6];取STRING地址
……POPBPRET4再?gòu)棾?個(gè)字節(jié)微機(jī)原理及接口技術(shù)例4-10:P.117,從一個(gè)字符串中刪去一個(gè)字符。說明:字符串要?jiǎng)h的字符長(zhǎng)度(1)數(shù)據(jù)段
DATASEGMENT
STRING
DB‘…’
LENGTH1DW$-STRINGKEYDB‘x’DATAENDS微機(jī)原理及接口技術(shù)(2)參數(shù)傳送采用堆棧,主程序中:
LEABX,TRINGLEACX,LENGTH1PUSHBX;壓入STRING地址
PUSHCX;壓入LENGTH1地址
MOVAL,KEYCALLDELCHAR;調(diào)用刪字符子程序微機(jī)原理及接口技術(shù)(3)子程序DELCHAR:刪一個(gè)字符
1)取出參數(shù)DELCHARPROCPUSHBPMOVBP,SPPUSHSIPUSHDIPUSHCXCLDMOVSI,[BP+4];取LENGTH1地址→SIMOVCX,[SI];得到長(zhǎng)度
MOVDI,[BP+6];取STRING地址→DI微機(jī)原理及接口技術(shù)
2)刪去一個(gè)字符
REPNESCASBJNEDONEMOVSI,[BP+4]DECWORDPTR[SI]MOVSI,DIDECDIREPMOVSB掃描字符串找到刪字符未找到退出SI串長(zhǎng)度地址串長(zhǎng)度減1依次向前移DIDISIxSTRING微機(jī)原理及接口技術(shù)
3)子程序返回
DONE:POPCXPOPDIPOPSIPOPBPRET4DELCHARENDPCODEENDSENDSTART返回25微機(jī)原理及接口技術(shù)六、碼轉(zhuǎn)換程序十六進(jìn)制、二進(jìn)制、BCD碼、ASCII碼轉(zhuǎn)換方法:(1)算術(shù)和邏輯運(yùn)算指令,軟件實(shí)現(xiàn);(2)查表指令;(3)硬件譯碼。微機(jī)原理及接口技術(shù)1.十六進(jìn)制→ASCII例4-11:有一個(gè)二進(jìn)制數(shù)碼串,把每一個(gè)字節(jié)中的二進(jìn)制轉(zhuǎn)換為兩位十六進(jìn)制數(shù)的ASCII碼,高四位的ASCII碼放在地址高的單元。串中的第一個(gè)字節(jié)為位串的長(zhǎng)度。微機(jī)原理及接口技術(shù)說明:
(1)十六進(jìn)制:0~9A~FASCII碼:30H~39H41H~46H
對(duì)0~9,加上30H
對(duì)A~F,加上‘A’-10(2)地址指針:源(十六進(jìn)制)bx
目的(ASCII)si(3)cx=L1=2,每次循環(huán)轉(zhuǎn)換一個(gè)字節(jié)兩位十六進(jìn)制數(shù):低位與高位拆開:1)AND AL,0FH2)MOV CL,4SHR AL,CL低四位原高四位→低四位微機(jī)原理及接口技術(shù)
數(shù)據(jù)段data segmentl1 dw 2string db 14h,9Ahl2 dw ?buffer db 2*2dup(?)data ends串長(zhǎng)度l1放串長(zhǎng)度l2十六進(jìn)制數(shù)放ASCII微機(jī)原理及接口技術(shù)code segmentassumecs:code,ds:data,es:datastart:movax,datamovds,axmoves,axmovcx,l1leabx,stringleasi,buffermovax,cxsalcx,1movl2,cxmovcx,ax存ASCII碼串長(zhǎng)度源串長(zhǎng)度→CXbx:源地址指針si:目的地址指針
代碼段微機(jī)原理及接口技術(shù)again:moval,[bx]movdl,alandal,0fh
callchangemoval,dlpushcxmovcl,4shral,clpopcx
callchangeincbx
loopagainmovah,4chint21h取十六進(jìn)制數(shù)低四位→ASCII高四位→ASCII微機(jī)原理及接口技術(shù)一位十六進(jìn)制數(shù)ASCII碼子程序:
change proc cmpal,10 jladd_0
addal,’A’-’0’-10add_0: addal,’0’ mov[si],al incsi retchange endpcode ends endstart0~9轉(zhuǎn)add_0A~F0~9微機(jī)原理及接口技術(shù)2.ASCII→壓縮BCD說明:(1)對(duì)非壓縮BCD碼,只要將ASCII的高4位屏蔽(AND)即可。
(2)對(duì)壓縮BCD碼,要處理兩個(gè)ASCII碼,先為低位BCD碼,后為高位BCD碼,組合起來。
微機(jī)原理及接口技術(shù)datasegmentl2dw4bufferdb34h,33h,38h,39hl1dw?stringdb2dup(?)dataendsstacksegmentstack’stack’db100dup(?)stackendsASCII存BCD碼微機(jī)原理及接口技術(shù)
codesegment
assumecs:code,ds:data,es:data,ss:stackstart
:movax,datamovds,axmoves,ax微機(jī)原理及接口技術(shù)
movcx,l2shrcx,1movl1,cxleabx,bufferleasi,stringagain:moval,[bx]
andal,0fhmovdl,alincbxmoval,[bx]
andal,0fhBCD碼區(qū)長(zhǎng)度取ASCII碼化為BCD碼取下一個(gè)ASCII碼化為BCD碼微機(jī)原理及接口技術(shù)
pushcxmovcl,4shlal,cl
popcx
oral,dl
mov[si],al
incbxincsiloopagainmovah,4ch
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年苦蕎原料搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年維生素溶液搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年礦石烘干機(jī)公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年版中國(guó)天然靛藍(lán)行業(yè)產(chǎn)量預(yù)測(cè)及發(fā)展可行性研究報(bào)告
- 2024-2030年氯唑靈公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 教育設(shè)備租賃協(xié)議模板
- 機(jī)械課程設(shè)計(jì)拔叉
- 春節(jié)的由來課程設(shè)計(jì)
- 2024年版高端裝備制造業(yè)出口銷售合同
- 社區(qū)工作人員倡議書范文
- 借用資質(zhì)簽合同模板
- 退休員工返聘審批表
- 鋁錠購(gòu)銷合同鋁錠銷售合同2024年
- Unit 7 Careers Writing Workshop 申請(qǐng)信講解 教學(xué)設(shè)計(jì)-2023-2024學(xué)年高中英語(yǔ)北師大版2019 選擇性必修第三冊(cè)
- 醫(yī)藥行業(yè)藥品配送優(yōu)化服務(wù)方案
- 廣東省深圳市紅嶺中學(xué)2023-2024學(xué)年七年級(jí)上學(xué)期分班考試語(yǔ)文試題(解析版)
- 2024年新蘇教版五年級(jí)上冊(cè)科學(xué)全冊(cè)知識(shí)點(diǎn)
- Byk助劑說明手冊(cè)
- 建筑施工企業(yè)增值稅留抵稅額形成原因及對(duì)策建議
- 2024新外研版初一上英語(yǔ)單詞默寫表
- 2024年安全員-C證考試題庫(kù)及答案(1000題)
評(píng)論
0/150
提交評(píng)論