版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第4章 匯編語言程序設(shè)計(jì)mov ax,12hcall displayJmp 1234h1主要內(nèi)容:匯編語言的格式匯編語言語句格式偽指令匯編語言程序設(shè)計(jì)2回顧: 機(jī)器語言二進(jìn)制數(shù)形式的指令和數(shù)據(jù)。 B0 64 是什么意思?這就是機(jī)器語言。既不直觀,又不易理解和記憶. MOV AL,64H ;很容易記憶理解,這就是助記符。 助記符用便于記憶的英語單詞表示的指令操作碼。它反映了指令的功能和主要特征,便于人們理解和記憶。4.1 匯編語言的格式及相關(guān)基本概念3 操作數(shù)可能放在存儲(chǔ)器中,這就涉及操作數(shù)的地址。程序中遇到轉(zhuǎn)移指令或調(diào)用指令,也需要知道轉(zhuǎn)移地址,若采用具體地址就很不方便,一旦有錯(cuò),改動(dòng)也很麻煩
2、。于是人們采用標(biāo)號(hào)或符號(hào)來代替地址,例: LP1: mov ax,VAR loop LP1相關(guān)概念: 匯編語言指令助記符,符號(hào)地址,標(biāo)號(hào),偽指令等語言元素的集合以及這些元素使用的規(guī)則。 用匯編語言編寫的程序叫匯編語言源程序。指令除了操作碼以外,還有一個(gè)操作數(shù)問題。4匯編程序源程序的編譯程序匯編程序匯編語言源程序機(jī)器語言目標(biāo)程序 匯編源程序需翻譯成機(jī)器語言,變成可執(zhí)行文件,機(jī)器才能執(zhí)行,這個(gè)翻譯過程叫匯編。高級(jí)語言中稱該過程為“解釋”或“編譯”。執(zhí)行翻譯的程序稱為“匯編程序”。5匯編語言程序設(shè)計(jì)與執(zhí)行過程輸入?yún)R編語言源程序 源文件 .ASM匯編(編譯) 目標(biāo)文件 .OBJ鏈接 可執(zhí)行文件 .EX
3、E調(diào)試 最終程序6匯編語言的工作環(huán)境及上機(jī)步驟 硬件環(huán)境 目前8086匯編語言程序一般多在IBM PC/XT及其兼容機(jī)上運(yùn)行,要求機(jī)器具備基本配置即可以了。 軟件環(huán)境 主要是指支持匯編語言程序運(yùn)行和幫助建立匯編語言源程序的一些軟件,主要包括:(1)DOS操作系統(tǒng) (2)編輯程序EDIT.COM(3)宏匯編程序MASM.EXE(4)連接程序LINK.EXE(5)調(diào)試程序DEBUG.COM 7運(yùn)行匯編語言程序的步驟 (1)用編輯程序EDIT.COM建立擴(kuò)展名為.ASM的匯編語言源程序文件; (2)用匯編程序MASM.EXE將匯編語言源程序文件匯編成用機(jī)器碼表示的目標(biāo)程序文件,其擴(kuò)展名為.OBJ;
4、(3)若在匯編過程中出現(xiàn)語法錯(cuò)誤,根據(jù)錯(cuò)誤信息提示(如位置、類型、說明),用編輯軟件重新調(diào)入源程序進(jìn)行修改。無錯(cuò)誤時(shí)采用連接程序LINK.EXE把目標(biāo)文件轉(zhuǎn)化成可執(zhí)行文件,其擴(kuò)展名為.EXE; (4)生成可執(zhí)行文件后,在DOS命令狀態(tài)下直接鍵入文件名就可執(zhí)行該文件。8匯編語言程序運(yùn)行實(shí)例程序要求:從鍵盤輸入10個(gè)字符,然后以與鍵入相反的順序?qū)?0個(gè)字符輸出到顯示屏幕上。設(shè)定源程序名為STR.ASM。第一步:用EDIT建立匯編語言源程序 在DOS狀態(tài)下,調(diào)用EDIT編輯程序建立文件名為STR.ASM的匯編源程序。 其屏幕顯示如下圖: 910第二步:用MASM匯編生成目標(biāo)文件源程序文件建立完畢后,
5、調(diào)用宏匯編程序MASM對(duì)STR.ASM進(jìn)行匯編,結(jié)果如下圖所示:11第三步: 用LINK進(jìn)行連接生成可執(zhí)行文件 匯編完畢程序正確,則可調(diào)用LINK進(jìn)行連接,生成可執(zhí)行文件STR.EXE,過程如下圖所示。12 第四步: 程序的運(yùn)行 在DOS狀態(tài)下,直接鍵入可執(zhí)行的程序文件名STR,然后從鍵盤輸入10個(gè)字符,并將其倒序排列輸出,過程如下圖所示。 13匯編語言源程序的格式 匯編語言源程序通常由一個(gè)或幾個(gè)程序模塊組成,每個(gè)模塊一般由三個(gè)邏輯段組成: 數(shù)據(jù)段存放數(shù)據(jù)、變量 堆棧段堆棧區(qū)域 代碼段存放程序指令14一個(gè)基本的匯編語言程序框架如下: stack SEGMENT PARA stack DB 10
6、0 DUP(stack) stack ENDS data SEGMENT data ENDS code SEGMENT ASSUME CS:code, DS:data, ES:data start: MOV AX, data MOV DS, AX MOV ES, AX MOV AL, 4CH INT 21H code ENDS END start 堆棧段數(shù)據(jù)段代碼段154.2 匯編語言的語句與格式匯編語言的語句有兩種:指令性語句由8086指令助記符構(gòu)成的語句指示性語句由偽指令構(gòu)成的語句指令性語句的格式為: 標(biāo)號(hào): 指令助記符 目的操作數(shù),源操作數(shù) ;注釋 指示性語句的格式為: 名字 偽指令 操
7、作數(shù)1,操作數(shù)2,操作數(shù)n ;注釋 注:各部分之間至少要用一個(gè)空格作為分隔符。16指令性語句由CPU執(zhí)行,每一條指令性語句都有一條機(jī)器碼指令與其對(duì)應(yīng);指示性語句由匯編程序執(zhí)行。它指出匯編程序應(yīng)如何對(duì)源程序進(jìn)行匯編,如何定義變量、分配存儲(chǔ)單元以及指示程序開始和結(jié)束等。指示性語句無機(jī)器碼指令與其相對(duì)應(yīng)。 指令性語句匯編時(shí)生成機(jī)器碼; 指示性語句匯編時(shí)不生成機(jī)器碼。17語句的構(gòu)成元素:標(biāo)號(hào)指令的符號(hào)地址,用來代表指令在存儲(chǔ)器中的地址。只能出現(xiàn)在指令性語句中,標(biāo)號(hào)后應(yīng)加上冒號(hào)。名字段、過程、變量的名字,用來代表它們?cè)诖鎯?chǔ)器中的地址。只能出現(xiàn)在指示性語句中,名字后不加冒號(hào)。指令助記符8086助記符、偽指
8、令操作數(shù)即指令的操作對(duì)象對(duì)指令性語句0,1,2個(gè)對(duì)指示性語句根據(jù)需要而定操作數(shù)之間以逗號(hào)分隔操作數(shù)可以是:寄存器、存儲(chǔ)單元、常數(shù)或表達(dá)式 例如:AX,DI+BX+10,200,16*8+TABLE,等等18注釋以分號(hào)開頭,可放在指令后,也可單獨(dú)一行。 注意注解的寫法。要寫指令(段)在程序中的作用,而不要寫指令的操作。 例如:以下為同一條指令寫的注釋 1)MOV CX,100 ;傳送100到CX 2)MOV CX,100 ;循環(huán)計(jì)數(shù)器置初值 顯然,第二種寫法要比第一種寫法要好。 19匯編語言的一個(gè)實(shí)例: hello.asm data SEGMENTHello DB Hello, world!,0
9、DH,0AH,$data ENDSprog SEGMENT ASSUME CS:prog,DS:datastart: MOV AX,data MOV DS,AX LEA DX,hello;取字符串首地址 MOV AH,9 INT 21H;顯示字符串 MOV AH,4CH INT 21H;退回DOSprog ENDS END start名字標(biāo)號(hào)20 4.3 數(shù)據(jù)項(xiàng)與表達(dá)式數(shù)據(jù)項(xiàng)包括常量、變量、標(biāo)號(hào)及表達(dá)式。1.常量二進(jìn)制數(shù),以B結(jié)尾。如01001101B。十進(jìn)制數(shù),如85。十六進(jìn)制數(shù),以H結(jié)尾。第1個(gè)數(shù)字為A-F時(shí),前面應(yīng)加0,如0F160H。(也可不寫)字符串:用引號(hào)括起來的1個(gè)或多個(gè)字符。如
10、ERROR!, a,匯編時(shí)被翻譯成對(duì)應(yīng)的ASCII碼45H,52H,52H,4FH,52H,21H和61H。21有三個(gè)屬性: 段地址:即標(biāo)號(hào)所在段的段地址; 偏移量:標(biāo)號(hào)所代表存儲(chǔ)單元的段內(nèi)偏移地址; 類 型:NEAR或FAR: NEAR表示標(biāo)號(hào)所在語句與轉(zhuǎn)移指令/ 調(diào)用指令在同一碼段內(nèi),跳轉(zhuǎn)時(shí) 只需改變IP即可。 FAR表示標(biāo)號(hào)所在語句與轉(zhuǎn)移指令/ 調(diào)用指令不在同一代碼段內(nèi)。 若沒有對(duì)類型進(jìn)行說明,默認(rèn)為NEAR。標(biāo)號(hào)通常作為轉(zhuǎn)移指令或CALL指令的轉(zhuǎn)移地址。2.標(biāo)號(hào)指令所在內(nèi)存單元的符號(hào)地址22 變量即內(nèi)存中的存儲(chǔ)單元或數(shù)據(jù)區(qū)。 變量名是存儲(chǔ)單元(數(shù)據(jù)區(qū))的符號(hào)地 址或名字。變量也有三個(gè)屬
11、性:段地址變量所在段的段地址(Segment)偏移量變量單元地址與段首地址之間的位移量。類 型有BYTE、WORD和DWORD三種。變量在程序中作為存儲(chǔ)器操作數(shù)被引用。3.變量23變量與標(biāo)號(hào)的聯(lián)系與區(qū)別:聯(lián)系:變量與標(biāo)號(hào)都是存儲(chǔ)單元的符號(hào)地址。區(qū)別:變量所對(duì)應(yīng)的存儲(chǔ)單元中存放的是數(shù)據(jù)。24變量與標(biāo)號(hào)的三種屬性區(qū)別變量:段值(SEGMENT):變量單元所在段的段地址偏移量(OFFSET):變量單元與段地址的偏移量類型(TYPE):字節(jié)(BYTE),字 (WORD),雙字 DOUBLE WORD)標(biāo)號(hào):段值(SEGMENT):標(biāo)號(hào)所對(duì)應(yīng)存儲(chǔ)單元的符號(hào)地址所在 段的段地址偏移量(OFFSET):標(biāo)號(hào)
12、所對(duì)應(yīng)存儲(chǔ)單元的符號(hào)地址與段 地址的偏移量類型(TYPE):NEAR(段內(nèi):轉(zhuǎn)移到此標(biāo)號(hào)的語句只改變IP,不改變CS)FAR (段間:轉(zhuǎn)移到此標(biāo)號(hào)的語句不只改變IP,還改變CS) 25標(biāo)號(hào)和變量名的使用規(guī)則組成:A-Z(不分大小寫), 0-9, ? . _ $不能以數(shù)字開頭,句號(hào)(.)只能作為首字符長度小于31個(gè)字符不能與保留字(指令助記符、偽指令、預(yù)定義符號(hào)等)重名不能重復(fù)定義例如: 正確的:LP1, AGAIN, NEXT, _GO, OK_1 錯(cuò)誤的:4M, LOOP, AAA, #HELP, +ONE264.表達(dá)式表達(dá)式是常數(shù)、寄存器、標(biāo)號(hào)、變量與運(yùn)算符的組合。有數(shù)字表達(dá)式和地址表達(dá)式
13、兩種。匯編時(shí)按優(yōu)先規(guī)則對(duì)表達(dá)式進(jìn)行計(jì)算,計(jì)算出具體的數(shù)值或地址。運(yùn)行時(shí)不能改變。表達(dá)式中的運(yùn)算符有5類:算術(shù)、邏輯、關(guān)系、分析、合成。27用于數(shù)字表達(dá)式,例: MOV AX,4*1024匯編后的形式為: MOV AX,4096 用于地址表達(dá)式,例: LEA SI,TAB+3若TAB的偏移地址為1000H,則匯編后的形式為: LEA SI,1003H 1)算術(shù)運(yùn)算符 +、-、*、/,MOD28邏輯運(yùn)算符只能用于數(shù)字表達(dá)式中。 例:MOVCL,36H AND 0FH 經(jīng)匯編后:MOV CL,06H注意,不要把邏輯運(yùn)算符與邏輯運(yùn)算指令混淆: 例:AND AX, 3FC0H AND FF00H 匯編后
14、源操作數(shù)被翻譯為:3F00H,所以上述指令與AND AX, 3F00H等價(jià)。2)邏輯運(yùn)算符 AND、OR、XOR、NOT29關(guān)系運(yùn)算的結(jié)果是一個(gè)邏輯值:真或假 關(guān)系為真,結(jié)果為全1 關(guān)系為假,結(jié)果為全0例:MOV BX,PORT_VAL LT 5 若PORT的值小于5,則匯編后為: MOV BX,FFFFH 否則匯編后為: MOV BX,03)關(guān)系運(yùn)算符EQ、NE、LT、GT、LE、GE304.3 指示性語句(偽指令) 在匯編語言中,偽指令是給匯編程序的命令,在匯編過程中由匯編程序進(jìn)行處理。 IBM宏匯編中有以下幾種指示性語句(1)符號(hào)定義語句(2)數(shù)據(jù)定義語句(3)段定義語句(4)過程定義語
15、句(5)結(jié)束語句 314.3.1 符號(hào)定義偽指令 符號(hào)定義偽指令的用途是給一個(gè)符號(hào)重新命名,或定義新的類型屬性等。這些符號(hào)可以包括匯編語言的變量名、標(biāo)號(hào)名、過程名、寄存器名以及指令助記符等。 常用的符號(hào)定義偽指令有EQU、PURGE。 1)EQU語法格式 符號(hào)名 EQU 數(shù)值表達(dá)式 符號(hào)名 EQU 功能:給符號(hào)定義一個(gè)數(shù)值或把符號(hào)定義成另一個(gè)字符串也可以說使EQU兩邊的項(xiàng)等效,可以互相代換。32例如:Number_1 EQU 2; Loop_count EQU 2*5+Number_1 COUNT EQU CX 注釋: 1)程序中使用符號(hào)常數(shù),而不使用具體數(shù)值,可大大提高程序的易讀性,而且使程
16、序易于修改。使用匯編語言編寫程序,通常應(yīng)遵循這一原則。 2)EQU右邊的項(xiàng)允許出現(xiàn)符號(hào),但該符號(hào)必須是已經(jīng)定義。 3)EQU語句在未解除之前,不能重新定義 332) “=” 號(hào)偽指令語法格式:符號(hào)名 = 數(shù)值表達(dá)式功能:其作用同EQU,但用=號(hào)定義的符號(hào)在同一個(gè)程序中可以重復(fù)定義,EQU不可。 例如: X=7 ;X EQU 7 正確 X=X+3 ;X EQU X+3 錯(cuò)誤 3) PURGE語法格式: PURGE 符號(hào)名功能:解除定義的符號(hào)。例如: PURGE X X EQU 5344.3.2 數(shù)據(jù)定義偽指令 用于定義變量,即內(nèi)存單元或數(shù)據(jù)區(qū)。數(shù)據(jù)定義偽指令的格式為:變量名 數(shù)據(jù)定義偽指令 操作
17、數(shù),操作數(shù),常用的數(shù)據(jù)定義偽指令有如下幾種: DB 定義字節(jié) DW 定義字 DD 定義雙字操作數(shù)可以是常數(shù)、變量或表達(dá)式35例1:DATA_B DB 10,5,10HDATA_W DW 100H,-4DATA_D DD FFFBH匯編后的內(nèi)存分配情況如右圖所示。05H10H00H01HFCHFFHFBHFFH00H00H0AHQDATA_BDATA_WDATA_D10510H100H-4FFFBH地址低高36例2:操作數(shù)可以是字符串,例如STR DBHELLO匯編后的情況如圖:STRHELLO注意下面兩個(gè)定義的不同之處:DBAB ;41H在低字節(jié),42H在高字節(jié)DW AB ;42H在低字節(jié),4
18、1H在高字節(jié)48H45H4CH4CH4FH37操作數(shù)?用來保留存儲(chǔ)空間,但不存入數(shù)據(jù).例3:ABC DB 0,1,2,3,4,OK,$ RSV DW ?,?,?,?,?,?,?,?復(fù)制操作符DUP:重復(fù)的數(shù)據(jù)可以使用復(fù)制操作符DUP,如上面RSV亦可寫成: RSV DW 8 DUP(?)38例:(1) ALL_ZERO DB 6DUP(0) ; 表示以ALL_ZERO為首地址的6個(gè)字節(jié)中存放 00H數(shù)據(jù),相當(dāng)于: ALL_ZERO DB 0,0,0,0,0,0 (2)BUFFER DB 5 DUP(1,2,4 DUP (3),2 DUP(1,0) 相當(dāng)于: 定義了1,2,3,3,3,3,1,0
19、,1,0的5份 拷貝39(4)分析運(yùn)算符是對(duì)存儲(chǔ)器地址進(jìn)行運(yùn)算的。有5個(gè):SEG(求段基值)、OFFSET(求偏移量)、TYPE(求變量類型)、LENGTH(求變量長度)和SIZE(求字節(jié)數(shù))SEG和OFFSET分別給出一個(gè)變量或標(biāo)號(hào)的段地址和偏移量。例:定義: SLOT DW 25 MOV AX,SLOT;從SLOT地址中取一個(gè)字送入AX MOV AX,SEG SLOT;將SLOT所在段的段地址送入AX MOV AX,OFFSET SLOT;將SLOT所在段的段內(nèi)偏移地 址送AX運(yùn)算符續(xù):40TYPE操作符返回一個(gè)表示存儲(chǔ)器操作數(shù)類型的數(shù)值。 語法格式:TYPE 變量/標(biāo)號(hào) 功能:返回變量或
20、標(biāo)號(hào)的類型屬性值(數(shù)字量)變量: BYTE WORD DWORD 返回值 1 2 4標(biāo)號(hào): NEAR FAR 返回值 -1 -2 例:定義 字類型 W_VAR MOV AL,TYPE W_VAR ;MOV AL,241LENGTH和SIZE操作符只應(yīng)用于數(shù)據(jù)存儲(chǔ)器操作數(shù)。(用DB/DW/DD等定義的操作數(shù))LENGTH返回一個(gè)與存儲(chǔ)器地址操作數(shù)相聯(lián)系的單元數(shù)。SIZE操作數(shù)返回一個(gè)為存儲(chǔ)器操作數(shù)分配的字節(jié)數(shù)。例:如果 MULT-WORD DW 50DUP(0),則 LENGTH(MULT-WORD)=50SIZE(MULT-WORD)=100注意:SIZE(X)=(LENGTH X)* (TY
21、PE X)42(5)合成運(yùn)算符可以用來建立和臨時(shí)改變變量或標(biāo)號(hào)的類型以及存儲(chǔ)器操作數(shù)的存儲(chǔ)單元類型,而忽略當(dāng)前的屬性,所以又稱為屬性修改運(yùn)算符。PTR 它作用于操作數(shù)時(shí),則忽略了操作數(shù)當(dāng)前的類型(字節(jié)或字)及屬性(NEAR或FAR),而給出一個(gè)臨時(shí)的類型或?qū)傩裕?語法格式:類型 PTR 表達(dá)式 功能:建立一個(gè)存儲(chǔ)器地址操作數(shù),它與其后的存儲(chǔ)器地址操作數(shù)有相同的段地址偏移量,但有不同的類型。43例1: 定義語句:SLOT DW 25,若我們想取出它的第一個(gè)字節(jié)內(nèi)容,則下列語句哪個(gè)正確: (1)MOV AL,SLOT (2)MOV AL,BYTE PTR SLOT 第2條正確。因?yàn)榇藭r(shí)SLOT已定
22、義成字單元。若我們想取出它的第一個(gè)字節(jié)內(nèi)容,則可用PTR對(duì)其作用,使它暫時(shí)改變?yōu)樽止?jié)單元。44例2:用PTR運(yùn)算符建立指令單元INCHES: CMP SUM,100 ;INCHES的類型是 NEARJMP INCHES ;段內(nèi)轉(zhuǎn)移MILES: EQU FAR PTR INCHES ;MILES的類型是FARJMP MILES ;段交叉轉(zhuǎn)移 45語法格式: 名字 EQU THIS 類型名功能:給當(dāng)前偏移地址指定一種類型屬性,同時(shí)定義了 一個(gè)名字。 d01 DW 2055h ;假設(shè)將要分配的存儲(chǔ)單元的 偏移地址=0008H b_var EQU THIS byte ;不占存儲(chǔ)空間 w_var DW
23、10 DUP(0) ;w_var仍然指向0008H說明:當(dāng)前偏移地址為0008H,“THIS”給它指定了一個(gè)類型屬性:BYTE,并借助EQU為它定義了名字:b_var。第三條語句使0008H單元具有了另一個(gè)名字和另一種屬性。對(duì)0008H單元,兩個(gè)名字、兩種屬性都可用。 THIS46THIS指令使用時(shí)的注意事項(xiàng): 要借助EQU偽指令。 與下一條偽指令合用。例: DATA_TABLES SEGMENT BUFFER1 DB 100 DUP(0) BBUFFER2 EQU THIS BYTE BUFFER2 DW 200 DUP(20H) DWBUFFER3 EQU THIS WORD BUFFER
24、3 DD 100 DUP(13)DATA_TABLES ENDS47運(yùn)算符的運(yùn)算優(yōu)先級(jí) 在計(jì)算具有多個(gè)運(yùn)算符的表達(dá)式值時(shí),按以下規(guī)則操作:l 優(yōu)先級(jí)高的先運(yùn)算,優(yōu)先級(jí)低的后運(yùn)算。l 當(dāng)優(yōu)先級(jí)相同時(shí),按表達(dá)式中從左到右的順序進(jìn)行運(yùn)算。l 使用括號(hào)可以提高表達(dá)式運(yùn)算的優(yōu)先級(jí)。例:利用THIS指令,建立FAR指令單元MILES EQU THIS FAR CMP SUM,100 JMP MILES 484.3.3 段定義偽指令 匯編語言程序是按段來組織程序和數(shù)據(jù)的。 和存儲(chǔ)器的物理段相對(duì)應(yīng),匯編語言程序中的段稱為邏輯段。匯編連接后被映射到物理段中。三類段:代碼(程序)、數(shù)據(jù)、堆棧段定義偽指令:SEGM
25、ENT、ENDS、ASSUME、ORG定義一個(gè)段的基本格式: 段名 SEGMENT 定位類型組合方式類別 段名 ENDS49這兩個(gè)偽指令總是成對(duì)出現(xiàn),二者前面的段名應(yīng)一致。SEGMENT說明了一個(gè)段的開始,ENDS說明了一個(gè)段的結(jié)束。對(duì)數(shù)據(jù)段和堆棧段,段中的語句一般是變量定義。對(duì)代碼段則是指令語句。如: data SEGMENT data ENDS SEGMENT和ENDS偽指令50SEGMENT語句后可以帶有可選參數(shù),用以規(guī)定邏輯段的其他一些屬性。1) 定位類型說明如何確定邏輯段的邊界。有四種:PARA(Paragraph): 邏輯段從一個(gè)節(jié) (16個(gè)字節(jié)) 的邊界開始。即段的起始地址應(yīng)能被
26、16整除, 或這說段起始物理地址應(yīng)為0H。默認(rèn)類型BYTE : 邏輯段從字節(jié)邊界開始,即段可以從任何地址開始。WORD : 邏輯段從字邊界開始。即段的起始地址必須是偶數(shù)。51 2) 組合類型說明不同模塊中同名段的組合方式。PUBLIC: 所有此類型的同名段組合成一個(gè)邏輯段,公用一個(gè)段地址,運(yùn)行時(shí)裝入同一個(gè)物理段中。COMMON : 所有此類型的同名段具有相同的起始地址(覆蓋),共享相同的存儲(chǔ)區(qū)域。AT : 按絕對(duì)地址定位,段地址就是表達(dá)式的值。STACK : 專用于說明堆棧段,組合方式同PUBLIC523) 類別用單引號(hào)括起來的字符串。所有同類別的段被安排在連續(xù)的存儲(chǔ)區(qū)域中。如:在模塊1中有段
27、定義: seg1 SEGMENT PARA STACK stack seg1 ENDS 在模塊2中有段定義: seg2 SEGMENT PARA STACK stack seg2 ENDS則連接時(shí)這兩個(gè)段被安排在一起。53ASSUME偽指令在代碼段中,還必須明確段和段寄存器的關(guān)系,這由ASSUME語句來指定。如 ASSUME CS:code, DS:data, ES:data 語句中的code和data為段名。 這個(gè)語句說明: 1. CS將指向名字為code的代碼段 2. DS和ES將指向名字為data的數(shù)據(jù)段54但要注意,ASSUME偽指令只是告知匯編程序有關(guān)段寄存器與段的關(guān)系,并沒有給段寄存器賦予實(shí)際的初值。故需用下面的語句 MOVAX,DATA MOVDS,AX MOVES,AX代碼段基地址不需要程序員裝入CS寄存器,而由OS負(fù)責(zé)裝入。55說明:使用ASSUME語句的意義 每當(dāng)MASM遇
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 八項(xiàng)規(guī)定手寫承諾書范本
- 手足口病防控培訓(xùn)課件
- 2025-2030全球等離子處理設(shè)備行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球醫(yī)用無紡布電極片行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球鋰電池用隔膜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國發(fā)泡奶精行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國油炸方便面生產(chǎn)線行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國超薄壁PET熱縮管行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球耐高溫耐火絕緣磚行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球衛(wèi)星鋰離子電池行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 房地產(chǎn)調(diào)控政策解讀
- 五年級(jí)數(shù)學(xué)(小數(shù)乘法)計(jì)算題專項(xiàng)練習(xí)及答案
- 產(chǎn)前診斷室護(hù)理工作總結(jié)
- 2024-2025學(xué)年八年級(jí)數(shù)學(xué)人教版上冊(cè)寒假作業(yè)(綜合復(fù)習(xí)能力提升篇)(含答案)
- 《AP內(nèi)容介紹》課件
- 醫(yī)生定期考核簡易程序述職報(bào)告范文(10篇)
- 市政工程人員績效考核制度
- 公園景區(qū)安全生產(chǎn)
- 安全創(chuàng)新創(chuàng)效
- 《中國糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- 初級(jí)創(chuàng)傷救治課件
評(píng)論
0/150
提交評(píng)論