




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第三章 匯編語(yǔ)言程序格式 匯編語(yǔ)言程序由執(zhí)行性語(yǔ)句和說(shuō)明性語(yǔ)句構(gòu)成。第二章介紹的可完成相應(yīng)功能的指令即是執(zhí)行性語(yǔ)句,是與機(jī)器指令一一對(duì)應(yīng)的指令。而說(shuō)明性語(yǔ)句只是為匯編程序提供必要的信息的指令,又稱為偽指令,它與機(jī)器指令無(wú)關(guān)。 本章主要讓讀者掌握匯編語(yǔ)言程序的基本格式,并通過(guò)上機(jī)實(shí)踐,熟悉匯編語(yǔ)言程序的開(kāi)發(fā)過(guò)程及其調(diào)試方法。 本章重點(diǎn):偽指令、匯編語(yǔ)言程序結(jié)構(gòu)、上機(jī)過(guò)程第一節(jié) 偽指令 偽指令是指示如何匯編、連接,不直接產(chǎn)生機(jī)器指令。一、段定義偽指令 格式:段名 SEGMENT 定位類型 組合類型 類別 : 段名 ENDS 功能:定義一個(gè)以SEGMENT偽指令開(kāi)始、以ENDS偽指令結(jié)束的段。各項(xiàng)用
2、空格分隔,加方括號(hào)表示可選項(xiàng)。1段名:用戶定義的,表示該段的段首地址,含段地址和偏移地址兩個(gè)屬性。段開(kāi)始和段結(jié)束的段名必須相同。 段名作為操作數(shù)用于指令中時(shí),表示立即數(shù)的段地址。2定位類型:定義段起始地址的類型,用于連接時(shí)。 1)BYTE (字節(jié)起點(diǎn)):表示本段以任意邊界開(kāi)始。 2)WORD (字起點(diǎn)):表示本段以偶數(shù)地址邊界開(kāi)始。 3)PARA (節(jié)起點(diǎn)):表示本段以節(jié)邊界開(kāi)始(10H為一節(jié))。默認(rèn) 4)PAGE (頁(yè)起點(diǎn)):表示本段以頁(yè)邊界開(kāi)始(100H為一頁(yè))。3組合類型:為連接程序提供本段與其他段的組合關(guān)系。 1)NONE(不連接):表示本段與其它段無(wú)連接關(guān)系,依次存放。 2)PUBL
3、IC(公用段):表示本段與同名的其它段相鄰連接,組成一個(gè)共同段。 3)STACK(堆棧段):表示本段為堆棧段的一部分。 4)AT 表達(dá)式(定段地址):表示本段的段地址由表達(dá)式的值得到。不能指定CS。 5)COMMON(共同段):表示本段與同名的其它段相覆蓋,長(zhǎng)度由最長(zhǎng)段長(zhǎng)度定。 6)MEMORY:表示本段地址高于其它同名段。如多個(gè)段選該類型,則第一個(gè)有效。4類別:用戶定義的、用單引號(hào)括起來(lái)的字符串表示的合法的名稱。連接時(shí)同類名的段(段名未必相同)連續(xù)存放,但仍然是不同的段。類別名相同的各個(gè)段在連接時(shí),先出現(xiàn)的在前,后出現(xiàn)的在后,每段都有自己的起始地址。 一個(gè)匯編語(yǔ)言源程序可以有幾個(gè)段,每段由各
4、自的段定義偽指令包含起來(lái),以將數(shù)據(jù)和代碼明確地分開(kāi)。 在代碼段(CS)開(kāi)始執(zhí)行指令前,必有一條偽指令A(yù)SSUME以明確段和段寄存器間的關(guān)系,但并不初始化段寄存器的值。 格式: ASSUME CS:代碼段名,DS:數(shù)據(jù)段名,ES:附加段名,SS:堆棧段名 其中每個(gè)段名是各段定義時(shí)的段名。 例如:DATA SEGMENT ;定義數(shù)據(jù)段 : DATA ENDS CODE SEGMENT ;定義代碼段 ASSUME CS:CODE,DS:DATA : CODE ENDS 其中ASSUME語(yǔ)句建立了CODE段名與CS寄存器、DATA段名與DS寄存器的對(duì)應(yīng)關(guān)系。二、程序結(jié)束偽指令 格式: END 標(biāo)號(hào) 功
5、能:源程序中最后一個(gè)語(yǔ)句,標(biāo)志整個(gè)程序的結(jié)束,匯編程序遇到該指令即停止匯編。 主程序結(jié)束:END 標(biāo)號(hào) ;該標(biāo)號(hào)為程序開(kāi)始的起始地址。 子程序結(jié)束:END 例如:END START ;START是該程序的第一條可執(zhí)行指令的標(biāo)號(hào) 告訴匯編程序用此地址的值來(lái)初始化CS:IP。 注意:這條指令必不可少,但不能放在程序的中間,否則,END語(yǔ)句后的語(yǔ)句就不能被匯編為目標(biāo)代碼了。三、變量定義偽指令:為變量分配內(nèi)存空間,并賦予初始值。 格式: 變量名 助記符 操作數(shù),操作數(shù) DB:定義字節(jié),每個(gè)操作數(shù)占一字節(jié)的內(nèi)存單元。 DW:定義字,每個(gè)操作數(shù)占一個(gè)字的內(nèi)存單元。 DD:定義雙字,每個(gè)操作數(shù)占二個(gè)字的內(nèi)存
6、單元。 DQ:定義四字,每個(gè)操作數(shù)占四個(gè)字的內(nèi)存單元。 DT:定義十字節(jié),每操作數(shù)占十字節(jié)的內(nèi)存單元。 (Byte、Word、Dword、Qword、Tbyte) 其中變量名、助記符和操作數(shù)之間以空格隔開(kāi),且 中內(nèi)容為可選項(xiàng)。下面介紹各個(gè)部分的作用。1)變量名是用戶定義的一個(gè)符號(hào)地址,表示操作數(shù)的首地址,它有三個(gè)屬性:段地址、偏移地址和數(shù)據(jù)類型。數(shù)據(jù)類型根據(jù)助記符的不同而不同。2)DW可用于存偏移地址,如IP值;DD可用于存邏輯地址值,如CS:IP值;DT可用于存壓縮的BCD碼。3)操作數(shù)可為常數(shù)、常數(shù)表達(dá)式、地址表達(dá)式、字符串、“?”和帶DUP復(fù)制操作符的表達(dá)式等。操作數(shù)為多個(gè)值時(shí),以逗號(hào)間
7、隔開(kāi)。每個(gè)值根據(jù)助記符的不同而占不同的內(nèi)存單元個(gè)數(shù)。 例: S1 DB 1,2,2*3 ADD2 DW S1 S1占三個(gè)字節(jié)的內(nèi)存單元,其內(nèi)容按順序分別為1、2、6。 ADD2占一個(gè)字的內(nèi)存單元,其內(nèi)容為變量S1的偏移地址。 例: S2 DB ABCD,? S2占五個(gè)字節(jié)的內(nèi)存單元,其內(nèi)容按順序?yàn)?1H、42H、43H、44H和保留一個(gè)字節(jié)的內(nèi)存單元而沒(méi)有對(duì)其初始化。(字符串是以ASCII碼保存) DUP復(fù)制操作符,用于復(fù)制某個(gè)(些)操作數(shù)。 格式:次數(shù) DUP (OPR,OPR); 其中OPR 為操作數(shù),次數(shù)為復(fù)制次數(shù)。DUP還可嵌套。 例: DW 20 DUP (?) ;用于堆棧段中 閱讀
8、書(shū)中例3-1:變量連續(xù)定義,則連續(xù)存放。 4)變量數(shù)據(jù)類型不匹配時(shí),可用PTR來(lái)暫時(shí)修改屬性。 格式:類型 PTR 變量+ 常數(shù)表達(dá)式。 其中類型有:BYTE、WORD和DWORD。 例: S1 DB 10H,20H,30H S2 DW 30H,40H,50H : MOV AX,S1 MOV BL,S2 在第一條指令中,由于S1是用DB定義的,所以其每個(gè)操作數(shù)占一個(gè)字節(jié)單元,而AX是16位的寄存器,數(shù)據(jù)類型不匹配。在第二條指令中,S2中是16位操作數(shù),與8位的BL寄存器的數(shù)據(jù)類型也不匹配。所以,這兩條指令應(yīng)修改為: MOV AX,WORD PTR S1 MOV BL,BYTE PTR S2 這
9、兩條指令執(zhí)行后:(AX)= 2010H,(BL)= 30H5)在數(shù)據(jù)定義前,還可用LABEL定義,以給其定義另一個(gè)名字和屬性(DB或DW或DD)。 格式:變量名 LABEL DB/DW/DD 例: ARR1 LABEL DB ARR2 DW 1,10,100 這組操作數(shù)有兩個(gè)名字,如果采用ARR1來(lái)取數(shù),則其數(shù)據(jù)類型為8位;如果采用ARR2來(lái)取數(shù),則其數(shù)據(jù)類型為16位。四、符號(hào)定義偽指令:為表達(dá)式賦予符號(hào)名,定義后可使用符號(hào)名來(lái)代替表達(dá)式。 格式:符號(hào)名 EQU 表達(dá)式 (不允許重復(fù)定義) 符號(hào)名 = 常數(shù)表達(dá)式 (允許重復(fù)定義) EQU中的表達(dá)式可為常數(shù)、常數(shù)表達(dá)式、地址表達(dá)式、字符串和指令
10、助記符等。而“=”中的表達(dá)式只能是常數(shù)表達(dá)式。 常用:mess DB Hello! Long1 EQU $-mess ;得mess的長(zhǎng)度6 其中“$”是匯編地址計(jì)數(shù)器,表示當(dāng)前的偏移地址。五、定位偽指令:將匯編地址計(jì)數(shù)器的值設(shè)置成常數(shù)表達(dá)式的值 匯編程序?qū)⒃闯绦騾R編為目標(biāo)程序時(shí),每遇到一個(gè)新段就為該段分配一個(gè)初值為0的匯編地址計(jì)數(shù)器,再對(duì)語(yǔ)句進(jìn)行匯編。匯編時(shí),對(duì)需要分配存儲(chǔ)單元的語(yǔ)句,匯編地址計(jì)數(shù)器根據(jù)該語(yǔ)句目標(biāo)代碼的長(zhǎng)度增加值。匯編地址計(jì)數(shù)器的符號(hào)為“$”。 格式: ORG 常數(shù)表達(dá)式 常用: ORG 100H ;.COM文件中使用第二節(jié) 匯編語(yǔ)言程序結(jié)構(gòu) 匯編語(yǔ)言是用助記符表示機(jī)器指令的操
11、作碼,用變量代替操作數(shù)的存放地址,是一種符號(hào)化的機(jī)器語(yǔ)言。用匯編語(yǔ)言編寫的程序稱為匯編語(yǔ)言源程序,又簡(jiǎn)稱為匯編語(yǔ)言程序。一、源程序的一般結(jié)構(gòu) 匯編語(yǔ)言源程序一般由幾個(gè)段組成,其中必不可少的是代碼段,如果程序需要使用數(shù)據(jù)存儲(chǔ)區(qū),則還要定義數(shù)據(jù)段,必要時(shí)還要定義堆棧段、附加數(shù)據(jù)段。段之間的順序可以隨意安排,通常數(shù)據(jù)段在前,代碼段在后。下面我們以一個(gè)完整的匯編語(yǔ)言源程序?qū)嵗齺?lái)說(shuō)明匯編語(yǔ)言程序的結(jié)構(gòu)和有關(guān)規(guī)定。 例:求從1開(kāi)始的連續(xù)50個(gè)奇數(shù)的和,并將累加和存放到變量SUM中。DATA SEGMENT ;數(shù)據(jù)段定義 SUM DW ? ;變量定義DATA ENDS ;數(shù)據(jù)段結(jié)束STA1 SEGMENT
12、STACK ;堆棧段定義 DW 100 DUP(?) STA1 ENDS ;堆棧段結(jié)束CODE SEGMENT ;代碼段定義 ASSUME DS:DATA,CS:CODE,SS:STA1 ;段寄存器與段名的對(duì)應(yīng) START: MOV AX,DATA ;數(shù)據(jù)段寄存器的初始化 MOV DS,AX MOV CX,50 ;計(jì)數(shù)值50送CX MOV AX,0 ;初始化累加器AX為0 MOV BX,1 ;初始奇數(shù)值1送BX NEXT: ADD AX,BX ;相加和保存在AX中 ADD BX,2 ;得下一奇數(shù)值 DEC CX ;計(jì)數(shù)器減一 JNZ NEXT ;(CX)0則轉(zhuǎn)NEXT處執(zhí)行 MOV SUM,A
13、X ;將累加和送SUM中保存 MOV AX,4C00H ;結(jié)束程序返回操作系統(tǒng) INT 21H CODE ENDS ;代碼段結(jié)束 END START ;源程序結(jié)束1)定義了3個(gè)段:數(shù)據(jù)段中定義變量,堆棧段中留空間,代碼段中是可執(zhí)行語(yǔ)句。每個(gè)段的內(nèi)容由各自的段定義包含起來(lái)。2)堆棧段定義時(shí),用組合類型STACK告訴匯編程序:這是堆棧段。這樣可不需在程序中用指令對(duì)堆棧段寄存器和堆棧棧頂指針寄存器進(jìn)行初始化。 程序較小時(shí)可不定義堆棧段,則操作系統(tǒng)會(huì)指定一個(gè)段作為堆棧段,但程序連接時(shí)LINK會(huì)產(chǎn)生一條警告信息: Warning:no stack segment 可忽略3)代碼段中ASSUME語(yǔ)句將段寄
14、存器與段名對(duì)應(yīng),告訴匯編程序哪個(gè)段對(duì)應(yīng)哪個(gè)段寄存器。 START和NEXT是代碼段的符號(hào)地址,稱為標(biāo)號(hào),以冒號(hào)結(jié)尾。 END START中START標(biāo)號(hào)是程序的起始地址,告訴匯編程序用此地址的值來(lái)初始化CS:IP。4)段定義開(kāi)始、段定義結(jié)束時(shí)的段名、ASSUME語(yǔ)句中與段寄存器對(duì)應(yīng)的段名以及段寄存器初始化時(shí)的段名都必須完全相同,否則將出錯(cuò)。二、段寄存器的初始化和程序結(jié)束上例中,程序一開(kāi)始有兩條指令用于數(shù)據(jù)段寄存器的初始化: MOV AX,DATA MOV DS,AX程序結(jié)束時(shí)也有兩條指令用于結(jié)束程序返回操作系統(tǒng): MOV AX,4C00H INT 21H ASSUME偽指令指出了段與段寄存器之
15、間的對(duì)應(yīng)關(guān)系,但并未將段地址值裝入對(duì)應(yīng)的段寄存器,因此,必須在程序中裝入段寄存器的初值。從第一章可知,CPU中有四個(gè)段寄存器:CS、DS、ES和SS。那么,這四個(gè)段寄存器是怎樣進(jìn)行初始化的?一)段寄存器的初始化1.DS、ES:必須在程序中經(jīng)過(guò)寄存器用可執(zhí)行指令來(lái)實(shí)現(xiàn)。 MOV AX,DS_SEG_name ;段名是常數(shù),不能直接送段寄存器 MOV DS,AX ES也類似: MOV AX, ES_SEG_name MOV ES,AX 2CS:IP:是由系統(tǒng)自動(dòng)將程序結(jié)束偽指令(END 標(biāo)號(hào))中的標(biāo)號(hào)地址值送CS:IP,該標(biāo)號(hào)地址必須是主程序的起始地址。 所以,編寫一個(gè)完整的程序時(shí),必須在程序開(kāi)始
16、時(shí)第一條可執(zhí)行指令前給標(biāo)號(hào),在程序結(jié)束偽指令END后加上這個(gè)標(biāo)號(hào)。3SS:SP的初始化方法有下列兩種: 1)在堆棧段的段定義時(shí)使用組合類型STACK,則LINK時(shí)自動(dòng)將SS:SP指向棧底+1的地址(可使棧底地址單元不空閑)。若未定義堆棧段,則由系統(tǒng)指定堆棧,SS:SP也由系統(tǒng)自動(dòng)設(shè)置。2)在堆棧段的段定義時(shí)未使用了組合類型STACK,則必須在程序中用指令來(lái)初始化SS:SP,類似于DS的初始化: STACK SEGMENT ;無(wú)STACK組合類型 STA DW 20 DUP(?) TOP EQU $-STA ;TOP=40,但堆棧的地址是從039之間 STACK ENDS CODE SEGMEN
17、T ASSUME CS:CODE,SS:STACK START: : MOV AX,STACK ;SS:SP的初始化,STACK為堆棧段段名 MOV SS,AX MOV SP,TOP ;(SP)=棧底+1 : CODE ENDS END START二)程序結(jié)束返回操作系統(tǒng)的方法: 一個(gè)完整的程序必須正常結(jié)束并返回操作系統(tǒng)。1)用DOS功能調(diào)用:MOV AX,4C00H INT 21H 2)將主程序設(shè)為主過(guò)程,屬性為FAR: CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE START:PUSH DS ;程序開(kāi)始時(shí) SUB AX,AX PUSH AX : RET
18、 ;程序結(jié)束時(shí) MAIN ENDP CODE ENDS END START3)用程序正常退出的軟件中斷: INT 20H注:系統(tǒng)的軟件中斷和系統(tǒng)功能調(diào)用中還提供了其他的一些程序結(jié)束的方法,可參考附錄3和附錄4。 格式:名字 操作項(xiàng) 操作數(shù) ;注釋 帶方括號(hào)的項(xiàng)是可選項(xiàng),項(xiàng)與項(xiàng)之間用空格隔開(kāi)。1名字:用戶定義的,有特定意義的字符序列。 有標(biāo)號(hào)名、變量名、過(guò)程名、段名或符號(hào)名等。標(biāo)號(hào)名是代碼段中可執(zhí)行性語(yǔ)句的符號(hào)地址,是用冒號(hào)作定界符。1)由英文字母(不分大小寫)、數(shù)字09、專用字符?、_、$組成,長(zhǎng)度最多為31個(gè)字符。2)不能用數(shù)字做首字符,而“”在名字中則只能做首字符。3)一個(gè)程序中不能有同名
19、的名字。4)不能使用指令的助記符、寄存器名、運(yùn)算符等保留字作名字。5)包含三種屬性:段地址、偏移地址及類型(標(biāo)號(hào)名和過(guò)程名的類型有NEAR和FAR;變量名類型有BYTE、WORD等字節(jié)數(shù))。 例:ADD、EQU、3TITLE、A*B、A#B、BP、FILE等均是無(wú)效名字。 注意:多數(shù)可執(zhí)行性語(yǔ)句中可以不出現(xiàn)名字(標(biāo)號(hào)名),只在將被轉(zhuǎn)移到的地址前加名字。多數(shù)說(shuō)明性語(yǔ)句中一般都出現(xiàn)名字(變量名),以方便取出變量中的值。三、語(yǔ)句結(jié)構(gòu)2.操作項(xiàng):指令、偽指令、宏指令的助記符,說(shuō)明這條語(yǔ)句的功能。是規(guī)定的。3操作數(shù):由常數(shù)、字符串、寄存器名、標(biāo)號(hào)名、變量名或表達(dá)式組成。 指令中有一個(gè)、兩個(gè)或無(wú)操作數(shù)的三
20、種格式。 偽操作可有多個(gè)操作數(shù),多個(gè)操作數(shù)之間用逗號(hào)隔開(kāi)。表達(dá)式:數(shù)字表達(dá)式根據(jù)優(yōu)先規(guī)則計(jì)算得到一個(gè)常數(shù)值。 地址表達(dá)式計(jì)算得到一個(gè)地址或一個(gè)常數(shù)值。 地址表達(dá)式有: “變量/標(biāo)號(hào)+常數(shù)”得地址 “變量/標(biāo)號(hào)-另一變量/標(biāo)號(hào)”得地址間的距離長(zhǎng)度 組成表達(dá)式的操作符有算術(shù)、邏輯、關(guān)系、數(shù)值返回、屬性修改操作符:1)算術(shù)操作符:+、-、*、/(得商)和MOD(得余數(shù))例:把變量名為BLOCK的字?jǐn)?shù)組的第8個(gè)字送到DX寄存器的指令。 MOV DX,BLOCK+(8-1)*22)邏輯操作符:AND、OR、XOR、NOT 只能用于數(shù)字表達(dá)式中,是位操作,操作結(jié)果應(yīng)為一個(gè)常數(shù),以得到一個(gè)操作數(shù)。 注意與邏
21、輯指令的區(qū)別:邏輯操作符是用于得到一條指令的一個(gè)操作數(shù),且邏輯操作符的兩個(gè)數(shù)是位于操作符的兩邊。邏輯指令的兩個(gè)操作數(shù)都是位于助記符的后面。 例:MOV DX,PORT_VAL AND OFEH ;PORT_VAL為端口號(hào)3)關(guān)系操作符:EQ(等于)、NE(不等)、LT(小于)、GT(大于)、LE(小于等于)、GE(大于等于) 用于比較兩個(gè)數(shù)的大小,兩個(gè)數(shù)必須都為常數(shù)或同一段內(nèi)的兩偏移地址,操作結(jié)果為邏輯值:真則為0ffffh;假則為0。 例:MOV BX,(PORT LT 5)AND 20)OR(PORT GE5)AND 30) 匯編后:若PORT5 則得 MOV BX,30 4)數(shù)值返回操作
22、符:TYPE、LENGTH、SIZE、OFFSET、SEG TYPE 變量:返回字節(jié)數(shù)類型(DB:1、DW:2、DD:4、DQ:8) TYPE 標(biāo)號(hào):返回標(biāo)號(hào)類型(near為-1、far為-2) LENGTH 變量:變量用了DUP,返回DUP前的次數(shù);否則恒為1 SIZE 變量:為L(zhǎng)ENGTH*TYPE,返回有DUP變量的字節(jié)數(shù)。 OFFSET 變量/標(biāo)號(hào):返回變量/標(biāo)號(hào)的偏移地址值。 SEG 變量/標(biāo)號(hào):返回變量/標(biāo)號(hào)的段地址值。 例: MOV BX,OFFSET TABLE LEA BX,TABLE 這兩條指令功能相同,都是取TABLE的偏移地址送BX。 例: MOV DX,SEG TAB
23、LE MOV DS,DX 這兩條指令也可用于初始化數(shù)據(jù)段寄存器DS。其中,TABLE應(yīng)是數(shù)據(jù)段中已定義了的一個(gè)變量。5)屬性操作符:PTR、段前綴、SHORT PTR是屬性修改操作符,用于暫時(shí)給已定義的符號(hào)地址賦予另一種類型屬性,或用于指出指令中無(wú)法確定的操作數(shù)類型。 格式:TYPE PTR 符號(hào)地址 符號(hào)地址:變量-TYPE可為BYTE、WORD或DWORD 標(biāo)號(hào)-TYPE可為NEAR或FAR 例: MOV BYTE PTR BX,10 MOV WORD PTR BX,10 第一條指令將10作為一個(gè)字節(jié)送到DS:BX所指向的字節(jié)單元,第二條指令將10作為一個(gè)字送到DS:BX所指向的字單元。
24、例: JMP FAR PTR ADD1 該指令將程序無(wú)條件轉(zhuǎn)移到另一個(gè)段中符號(hào)地址為ADD1的地址處去執(zhí)行,是段間直接轉(zhuǎn)移方式。 段前綴是用于忽略符號(hào)地址的默認(rèn)段屬性。 格式:段寄存器:地址表達(dá)式 段名:地址表達(dá)式 例: MOV AX,BX MOV AX,ES:BX 第一條指令是將DS:BX所指向的字單元的內(nèi)容送到AX中,第二條指令是將ES:BX所指向的字單元的內(nèi)容送到AX中。 SHORT是指示段內(nèi)直接短轉(zhuǎn)移的操作符,其轉(zhuǎn)移地址范圍為-128+127,用于無(wú)條件轉(zhuǎn)移語(yǔ)句JMP中。 格式:SHORT 地址表達(dá)式 例: JMP SHORT NEXT 注意:以上操作符的計(jì)算是由匯編程序來(lái)完成,我們主
25、要要掌握書(shū)寫表達(dá)式的正確方法。4注釋:以分號(hào)開(kāi)始,用于說(shuō)明程序中一條或幾條指令的功能。內(nèi)容多時(shí),可用一行來(lái)說(shuō)明一段程序的功能。 是可選項(xiàng),只是使程序容易被讀懂。 標(biāo)號(hào) : 變量 間隔符 空格 操作數(shù)間 , 注釋前 ;第三節(jié) 匯編語(yǔ)言程序的上機(jī)過(guò)程區(qū)別 匯編語(yǔ)言程序:用戶使用匯編語(yǔ)言編寫的源程序。 匯編程序:把匯編語(yǔ)言源程序轉(zhuǎn)換成用二進(jìn)制代碼表示 的目標(biāo)文件(.OBJ)的系統(tǒng)文件。 目標(biāo)文件必須經(jīng)過(guò)連接程序把目標(biāo)文件與庫(kù)文件或其他目標(biāo)文件連接在一起形成可執(zhí)行文件(.EXE),才可在機(jī)器上運(yùn)行。分步上機(jī)過(guò)程:1)用文本編輯器(Edit)建立擴(kuò)展名為.ASM的源程序;2)用匯編程序(MASM)匯編源程序,生成目標(biāo)文件(.OBJ);3)用連接程序(LINK)把目標(biāo)文件與庫(kù)文件(.LIB)或其他目標(biāo)文件連接在一起形成可執(zhí)行文件(.EXE);4)在DOS操作系統(tǒng)下直接執(zhí)行。 -反復(fù)調(diào)試
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省東臺(tái)市第一中學(xué)2024-2025學(xué)年高三上學(xué)期暑期自主學(xué)習(xí)情況調(diào)查語(yǔ)文試題
- 基于CBI的體育專業(yè)英語(yǔ)教學(xué)方法應(yīng)用研究
- 保險(xiǎn)產(chǎn)品的基本分類試題及答案
- 定向備考CFA的試題及答案
- 廣東省陽(yáng)江市部分學(xué)校2024-2025學(xué)年高二上學(xué)期期末聯(lián)考?xì)v史試題(解析版)
- CFA考試??疾呗耘c真正題目分析及試題及答案
- 2024年特許金融分析師考試了解考試流程試題及答案
- 2024年CFA考試題及答案解析
- 2024年特許金融分析師考試關(guān)鍵考點(diǎn)試題及答案
- 2024年CFA考試上手快捷試題及答案
- 2025年安徽國(guó)際商務(wù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案1套
- 2025年皖西衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)參考答案
- 2025年浙江機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)含答案
- 綜采工作面質(zhì)量驗(yàn)收員技能理論考試題庫(kù)150題(含答案)
- 2024年中國(guó)電信集團(tuán)有限公司招聘考試真題
- 勞務(wù)外包服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 《中醫(yī)體重管理臨床指南》
- 醫(yī)院危化品知識(shí)培訓(xùn)課件
- 兒童營(yíng)養(yǎng)及營(yíng)養(yǎng)性疾病
- 2020-2025年中國(guó)洗護(hù)發(fā)產(chǎn)品市場(chǎng)運(yùn)行態(tài)勢(shì)及行業(yè)發(fā)展前景預(yù)測(cè)報(bào)告
- 《渡槽安全評(píng)價(jià)導(dǎo)則》
評(píng)論
0/150
提交評(píng)論