匯編語(yǔ)言源程序_第1頁(yè)
匯編語(yǔ)言源程序_第2頁(yè)
匯編語(yǔ)言源程序_第3頁(yè)
匯編語(yǔ)言源程序_第4頁(yè)
匯編語(yǔ)言源程序_第5頁(yè)
已閱讀5頁(yè),還剩79頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、15.45.4 匯編語(yǔ)言源程序掌握:掌握:n匯編語(yǔ)言與匯編程序的概念;匯編語(yǔ)言與匯編程序的概念;n匯編語(yǔ)言程序設(shè)計(jì)過程;匯編語(yǔ)言程序設(shè)計(jì)過程;n匯編語(yǔ)言源程序的結(jié)構(gòu)框架;匯編語(yǔ)言源程序的結(jié)構(gòu)框架;n常用偽指令及基本常用偽指令及基本DOS功能模塊的應(yīng)用。功能模塊的應(yīng)用。2一、一、80X86新增指令特點(diǎn):n增加對(duì)增加對(duì)32位字長(zhǎng)操作的指令;位字長(zhǎng)操作的指令;n加強(qiáng)各類指令功能;加強(qiáng)各類指令功能;n增加了高級(jí)語(yǔ)言、控制保護(hù)、增加了高級(jí)語(yǔ)言、控制保護(hù)、Cache 管理管理等指令。等指令。3二、匯編語(yǔ)言及匯編程序n計(jì)算機(jī)語(yǔ)言:計(jì)算機(jī)語(yǔ)言:機(jī)器語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言面向機(jī)器面向機(jī)器

2、的語(yǔ)言的語(yǔ)言機(jī)器語(yǔ)言機(jī)器語(yǔ)言匯編語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言4匯編語(yǔ)言及匯編程序n匯編語(yǔ)言源程序匯編語(yǔ)言源程序 用助記符編寫的程序用助記符編寫的程序源程序的編譯程序源程序的編譯程序匯編程序匯編程序匯編語(yǔ)言匯編語(yǔ)言源程序源程序機(jī)器語(yǔ)言機(jī)器語(yǔ)言目標(biāo)程序目標(biāo)程序5匯編語(yǔ)言程序設(shè)計(jì)與執(zhí)行過程n輸入?yún)R編語(yǔ)言源程序輸入?yún)R編語(yǔ)言源程序 源文件源文件 .ASMn匯編(編譯)匯編(編譯) 目標(biāo)文件目標(biāo)文件 .OBJn鏈接鏈接 可執(zhí)行文件可執(zhí)行文件 .EXEn調(diào)試調(diào)試 最終程序最終程序6匯編語(yǔ)言的程序結(jié)構(gòu)n一個(gè)源程序必須用其編譯器能夠理解的語(yǔ)法進(jìn)一個(gè)源程序必須用其編譯器能夠理解的語(yǔ)法進(jìn)行編寫,這些語(yǔ)法是指語(yǔ)句和程

3、序結(jié)構(gòu)必須遵行編寫,這些語(yǔ)法是指語(yǔ)句和程序結(jié)構(gòu)必須遵循的規(guī)則。匯編語(yǔ)言也是如此。循的規(guī)則。匯編語(yǔ)言也是如此。n首先,通過以下可在首先,通過以下可在PC DOS環(huán)境下運(yùn)行的匯環(huán)境下運(yùn)行的匯編語(yǔ)言源程序?qū)嵗醪秸J(rèn)識(shí)標(biāo)準(zhǔn)的匯編語(yǔ)言編語(yǔ)言源程序?qū)嵗?,初步認(rèn)識(shí)標(biāo)準(zhǔn)的匯編語(yǔ)言源程序的框架結(jié)構(gòu),并通過它來了解匯編語(yǔ)言源程序的框架結(jié)構(gòu),并通過它來了解匯編語(yǔ)言的有關(guān)規(guī)定和格式。的有關(guān)規(guī)定和格式。7例:打印輸出字符串“THIS IS A SAMPLE PROGRAM”;SAMPLE PROGRAM DISPLAY MESSAGE;注釋行;注釋行STACK SEGMENT PARA STACK STACK;定義堆

4、棧段;定義堆棧段 DB 1024 DUP(0);在存儲(chǔ)器建立一個(gè)堆棧區(qū)在存儲(chǔ)器建立一個(gè)堆棧區(qū)STACK ENDS;段結(jié)束;段結(jié)束DATA SEGMENT ;定義數(shù)據(jù)段;定義數(shù)據(jù)段MESSAGE DBTHIS IS A SAMPLE PROGRAM;存放數(shù)據(jù);存放數(shù)據(jù) DB 0DH,0AH,$DATA ENDS;段結(jié)束;段結(jié)束CODE SEGMENT;代碼段開始;代碼段開始 ASSUME CS:CODE,DS:DATA,SS:STACK;將段名與段寄;將段名與段寄器聯(lián)系起來器聯(lián)系起來8START PROC FAR;將過程定義為遠(yuǎn)過程;將過程定義為遠(yuǎn)過程 PUSH DS MOV AX,0 PUSH

5、 AX MOV AX,DATA;建立數(shù)據(jù)段的可尋址性;建立數(shù)據(jù)段的可尋址性 MOV DS,AX;初始化;初始化DS LEA BX,MESSAGELOOP1: CMP BYTE PTRBX,$ JE LOOP2 MOV AH,5標(biāo)準(zhǔn)序,以便返回DOS操作系統(tǒng)9 MOV DL,BX INT 21H INC BX JMP LOOP1LOOP2: RETSTART ENDP;過程結(jié)束;過程結(jié)束CODE ENDS;代碼段結(jié)束;代碼段結(jié)束 END START;整個(gè)程序匯編結(jié)束;整個(gè)程序匯編結(jié)束10匯編源程序的特點(diǎn)n一、由若干邏輯段組成,各邏輯段都有一個(gè)段名,由一、由若干邏輯段組成,各邏輯段都有一個(gè)段名,由

6、段定義語(yǔ)句(偽指令)來定義和說明。通常只有代碼段定義語(yǔ)句(偽指令)來定義和說明。通常只有代碼段是必不可少的。數(shù)據(jù)段或附加段用來在內(nèi)存中建立段是必不可少的。數(shù)據(jù)段或附加段用來在內(nèi)存中建立一個(gè)適當(dāng)容量的工作區(qū)用以存放常量和變量。堆棧段一個(gè)適當(dāng)容量的工作區(qū)用以存放常量和變量。堆棧段則在內(nèi)存中建立一個(gè)堆棧區(qū),以便中斷和子程序調(diào)用則在內(nèi)存中建立一個(gè)堆棧區(qū),以便中斷和子程序調(diào)用及各模塊間傳遞參數(shù)時(shí)使用。及各模塊間傳遞參數(shù)時(shí)使用。n某些簡(jiǎn)單的程序并不一定需要數(shù)據(jù)段和堆棧段,但對(duì)某些簡(jiǎn)單的程序并不一定需要數(shù)據(jù)段和堆棧段,但對(duì)一些復(fù)雜的程序,堆棧段、數(shù)據(jù)段和代碼段都可以不一些復(fù)雜的程序,堆棧段、數(shù)據(jù)段和代碼段都

7、可以不止一個(gè)。止一個(gè)。n通常把數(shù)據(jù)段放在代碼段前面。通常把數(shù)據(jù)段放在代碼段前面。11匯編源程序的特點(diǎn)(續(xù))n二、在代碼段的起始處,用二、在代碼段的起始處,用ASSUME命令說明命令說明各個(gè)段寄存器與邏輯段的關(guān)系。并由用戶自己各個(gè)段寄存器與邏輯段的關(guān)系。并由用戶自己設(shè)置各段寄存器(除代碼段外)初值設(shè)置各段寄存器(除代碼段外)初值 ,以建,以建立這些邏輯段的可尋址性。立這些邏輯段的可尋址性。n三、每個(gè)邏輯段由若干行匯編語(yǔ)句組成,每行三、每個(gè)邏輯段由若干行匯編語(yǔ)句組成,每行只有一條語(yǔ)句且不能超過只有一條語(yǔ)句且不能超過128個(gè)字符,但一條個(gè)字符,但一條語(yǔ)句允許有后續(xù)行,最后均以加車作結(jié)束。整語(yǔ)句允許有

8、后續(xù)行,最后均以加車作結(jié)束。整個(gè)源程序必須以個(gè)源程序必須以END語(yǔ)句來結(jié)束,它通知匯編語(yǔ)句來結(jié)束,它通知匯編程序停止匯編。程序停止匯編。END后面的標(biāo)號(hào)后面的標(biāo)號(hào)START表示表示該程序執(zhí)行時(shí)的起始地址。該程序執(zhí)行時(shí)的起始地址。12匯編源程序的特點(diǎn)(續(xù))n四、每一條匯編語(yǔ)句最多由四、每一條匯編語(yǔ)句最多由4個(gè)字段組成,它個(gè)字段組成,它們均按照一定的規(guī)則分別寫在一條語(yǔ)句的們均按照一定的規(guī)則分別寫在一條語(yǔ)句的4個(gè)個(gè)區(qū)域,各區(qū)域之間用空格或區(qū)域,各區(qū)域之間用空格或TAB鍵隔開。鍵隔開。n五、每個(gè)源程序在代碼段中都必須含有返回到五、每個(gè)源程序在代碼段中都必須含有返回到DOS操作系統(tǒng)的指令語(yǔ)句,以保證程序

9、執(zhí)行完操作系統(tǒng)的指令語(yǔ)句,以保證程序執(zhí)行完畢后能自動(dòng)回到畢后能自動(dòng)回到DOS狀態(tài),以便繼續(xù)向計(jì)算機(jī)狀態(tài),以便繼續(xù)向計(jì)算機(jī)鍵入命令。鍵入命令。13源程序與PC DOS的接口n為保證用戶程序執(zhí)行完后自動(dòng)返回為保證用戶程序執(zhí)行完后自動(dòng)返回DOS,應(yīng)采,應(yīng)采取兩項(xiàng)措施:一是將用程序中的主程序定義為取兩項(xiàng)措施:一是將用程序中的主程序定義為FAR過程,其最后一條指令為過程,其最后一條指令為RET;二是在主;二是在主程序的開始處將程序的開始處將PSP所在段的段地址所在段的段地址DS(或(或ES)保存進(jìn)棧,然后再將一個(gè)全)保存進(jìn)棧,然后再將一個(gè)全0的字(的字(PSP的段內(nèi)偏移地址)壓入堆棧。的段內(nèi)偏移地址)壓

10、入堆棧。nPUSH DSnMOV AX,0nPUSH AX14源程序與PC DOS的接口(續(xù))n還有一種返回還有一種返回DOS的非標(biāo)準(zhǔn)方法:不定義主程的非標(biāo)準(zhǔn)方法:不定義主程序?yàn)樾驗(yàn)镕AR過程并去掉標(biāo)準(zhǔn)序部分,只在代碼段過程并去掉標(biāo)準(zhǔn)序部分,只在代碼段結(jié)束之前(即結(jié)束之前(即CODE ENDS之前)增加兩句:之前)增加兩句:nMOV AH,4CHnINT 21H15匯編語(yǔ)言的語(yǔ)句格式n語(yǔ)句是匯編語(yǔ)言源程序的基本組成單位,源程語(yǔ)句是匯編語(yǔ)言源程序的基本組成單位,源程序是一個(gè)語(yǔ)句序列。語(yǔ)句序列中的每個(gè)語(yǔ)句規(guī)序是一個(gè)語(yǔ)句序列。語(yǔ)句序列中的每個(gè)語(yǔ)句規(guī)定了一個(gè)基本操作要求,而語(yǔ)句序列則完成某定了一個(gè)基本

11、操作要求,而語(yǔ)句序列則完成某個(gè)特定的操作任務(wù)。個(gè)特定的操作任務(wù)。16語(yǔ)句的種類n在在80X86/Pentium匯編語(yǔ)言中,有三種基本匯編語(yǔ)言中,有三種基本語(yǔ)句:指令語(yǔ)句、偽指令語(yǔ)句和宏指令語(yǔ)句。語(yǔ)句:指令語(yǔ)句、偽指令語(yǔ)句和宏指令語(yǔ)句。n指令語(yǔ)句:指令語(yǔ)句: 對(duì)應(yīng)于對(duì)應(yīng)于CPU指令系統(tǒng)中的一條指令,為可執(zhí)行指令系統(tǒng)中的一條指令,為可執(zhí)行語(yǔ)句。匯編程序?qū)橹a(chǎn)生一對(duì)應(yīng)的機(jī)器目標(biāo)語(yǔ)句。匯編程序?qū)橹a(chǎn)生一對(duì)應(yīng)的機(jī)器目標(biāo)代碼。代碼。如:指令語(yǔ)句如:指令語(yǔ)句MOV DS,AX ;機(jī)器代碼為機(jī)器代碼為8EH和和D8H17語(yǔ)句的種類(續(xù))n偽指令語(yǔ)句偽指令語(yǔ)句nCPU不執(zhí)行的語(yǔ)句,只是匯編時(shí)給匯編程序提不執(zhí)

12、行的語(yǔ)句,只是匯編時(shí)給匯編程序提供匯編信息,如定義符號(hào)、分配存儲(chǔ)單元、將供匯編信息,如定義符號(hào)、分配存儲(chǔ)單元、將程序分段等。它本身不產(chǎn)生目標(biāo)代碼,所以是程序分段等。它本身不產(chǎn)生目標(biāo)代碼,所以是指示性語(yǔ)句。指示性語(yǔ)句。n如偽指令語(yǔ)句如偽指令語(yǔ)句SEGMENT/ENDS;18語(yǔ)句的種類(續(xù))n宏指令語(yǔ)句宏指令語(yǔ)句n是以某個(gè)宏名字定義的一段指令序列。匯編時(shí),是以某個(gè)宏名字定義的一段指令序列。匯編時(shí),凡有宏指令語(yǔ)句的地方都將用相應(yīng)的指令序列凡有宏指令語(yǔ)句的地方都將用相應(yīng)的指令序列的目標(biāo)代碼插入。的目標(biāo)代碼插入。19匯編語(yǔ)言的語(yǔ)句格式n指令性語(yǔ)句指令性語(yǔ)句 由由CPU執(zhí)行的指令執(zhí)行的指令n語(yǔ)句格式:語(yǔ)句

13、格式:標(biāo)號(hào):標(biāo)號(hào): 前綴前綴 助記符助記符 操作數(shù)操作數(shù),操作數(shù)操作數(shù) ;注釋;注釋指令的符號(hào)地址,指令的符號(hào)地址,標(biāo)號(hào)后要有冒號(hào)標(biāo)號(hào)后要有冒號(hào)操作碼操作碼注釋前加分號(hào)注釋前加分號(hào)20匯編語(yǔ)言的語(yǔ)句格式n指示性語(yǔ)句指示性語(yǔ)句 : CPU不執(zhí)行的指令,不生成目標(biāo)代碼;不執(zhí)行的指令,不生成目標(biāo)代碼; 由匯編程序執(zhí)行,用于分配內(nèi)存空間、定義變量、指由匯編程序執(zhí)行,用于分配內(nèi)存空間、定義變量、指示程序開始和結(jié)束等。示程序開始和結(jié)束等。n指令格式:指令格式:名字名字 偽指令助記符偽指令助記符 操作數(shù)操作數(shù) ,操作數(shù),操作數(shù), ;注釋;注釋變量的符號(hào)地址變量的符號(hào)地址其后不加冒號(hào)其后不加冒號(hào)指示性語(yǔ)句中至

14、少有一個(gè)操作數(shù)指示性語(yǔ)句中至少有一個(gè)操作數(shù)21匯編語(yǔ)言的語(yǔ)句格式(續(xù))n其中,方括號(hào)中的內(nèi)容為可選部分,操作數(shù)部分或是其中,方括號(hào)中的內(nèi)容為可選部分,操作數(shù)部分或是0、1操作數(shù),或是由逗號(hào)隔開的多個(gè)操作數(shù)。操作數(shù),或是由逗號(hào)隔開的多個(gè)操作數(shù)。n(1)標(biāo)號(hào)和名字:標(biāo)號(hào)和名字分別是給指令單元和偽)標(biāo)號(hào)和名字:標(biāo)號(hào)和名字分別是給指令單元和偽指令起的符號(hào)名稱,用符號(hào)匯編語(yǔ)言規(guī)定的標(biāo)識(shí)符來表指令起的符號(hào)名稱,用符號(hào)匯編語(yǔ)言規(guī)定的標(biāo)識(shí)符來表示。標(biāo)號(hào)后面必須有冒號(hào),名字后面沒有。示。標(biāo)號(hào)后面必須有冒號(hào),名字后面沒有。n標(biāo)號(hào)和名字的選擇有一些限制。首先,它們必須符號(hào)匯標(biāo)號(hào)和名字的選擇有一些限制。首先,它們必須

15、符號(hào)匯編語(yǔ)言的標(biāo)識(shí)符定義,即以字母開頭,由字母(編語(yǔ)言的標(biāo)識(shí)符定義,即以字母開頭,由字母(AZ或或az,匯編程序不區(qū)分大小寫)、數(shù)字及部分特殊字符,匯編程序不區(qū)分大小寫)、數(shù)字及部分特殊字符(?、(?、$和下劃線和下劃線_等)組成的字符串表示,字符串等)組成的字符串表示,字符串長(zhǎng)度不能超過長(zhǎng)度不能超過31個(gè)。此外,標(biāo)識(shí)符不能是匯編言中有特個(gè)。此外,標(biāo)識(shí)符不能是匯編言中有特定意義的保留字。定意義的保留字。22匯編語(yǔ)言的語(yǔ)句格式(續(xù))n(2)助記符和定義符)助記符和定義符n助記符和定義符分別用于規(guī)定指令語(yǔ)句的操作性質(zhì)和助記符和定義符分別用于規(guī)定指令語(yǔ)句的操作性質(zhì)和偽指令語(yǔ)句的偽操作功能,這部分是語(yǔ)

16、句中唯一不可偽指令語(yǔ)句的偽操作功能,這部分是語(yǔ)句中唯一不可缺省的。缺省的。n(3)操作數(shù))操作數(shù)n指令語(yǔ)句中的操作數(shù)提供該指令的操作對(duì)象,并說明指令語(yǔ)句中的操作數(shù)提供該指令的操作對(duì)象,并說明要處理的數(shù)據(jù)存放在什么位置以及如何訪問它。要處理的數(shù)據(jù)存放在什么位置以及如何訪問它。n(4)注釋)注釋n注釋由分號(hào)注釋由分號(hào)“;”開始,用來對(duì)語(yǔ)句的功能加以說明,開始,用來對(duì)語(yǔ)句的功能加以說明,它們構(gòu)成了源程序的編程文檔,使程序更容易被理解它們構(gòu)成了源程序的編程文檔,使程序更容易被理解和閱讀。和閱讀。23操作數(shù)n常量常量 數(shù)值或字符、字符串?dāng)?shù)值或字符、字符串n寄存器寄存器n存儲(chǔ)器單元存儲(chǔ)器單元n變量或標(biāo)號(hào)變

17、量或標(biāo)號(hào)n表達(dá)式表達(dá)式 可包括各種運(yùn)算符可包括各種運(yùn)算符24常量n在匯編時(shí)已經(jīng)確定其值且程序運(yùn)行期間不變化在匯編時(shí)已經(jīng)確定其值且程序運(yùn)行期間不變化的量為常量,如語(yǔ)句中的立即數(shù)或端口地址等。的量為常量,如語(yǔ)句中的立即數(shù)或端口地址等。n這些常量的形式各不相同,常用的有二、十、這些常量的形式各不相同,常用的有二、十、八或十六進(jìn)制的整型數(shù)值常量、字符串常量和八或十六進(jìn)制的整型數(shù)值常量、字符串常量和已賦值的常標(biāo)識(shí)符。已賦值的常標(biāo)識(shí)符。n 在匯編語(yǔ)言源程序中,常用十六進(jìn)制來表示在匯編語(yǔ)言源程序中,常用十六進(jìn)制來表示數(shù)據(jù)和地址。數(shù)據(jù)和地址。25變量n代表內(nèi)存中的數(shù)據(jù)區(qū),程序中視為存儲(chǔ)器操代表內(nèi)存中的數(shù)據(jù)區(qū),

18、程序中視為存儲(chǔ)器操作數(shù)作數(shù)n變量的三種屬性:變量的三種屬性: 段段 值值 變量所在段的段地址變量所在段的段地址 偏移量偏移量 變量單元地址與段首地址之變量單元地址與段首地址之 間的位移量。間的位移量。 類類 型型 字節(jié)型(字節(jié)型(BYTEBYTE)、字型)、字型(WORD)(WORD)、雙字型雙字型(DWORD)(DWORD)、四字和十字節(jié)、四字和十字節(jié)5 5種種26表達(dá)式操作數(shù)n表達(dá)式操作數(shù)由各種操作數(shù)、運(yùn)算符和操作符表達(dá)式操作數(shù)由各種操作數(shù)、運(yùn)算符和操作符組成。組成。n匯編語(yǔ)言中的兩類表達(dá)式:匯編語(yǔ)言中的兩類表達(dá)式:n數(shù)值表達(dá)式:由數(shù)值常量、字符串常量或符號(hào)數(shù)值表達(dá)式:由數(shù)值常量、字符串常

19、量或符號(hào)常量等與算術(shù)、邏輯或關(guān)系運(yùn)算符連接而成。常量等與算術(shù)、邏輯或關(guān)系運(yùn)算符連接而成。n地址表達(dá)式:由常量、變量、標(biāo)號(hào)、寄存器的地址表達(dá)式:由常量、變量、標(biāo)號(hào)、寄存器的內(nèi)容以及一些運(yùn)算符組成。其值表示存儲(chǔ)器地內(nèi)容以及一些運(yùn)算符組成。其值表示存儲(chǔ)器地址,一般都是段內(nèi)的偏移地址。地址表達(dá)式主址,一般都是段內(nèi)的偏移地址。地址表達(dá)式主要用來表示指令語(yǔ)句中的操作數(shù)。要用來表示指令語(yǔ)句中的操作數(shù)。27三、基本偽指令n數(shù)據(jù)定義偽指令數(shù)據(jù)定義偽指令n符號(hào)定義偽指令符號(hào)定義偽指令n段定義偽指令段定義偽指令n設(shè)定段寄存器偽指令設(shè)定段寄存器偽指令n結(jié)束偽指令結(jié)束偽指令n* *過程定義偽指令過程定義偽指令n*宏命令

20、偽指令宏命令偽指令28數(shù)據(jù)定義偽指令n數(shù)據(jù)定義語(yǔ)句用于定義變量。它指定變量的類型和名數(shù)據(jù)定義語(yǔ)句用于定義變量。它指定變量的類型和名稱,并為變量分配存儲(chǔ)單元。稱,并為變量分配存儲(chǔ)單元。n格式:格式: 變量名變量名 偽指令助記符偽指令助記符 操作數(shù),操作數(shù), ;注釋;注釋其中,變量名是可選的;操作數(shù)是賦給變量的初值,多其中,變量名是可選的;操作數(shù)是賦給變量的初值,多個(gè)相同類型的變量可在一條語(yǔ)句中定義。個(gè)相同類型的變量可在一條語(yǔ)句中定義。經(jīng)過定義的變量名有三個(gè)屬性:數(shù)據(jù)類型、偏移量(可經(jīng)過定義的變量名有三個(gè)屬性:數(shù)據(jù)類型、偏移量(可用用OFFSET獲得)和段基址(可用獲得)和段基址(可用SEG獲得)

21、。若某獲得)。若某個(gè)變量所表示的是一個(gè)數(shù)組,則其類型屬性為變量的個(gè)變量所表示的是一個(gè)數(shù)組,則其類型屬性為變量的單個(gè)元素所占用的字節(jié)數(shù)。單個(gè)元素所占用的字節(jié)數(shù)。29數(shù)據(jù)定義偽指令偽指令助記符偽指令助記符nDB 定義的變量為字節(jié)型定義的變量為字節(jié)型nDW 定義的變量為字類型(雙字節(jié))定義的變量為字類型(雙字節(jié))nDD 定義的變量為雙字型(定義的變量為雙字型(4字節(jié))字節(jié))nDQ 定義的變量為定義的變量為4字型(字型(8字節(jié))字節(jié))nDT 定義的變量為定義的變量為10字節(jié)型字節(jié)型30數(shù)據(jù)定義偽指令nDATA1 DB 11H,22H,33H,44HnDATA2 DW 11H,22H,3344HnDAT

22、A3 DD 11H*2,22H,33445566H考慮以上變量在內(nèi)考慮以上變量在內(nèi)存中的存放形式存中的存放形式31數(shù)據(jù)定義偽指令n偽指令的性質(zhì)決定所定義變量的屬性;偽指令的性質(zhì)決定所定義變量的屬性;n定義字符串必須用定義字符串必須用DB偽指令偽指令n例:例: DATA1 DB ABCD,66HABCD41H42H43H44H66H32數(shù)據(jù)定義語(yǔ)句的具體形式和功能n(1)為數(shù)據(jù)項(xiàng)分配存儲(chǔ)單元,用變量名作為)為數(shù)據(jù)項(xiàng)分配存儲(chǔ)單元,用變量名作為該存儲(chǔ)單元的名稱。該存儲(chǔ)單元的名稱。n例:例:X DB 25H;定義變量;定義變量X為字節(jié)為字節(jié)n Y DW 4124H;定義變量定義變量Y為字為字n匯編時(shí)匯

23、編程序會(huì)把匯編時(shí)匯編程序會(huì)把25H、4142H這些初值這些初值分別放入名為分別放入名為X、Y的存儲(chǔ)單元中的存儲(chǔ)單元中33數(shù)據(jù)定義語(yǔ)句的具體形式和功能n(2)預(yù)留若干字節(jié)(字、雙字)存儲(chǔ)單元但)預(yù)留若干字節(jié)(字、雙字)存儲(chǔ)單元但并不賦以具體的初值,以存放程序的運(yùn)行結(jié)果。并不賦以具體的初值,以存放程序的運(yùn)行結(jié)果。這時(shí)操作數(shù)部分可使用問號(hào)這時(shí)操作數(shù)部分可使用問號(hào)“?”。n例:例:A DB ? ;為變量;為變量A分配一個(gè)字節(jié)單元分配一個(gè)字節(jié)單元n B DB ? ;為變量為變量B分配一個(gè)字單元分配一個(gè)字單元34數(shù)據(jù)定義語(yǔ)句的具體形式和功能n(3)引入若干個(gè)用逗號(hào)分隔的操作數(shù)來定義)引入若干個(gè)用逗號(hào)分隔的

24、操作數(shù)來定義一個(gè)表(數(shù)組)。一個(gè)表(數(shù)組)。n例:例:W_TABLE DW 1122H,3344H;定義一定義一個(gè)字表個(gè)字表n B_TABLE DB 1,2,4,8,16;定義一個(gè)字節(jié)定義一個(gè)字節(jié)表表n其中字變量其中字變量W_TABLE的內(nèi)容為的內(nèi)容為1122H,下一,下一個(gè)字單元的內(nèi)容為個(gè)字單元的內(nèi)容為3344H。35數(shù)據(jù)定義語(yǔ)句的具體形式和功能n(4)用)用DB偽指令在內(nèi)存中定義一個(gè)字符串。字符串偽指令在內(nèi)存中定義一個(gè)字符串。字符串中的每一個(gè)字符用它的中的每一個(gè)字符用它的ASCII碼值來表示,為一個(gè)字碼值來表示,為一個(gè)字節(jié),所以字符串的定義必須用節(jié),所以字符串的定義必須用DB命令。命令。n

25、例如:例如:MESSAGE DB HELLOn注意:當(dāng)字符串的長(zhǎng)度不超過兩個(gè)字符時(shí),也可用注意:當(dāng)字符串的長(zhǎng)度不超過兩個(gè)字符時(shí),也可用DW偽指令來定義。偽指令來定義。n例:例:STRING1 DB ABn STRING1 DW ABn STRING1 DW AB,CD36重復(fù)操作符n為一個(gè)數(shù)據(jù)區(qū)的各單元設(shè)置相同的初值為一個(gè)數(shù)據(jù)區(qū)的各單元設(shè)置相同的初值n格式:格式: 變量名變量名 偽指令助記符偽指令助記符 n DUP(初值,(初值,)n例:例: BW 20 DUP(0) DB 3 DUP(22H,11H,?),?)隨機(jī)數(shù)隨機(jī)數(shù)37分析操作符與合成操作符n作為存儲(chǔ)器操作數(shù)的標(biāo)號(hào)或變量都有段、偏移作

26、為存儲(chǔ)器操作數(shù)的標(biāo)號(hào)或變量都有段、偏移量和類型三種屬性。在程序設(shè)計(jì)中,有時(shí)需要量和類型三種屬性。在程序設(shè)計(jì)中,有時(shí)需要隨時(shí)查詢、調(diào)用或修改這些屬性,以滿足不同隨時(shí)查詢、調(diào)用或修改這些屬性,以滿足不同的訪問要求,這些操作由分析和合成操作符來的訪問要求,這些操作由分析和合成操作符來完成。完成。38分析操作符n分析操作符作用于存儲(chǔ)器操作數(shù)時(shí)返回它們的分析操作符作用于存儲(chǔ)器操作數(shù)時(shí)返回它們的屬性值。這些操作符是:屬性值。這些操作符是:SEG、OFFSET、TYPE、SIZE、LENGTH等。等。n分析操作符的使用格式:操作符分析操作符的使用格式:操作符 標(biāo)號(hào)或變量標(biāo)號(hào)或變量nSEG和和OFFSET操作

27、符操作符nSEG和和OFFSET分別用以返回標(biāo)號(hào)或變量的段分別用以返回標(biāo)號(hào)或變量的段地址和偏移地址。地址和偏移地址。39分析操作符nTYPE、LENGTH、SIZE操作符操作符nTYPE操作符返回一個(gè)數(shù)字值,表示存儲(chǔ)器操操作符返回一個(gè)數(shù)字值,表示存儲(chǔ)器操作數(shù)的類型。作數(shù)的類型。nLENGTH操作符返回變量用操作符返回變量用DUP重復(fù)定義的數(shù)重復(fù)定義的數(shù)據(jù)項(xiàng)總數(shù)。據(jù)項(xiàng)總數(shù)。nSIZE操作符則返回操作符則返回TYPE和和LENGTH的乘積,的乘積,表示為變量所分配的字節(jié)存儲(chǔ)單元總數(shù)。表示為變量所分配的字節(jié)存儲(chǔ)單元總數(shù)。n注意:注意: 要用要用LENGTH操作符返回的存儲(chǔ)區(qū)必操作符返回的存儲(chǔ)區(qū)必須用

28、須用DUP()來定義,否則返回來定義,否則返回1.40合成操作符nPTR操作符操作符nPTR用來臨時(shí)指定或修改存儲(chǔ)器操作數(shù)的類型用來臨時(shí)指定或修改存儲(chǔ)器操作數(shù)的類型屬性(保持原有的段屬性和偏移地址屬性),屬性(保持原有的段屬性和偏移地址屬性),如果這些變量或標(biāo)號(hào)已有定義,則原定義的類如果這些變量或標(biāo)號(hào)已有定義,則原定義的類型型 屬性不變。屬性不變。n使用格式:類型使用格式:類型 PTR 標(biāo)號(hào)或變量標(biāo)號(hào)或變量n其中,類型可以是其中,類型可以是BYTE、WORD、DWORD、NEAR或或FAR,它們僅在當(dāng)前所在的指令中有,它們僅在當(dāng)前所在的指令中有效。效。41合成操作符(續(xù))nLABEL操作符操作

29、符nLABEL操作符為當(dāng)前存儲(chǔ)單元定義個(gè)指定類型操作符為當(dāng)前存儲(chǔ)單元定義個(gè)指定類型的標(biāo)號(hào)或變量。它常用于定義一個(gè)數(shù)據(jù)塊或標(biāo)的標(biāo)號(hào)或變量。它常用于定義一個(gè)數(shù)據(jù)塊或標(biāo)號(hào),使它們具有多重名字或?qū)傩?。?hào),使它們具有多重名字或?qū)傩?。n使用格式:標(biāo)號(hào)或變量名使用格式:標(biāo)號(hào)或變量名 LABLE 類型類型n例:例:WBYTE LABEL WORD42合成操作符(續(xù))nTHIS操作符操作符nTHIS操作符與操作符與EQU配合使用,具有配合使用,具有LABEL操操作符的同樣作用。作符的同樣作用。n使用格式:標(biāo)號(hào)或變量名使用格式:標(biāo)號(hào)或變量名 EQU THIS 類型類型n例:例:BWORD EQU THIS BYT

30、E43符號(hào)定義偽指令n格式:格式: 符號(hào)名符號(hào)名 EQUEQU表達(dá)式表達(dá)式n操作:操作: 用符號(hào)名取代后邊的表達(dá)式,不可重新定義,即在用符號(hào)名取代后邊的表達(dá)式,不可重新定義,即在同一源程序中,用同一源程序中,用EQUEQU定義過的符號(hào)名不能再賦予不同定義過的符號(hào)名不能再賦予不同的值。的值。n例:例: CONSTANT EQUCONSTANT EQU 100100;常量賦予符號(hào)名;常量賦予符號(hào)名 VAR EQU 30H+99HVAR EQU 30H+99HEQU說明的表達(dá)式不占用內(nèi)存空間說明的表達(dá)式不占用內(nèi)存空間44符號(hào)定義偽指令n 等號(hào)語(yǔ)句等號(hào)語(yǔ)句n格式:符號(hào)表達(dá)式格式:符號(hào)表達(dá)式n此語(yǔ)句的功

31、能與此語(yǔ)句的功能與EQU類似,唯一區(qū)別是能對(duì)符類似,唯一區(qū)別是能對(duì)符號(hào)進(jìn)行再定義。號(hào)進(jìn)行再定義。n例:例:EMP=60n EMP=EMP+1n EMP=123*445段定義偽指令n說明邏輯段的起始和結(jié)束;說明邏輯段的起始和結(jié)束;n說明不同程序模塊中同類邏輯段之間的說明不同程序模塊中同類邏輯段之間的聯(lián)系形態(tài)聯(lián)系形態(tài)46段定義偽指令段名段名 SEGMENT 定位類型定位類型 組合類型組合類型 類別類別 段名段名 ENDS說明邏輯說明邏輯段的起點(diǎn)段的起點(diǎn)說明不同模塊說明不同模塊中同名段的組中同名段的組和連接方式和連接方式47段定義偽指令SEGMENT/ENDSn格式:格式:n段名段名 SEGMENT

32、定義類型定義類型組合類型組合類型類別名類別名n (段體)(段體)n段名段名 ENDSn功能:指出段名及段的各種屬性,并表示段的開始和功能:指出段名及段的各種屬性,并表示段的開始和結(jié)束位置。結(jié)束位置。n段名是用戶定義的標(biāo)識(shí)符,是識(shí)別段的標(biāo)志,用來指段名是用戶定義的標(biāo)識(shí)符,是識(shí)別段的標(biāo)志,用來指示匯編程序?yàn)樵摱畏峙涞拇鎯?chǔ)器起始位置,包含段地示匯編程序?yàn)樵摱畏峙涞拇鎯?chǔ)器起始位置,包含段地址和段內(nèi)偏移量?jī)蓚€(gè)屬性。址和段內(nèi)偏移量?jī)蓚€(gè)屬性。48定義類型n匯編程序?qū)υ闯绦騾R編后生成的目標(biāo)代碼文件匯編程序?qū)υ闯绦騾R編后生成的目標(biāo)代碼文件(.OBJ),其中的段地址和偏移量都未最后確),其中的段地址和偏移量都未最

33、后確定,還需要用鏈接程序(定,還需要用鏈接程序(LINK)把各個(gè)模塊)把各個(gè)模塊連接起來。定位類型參數(shù)用于告訴連接起來。定位類型參數(shù)用于告訴LINK程序,程序,鏈接時(shí)本段首地址的邊界定位方式。定位有四鏈接時(shí)本段首地址的邊界定位方式。定位有四種類型:種類型:nPARA(節(jié)):表示段的起始地址必須為(節(jié)):表示段的起始地址必須為16的的倍數(shù)(倍數(shù)(XXXX0H),若語(yǔ)句中沒有給出定位類),若語(yǔ)句中沒有給出定位類型,則默認(rèn)為型,則默認(rèn)為PARA。49定義類型nPAGE(頁(yè)):表示段的起始地址必須為(頁(yè)):表示段的起始地址必須為256的倍數(shù)(的倍數(shù)(XXX00H),也就是頁(yè)的起點(diǎn)上。),也就是頁(yè)的起點(diǎn)

34、上。nWORD(字)(字):表示段的起始地址必須為偶數(shù),表示段的起始地址必須為偶數(shù),它最適合于安排類型為字的數(shù)據(jù)段。它最適合于安排類型為字的數(shù)據(jù)段。nBYTE(字節(jié)):表示該段可以從任意地址開(字節(jié)):表示該段可以從任意地址開始。始。50組合類型n一個(gè)匯編語(yǔ)言源程序往往有許多模塊組成,而一個(gè)匯編語(yǔ)言源程序往往有許多模塊組成,而每一個(gè)模塊常常又有自己的數(shù)據(jù)段、代碼段和每一個(gè)模塊常常又有自己的數(shù)據(jù)段、代碼段和堆棧段。組合類型用于告訴堆棧段。組合類型用于告訴LINK程序,多個(gè)程序,多個(gè)模塊鏈接時(shí)本段與其他模塊中同名段的組合鏈模塊鏈接時(shí)本段與其他模塊中同名段的組合鏈接關(guān)系。組合類型共有六種。接關(guān)系。組

35、合類型共有六種。nNONE:本段與其他同名段無組合關(guān)系,并有自本段與其他同名段無組合關(guān)系,并有自己的段起始地址。若語(yǔ)句中沒有指明組合類型,己的段起始地址。若語(yǔ)句中沒有指明組合類型,則默認(rèn)為則默認(rèn)為NONE。51組合類型nPUBLIC:在滿足定位類型的前提下,:在滿足定位類型的前提下,LINK程序?qū)⑵涑绦驅(qū)⑵渑c其他模塊中說明為與其他模塊中說明為PUBLIC的同名段鄰接在一起,的同名段鄰接在一起,共用一個(gè)段地址。共用一個(gè)段地址。nSTACK:與:與PUBLIC同樣處理,只是鏈接后的段作為同樣處理,只是鏈接后的段作為堆棧段。堆棧段。nCOMMON:各模塊中由:各模塊中由COMMON方式說明的同名段方

36、式說明的同名段得疊履蓋,有著相同的起始地址。段的長(zhǎng)度鄧決于最得疊履蓋,有著相同的起始地址。段的長(zhǎng)度鄧決于最長(zhǎng)的長(zhǎng)的COMMON段的長(zhǎng)度。段的內(nèi)容為所鏈接的最后段的長(zhǎng)度。段的內(nèi)容為所鏈接的最后一個(gè)模塊中一個(gè)模塊中COMMON段的內(nèi)容以及沒有覆蓋到的前段的內(nèi)容以及沒有覆蓋到的前面的面的COMMON段的內(nèi)容。段的內(nèi)容。52段寄存器說明偽指令A(yù)SSUMEn格式:格式:ASSUME 段寄存器:段名段寄存器:段名,段寄存器:段名,段寄存器:段名,nASSUME偽指令一般出現(xiàn)在代碼段中偽指令一般出現(xiàn)在代碼段中SEGMENT偽指令的偽指令的后面,它設(shè)定特定的段寄存器指向特定的段,說明源程序后面,它設(shè)定特定的段

37、寄存器指向特定的段,說明源程序中定義的段應(yīng)由哪個(gè)段寄存器去尋址。中定義的段應(yīng)由哪個(gè)段寄存器去尋址。n但是,但是,ASSUME并未真正將段地址裝入相應(yīng)的段寄存器,并未真正將段地址裝入相應(yīng)的段寄存器,段寄存器(段寄存器(CS除外)的初值設(shè)定還要由程序中的除外)的初值設(shè)定還要由程序中的MOV指令指令來完成。來完成。53指定地址偽指令ORG格式格式1:ORG 表達(dá)式表達(dá)式格式格式2:ORG $+表達(dá)式表達(dá)式功能:功能:ORG偽指令用來強(qiáng)行指定地址計(jì)數(shù)器的當(dāng)偽指令用來強(qiáng)行指定地址計(jì)數(shù)器的當(dāng)前值,以改變段內(nèi)在它以后的代碼或數(shù)據(jù)塊存前值,以改變段內(nèi)在它以后的代碼或數(shù)據(jù)塊存放的偏移地址。放的偏移地址。格式格式

38、1直接將表達(dá)式的值送入地址計(jì)數(shù)器。格式直接將表達(dá)式的值送入地址計(jì)數(shù)器。格式2將匯編將匯編ORG語(yǔ)句前地址計(jì)數(shù)器的現(xiàn)值語(yǔ)句前地址計(jì)數(shù)器的現(xiàn)值$加上加上表達(dá)式后送入地址計(jì)數(shù)器。表達(dá)式后送入地址計(jì)數(shù)器。54例nDATA SEGMENTn ORG 10H;在數(shù)據(jù)段在數(shù)據(jù)段10H偏移地址處偏移地址處開始存放開始存放20H,30Hn X DB 20H,30Hn ORG $+5n Y DB 40H,50H55段定義偽指令例DATA SEGMENT MEM1 DB 11H,22HMEM2 DW 1234HDATA ENDS56結(jié)束偽指令n表示源程序結(jié)束表示源程序結(jié)束n格式:格式: END 標(biāo)號(hào)標(biāo)號(hào)57一個(gè)完整

39、源程序結(jié)構(gòu)例DSEG SEGMENTDATA1 DB 1,2,DATA2 DW 1234HDSEG ENDSESEG SEGMENT DB 20 DUP(?)(?)ESEG ENDSSSEG SEGMENT DB 200 DUP(?)(?)SSEG ENDS58一個(gè)完整源程序結(jié)構(gòu)例CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG, ES:ESEG,SS:SSEG START:MOV AX,DSEG MOV DS,AX MOV AX,ESEG MOV ES,AX MOV AX,SSEG MOV SS,AX CSEG ENDS END START源程序源程序 代碼代碼59過程

40、定義偽指令n用于定義一個(gè)過程體用于定義一個(gè)過程體n格式:格式: 過程名過程名 PROC NEAR / FAR RET 過程名過程名 ENDP過程入口的符號(hào)地址過程入口的符號(hào)地址60宏命令偽指令n宏命令宏命令源程序中由匯編程序識(shí)別的具有源程序中由匯編程序識(shí)別的具有 獨(dú)立功能的一段程序代碼獨(dú)立功能的一段程序代碼n格式:格式: 宏命令名宏命令名 MACRO ENDM宏體宏體61四、DOS功能模塊n用用 INT 21H 軟中斷指令,可調(diào)用包含多軟中斷指令,可調(diào)用包含多個(gè)子功能的功能包個(gè)子功能的功能包;n各子功能采用功能號(hào)來區(qū)分;各子功能采用功能號(hào)來區(qū)分;n功能包括:功能包括:設(shè)備管理、設(shè)備管理、62D

41、OS功能子程序的基本方法nBIOS/DOS的每個(gè)功能子程序都對(duì)應(yīng)著一個(gè)子程序文的每個(gè)功能子程序都對(duì)應(yīng)著一個(gè)子程序文件。使用這些子程序時(shí),用戶不必過問其內(nèi)部結(jié)構(gòu)和件。使用這些子程序時(shí),用戶不必過問其內(nèi)部結(jié)構(gòu)和細(xì)節(jié),也不必關(guān)心硬件細(xì)節(jié),也不必關(guān)心硬件I/O接口的特性,只要直接用接口的特性,只要直接用一條軟件中斷指令一條軟件中斷指令I(lǐng)NT n即可(即可(n為中斷向量號(hào)),為中斷向量號(hào)),這稱為中斷調(diào)用。一般,對(duì)功能子程序的調(diào)用需要經(jīng)這稱為中斷調(diào)用。一般,對(duì)功能子程序的調(diào)用需要經(jīng)過三個(gè)步驟:過三個(gè)步驟:子程序入口參數(shù)關(guān)規(guī)定寄存器子程序入口參數(shù)關(guān)規(guī)定寄存器子程序編號(hào)送子程序編號(hào)送AH寄存器寄存器發(fā)軟件中

42、斷命令:發(fā)軟件中斷命令:INT n63n其中軟中斷命令其中軟中斷命令I(lǐng)NT n中的中的n值因子程序不同值因子程序不同而可能不同,比如而可能不同,比如ROM BIOS的軟中斷類型號(hào)的軟中斷類型號(hào)有有n=51FH,DOS的軟中斷類型號(hào)有的軟中斷類型號(hào)有n20H,21H,232AH,2EH,2FH,33H和和67H等幾等幾種情況。種情況。n有的軟中斷命令只對(duì)應(yīng)一個(gè)子程序,這時(shí)的功有的軟中斷命令只對(duì)應(yīng)一個(gè)子程序,這時(shí)的功能調(diào)用無需上列步驟能調(diào)用無需上列步驟2;n有的軟中斷則對(duì)應(yīng)很多子程序,這時(shí)的功能調(diào)有的軟中斷則對(duì)應(yīng)很多子程序,這時(shí)的功能調(diào)用就必須指明子程序號(hào)。用就必須指明子程序號(hào)。64DOS功能模塊

43、調(diào)用格式n調(diào)用格式:調(diào)用格式: MOV AH,功能號(hào),功能號(hào) INT 21H65常用子功能n從鍵盤輸入單字符并顯示;從鍵盤輸入單字符并顯示;n從鍵盤輸入字符串并顯示;從鍵盤輸入字符串并顯示;n在屏幕上顯示單字符;在屏幕上顯示單字符;n在屏幕上顯示字符串。在屏幕上顯示字符串。66從鍵盤輸入單字符并顯示n01號(hào)功能調(diào)用等待從鍵盤輸入一個(gè)字符,調(diào)用號(hào)功能調(diào)用等待從鍵盤輸入一個(gè)字符,調(diào)用返回時(shí)該字符的返回時(shí)該字符的ASCII碼值送入碼值送入AL寄存器,同寄存器,同時(shí)將該字符顯示在屏幕上。時(shí)將該字符顯示在屏幕上。n入口參數(shù):無入口參數(shù):無n調(diào)用方法:調(diào)用方法: MOV AH,01 INT 21Hn輸入的

44、字符在輸入的字符在AL中中67單字符輸入例GET_KEY: MOVAH,1 INT21H CMPAL,Y JZ YES CMPAL,N JZ NO JNZGET_KEY YES: NO: 交互式應(yīng)交互式應(yīng) 答程序答程序68從鍵盤輸入字符串nAH 功能號(hào)功能號(hào)OAHnDS:DX 字符串在內(nèi)存中的存放地址字符串在內(nèi)存中的存放地址nINT 21Hn從鍵盤接收字后串后存入以從鍵盤接收字后串后存入以DS:DX為首地址的內(nèi)存緩沖區(qū),同時(shí)為首地址的內(nèi)存緩沖區(qū),同時(shí)顯示該字符串,輸入過程以回車鍵結(jié)束。顯示該字符串,輸入過程以回車鍵結(jié)束。n使用時(shí),要求事先在數(shù)據(jù)段定義一個(gè)輸入緩沖區(qū),其中第一個(gè)字使用時(shí),要求事先

45、在數(shù)據(jù)段定義一個(gè)輸入緩沖區(qū),其中第一個(gè)字節(jié)指出緩沖區(qū)能容納的字符個(gè)數(shù),不能為節(jié)指出緩沖區(qū)能容納的字符個(gè)數(shù),不能為0.第二個(gè)字節(jié)保留用以第二個(gè)字節(jié)保留用以存放實(shí)際輸入的字符個(gè)數(shù)。從第三個(gè)字節(jié)開始存放從鍵盤上接收存放實(shí)際輸入的字符個(gè)數(shù)。從第三個(gè)字節(jié)開始存放從鍵盤上接收的字符。的字符。69定義字符緩沖區(qū)n用戶自定義緩沖區(qū)格式:用戶自定義緩沖區(qū)格式:0DHN1N2整個(gè)緩沖區(qū)整個(gè)緩沖區(qū)最大鍵入字符數(shù)最大鍵入字符數(shù)實(shí)際鍵入字符數(shù)實(shí)際鍵入字符數(shù)70輸入字符串程序段nDAT1 DB 20,?,?,20 DUP(?)(?)nLEA DX,DAT1 MOV AH,0AH INT 21H71輸入緩沖區(qū)14H ?20個(gè)字節(jié)個(gè)字節(jié)定義后的輸入緩定義后的輸入緩沖區(qū)初始狀態(tài):沖區(qū)初始狀態(tài):72單字符顯示輸出nAH 功能號(hào)功能號(hào)O2H或或05HnDL 待輸出字符待輸出字符nINT 21Hn功能:將寄存器功能:將寄存器DL中的單個(gè)字符輸出到顯中的單個(gè)字符輸出到顯示器或打印機(jī)。示器或打印機(jī)。n02H為顯示器、為顯示器、05H為打印機(jī)為打印機(jī)73單字符顯示輸出例nMOVAH,02nMOVDL,41H;A的的ASCII值值nINT21H 執(zhí)行結(jié)果:屏幕顯示字符執(zhí)行結(jié)果:屏幕顯示字符 A74字符串輸出顯示n入口參數(shù):入口參數(shù):DS:DX指向內(nèi)存中一個(gè)以指向內(nèi)存中一個(gè)以$結(jié)尾的字符串(不包括結(jié)尾的字符串(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論