版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 幾個概念幾個概念 8086匯編語言的語句匯編語言的語句 8086匯編中的偽指令匯編中的偽指令 8086匯編中的運算符匯編中的運算符 匯編語言程序設(shè)計匯編語言程序設(shè)計 宏定義與宏調(diào)用宏定義與宏調(diào)用 系統(tǒng)調(diào)用系統(tǒng)調(diào)用 匯編語言匯編語言 匯編語言源程序匯編語言源程序 匯編匯編 匯編程序匯編程序機器語言:機器語言是計算機硬件系統(tǒng)能夠直接識別機器語言:機器語言是計算機硬件系統(tǒng)能夠直接識別 的計算機語言,每一條語句實際上是一條的計算機語言,每一條語句實際上是一條 二進(jìn)制二進(jìn)制形式的指令代碼,由操作碼和操作形式的指令代碼,由操作碼和操作 數(shù)組成。參見數(shù)組成。參見p52-53匯編語言:匯編語言用匯編語言:匯
2、編語言用助記符助記符代替操作碼,用代替操作碼,用符號地符號地 址址代替操作數(shù)。代替操作數(shù)。匯編語言由指令性語句和指示性語句組成。匯編語言由指令性語句和指示性語句組成。一、指令性語句格式一、指令性語句格式標(biāo)號:標(biāo)號: 操作碼操作碼 操作數(shù)操作數(shù)1, 操作數(shù)操作數(shù)2; 注釋注釋二、指示性語句格式二、指示性語句格式 標(biāo)識符(名字)標(biāo)識符(名字) 指示符(偽指令)指示符(偽指令) 表達(dá)式表達(dá)式 三、有關(guān)屬性三、有關(guān)屬性 存儲器操作數(shù)的屬性有三種:段值、段內(nèi)偏移量和存儲器操作數(shù)的屬性有三種:段值、段內(nèi)偏移量和 類型。類型。 指令語句的一般格式如下:指令語句的一般格式如下:標(biāo)號:標(biāo)號: 操作碼操作碼 操作
3、數(shù)操作數(shù);注釋;注釋1、標(biāo)號:標(biāo)號是機器指令語句存放、標(biāo)號:標(biāo)號是機器指令語句存放地址地址的符號表示,的符號表示, 代表該指令目標(biāo)代碼的第一個字節(jié)地址,后代表該指令目標(biāo)代碼的第一個字節(jié)地址,后 面必須緊跟冒號面必須緊跟冒號“:” 。2、操作碼:操作碼為語句的核心成分,表示該語句的、操作碼:操作碼為語句的核心成分,表示該語句的 操作類型。操作類型。 3、操作數(shù):操作數(shù)表示操作碼的操作對象。、操作數(shù):操作數(shù)表示操作碼的操作對象。 4、注釋:注釋均以、注釋:注釋均以分號分號開始,它可占一行或多行,一開始,它可占一行或多行,一 般放在一條語句的后面。般放在一條語句的后面。偽指令語句格式如下:偽指令語句
4、格式如下: 標(biāo)識符標(biāo)識符 偽指令偽指令 表達(dá)式表達(dá)式 ;注釋;注釋 標(biāo)識符標(biāo)識符:標(biāo)識符標(biāo)識符是偽指令語句的一個可選項。是偽指令語句的一個可選項。 偽指令偽指令:偽指令偽指令指定匯編程序要完成的具體操指定匯編程序要完成的具體操 作,如作,如規(guī)定規(guī)定的數(shù)據(jù)定義偽指令的數(shù)據(jù)定義偽指令db、dw、dd,段,段 定義偽指令定義偽指令segment,說明偽指令,說明偽指令assume等。等。 表達(dá)式表達(dá)式:偽指令后面的:偽指令后面的表達(dá)式表達(dá)式可以是常數(shù)、字符可以是常數(shù)、字符 串、常量名、變量名等,其個數(shù)由具體的偽指令決串、常量名、變量名等,其個數(shù)由具體的偽指令決 定,各個操作數(shù)之間必須以定,各個操作數(shù)
5、之間必須以“逗號逗號”分隔。分隔。 注釋注釋:偽指令的:偽指令的注釋注釋必須以必須以“;”開始,其作用同開始,其作用同 指令語句中的注釋部分。指令語句中的注釋部分。 變量變量通常是存放在某些存儲單元的通常是存放在某些存儲單元的數(shù)據(jù)數(shù)據(jù),以變量名,以變量名的形式出現(xiàn)在程序中,可代表符號地址、數(shù)據(jù)區(qū)或存儲的形式出現(xiàn)在程序中,可代表符號地址、數(shù)據(jù)區(qū)或存儲區(qū)的區(qū)的第一個數(shù)據(jù)單元第一個數(shù)據(jù)單元,如,如buf。 變量是用數(shù)據(jù)定義變量是用數(shù)據(jù)定義偽指令偽指令db、dw、dd等定義的。等定義的。變量的三種屬性:變量的三種屬性: 段屬性(段屬性(segment):):表示變量存放在哪一個邏表示變量存放在哪一個邏
6、 輯段中(即變量所在段的段地址)。輯段中(即變量所在段的段地址)。 偏移屬性(偏移屬性(offset):):表示變量的偏移地址,即表示變量的偏移地址,即 在邏輯段中距段的起始點的字節(jié)數(shù)在邏輯段中距段的起始點的字節(jié)數(shù) 類型屬性(類型屬性(type):):表示變量占用存儲單元的字節(jié)表示變量占用存儲單元的字節(jié) 數(shù)。用數(shù)。用db定義的變量類型屬性為字節(jié);用定義的變量類型屬性為字節(jié);用dw定義定義 的變量類型屬性為字(的變量類型屬性為字(2b);用);用dd定義的變量類定義的變量類 型屬性為雙字(型屬性為雙字(4b)。)。一、一、 符號定義語句符號定義語句 1、等值語句、等值語句 格式:符號名格式:符號
7、名 equ 表達(dá)式表達(dá)式 功能:為功能:為常量常量、表達(dá)式表達(dá)式及其他各種及其他各種符號符號定義一個定義一個 等值等值的的符號名符號名,但它,但它不申請存儲單元不申請存儲單元。不。不 允許重新定義。允許重新定義。例:例: port equ 1234 buff equ port58 mem equ ds:bp20h count equ cx abc equ aaa2、等號語句、等號語句 格式:符號名格式:符號名=表達(dá)式表達(dá)式 功能:為功能:為常量常量、表達(dá)式表達(dá)式及其他各種及其他各種符號符號定義一個定義一個 等值等值的的符號名符號名,并能對所定義的符號多次,并能對所定義的符號多次 重復(fù)重復(fù)定義,
8、且以定義,且以最后一次最后一次定義的值為準(zhǔn)。定義的值為準(zhǔn)。 例:例:num34 num341二、變量定義語句二、變量定義語句 格式:格式: 符號名符號名 db/dw/dd 表達(dá)式表達(dá)式 1 1、定義一組數(shù)據(jù)、定義一組數(shù)據(jù) 例例1 1: buff dw 1234h,0abcdh,8eh dw 79dh,7b6ah 可以為一個或連續(xù)的可以為一個或連續(xù)的存儲單元存儲單元設(shè)置數(shù)值初值設(shè)置數(shù)值初值。2 2、定義一串字符、定義一串字符例例2 2: str db welcome ! 用用db偽指令為偽指令為ascii字符串中的每一個字符字符串中的每一個字符分配一個分配一個字節(jié)單元字節(jié)單元,字符串必須用單引號
9、括起來。,字符串必須用單引號括起來。3 3、定義保留存儲單元、定義保留存儲單元 例例3 3: sum dw ?,? 為數(shù)據(jù)項分配為數(shù)據(jù)項分配存儲單元存儲單元的一種方法,只是存儲的一種方法,只是存儲單元中不預(yù)置確定的值,常用來預(yù)留存儲單元。單元中不預(yù)置確定的值,常用來預(yù)留存儲單元。4 4、復(fù)制操作、復(fù)制操作 復(fù)制操作符復(fù)制操作符dup(duplication)可預(yù)置重復(fù)的數(shù)值可預(yù)置重復(fù)的數(shù)值 n dup ( (表達(dá)式表達(dá)式) )例例4 4:all_zero db 0,0,0,0,0 用復(fù)制操作可改為:用復(fù)制操作可改為: all_zero db 5 dup(0) 為若干重復(fù)數(shù)據(jù)單元為若干重復(fù)數(shù)據(jù)單
10、元分配存儲單元分配存儲單元。5 5、將已定義的地址存入內(nèi)存單元、將已定義的地址存入內(nèi)存單元 例例5 5: lit dd cyc cyc:mov ax,bx三、段定義語句三、段定義語句1 1、段定義語句格式:、段定義語句格式: 段名段名 segment 定位類型定位類型 組合類型組合類型 類別類別 段名段名 ends 段定義偽指令用于將源程序劃分成若干段,即代段定義偽指令用于將源程序劃分成若干段,即代碼段碼段( (存放程序存放程序) ),數(shù)據(jù)段,數(shù)據(jù)段( (存放數(shù)據(jù)存放數(shù)據(jù)) ),堆棧段,附加,堆棧段,附加段。段。 只需要掌握只需要掌握 段名段名 segment 段名段名 ends 2 2、段假
11、設(shè)語句、段假設(shè)語句 assume 段寄存器名:段名段寄存器名:段名, 功能:向匯編程序指示當(dāng)前各段所用的段寄存功能:向匯編程序指示當(dāng)前各段所用的段寄存 器,設(shè)定段寄存器與段的關(guān)系。器,設(shè)定段寄存器與段的關(guān)系。3 3、org偽指令、地址計數(shù)器偽指令、地址計數(shù)器$ 格式:格式:org 功能:指定在它之后的代碼或數(shù)據(jù)存放的起始地功能:指定在它之后的代碼或數(shù)據(jù)存放的起始地 址的偏移量,以表達(dá)式的值作為起始地址的偏移量,以表達(dá)式的值作為起始地 址,連續(xù)存放程序或數(shù)據(jù)。址,連續(xù)存放程序或數(shù)據(jù)。 $ $代表當(dāng)前的地址。代表當(dāng)前的地址。4 4、end 表示源代碼結(jié)束表示源代碼結(jié)束 格式:格式:end 常數(shù)或表
12、達(dá)式常數(shù)或表達(dá)式 功能:該語句標(biāo)志整個程序的結(jié)束,是源程序的功能:該語句標(biāo)志整個程序的結(jié)束,是源程序的 最后一條語句。最后一條語句。四、過程定義語句四、過程定義語句 過程名過程名 proc near/far ret 過程名過程名 endp功能:功能:完成過程定義,在過程體中實現(xiàn)過程的操作功完成過程定義,在過程體中實現(xiàn)過程的操作功 能。當(dāng)一程序塊被定義為過程后,程序中其他能。當(dāng)一程序塊被定義為過程后,程序中其他 地方就可用地方就可用call指令調(diào)用該過程。指令調(diào)用該過程。 調(diào)用過程的格式為:調(diào)用過程的格式為: call 過程名過程名 過程名實質(zhì)上是過程入口的符號地址,它和過程名實質(zhì)上是過程入口的
13、符號地址,它和標(biāo)號標(biāo)號一樣,也有三種屬性:段、偏移量和類型(距離)。一樣,也有三種屬性:段、偏移量和類型(距離)。 一般來說,被定義為過程的程序塊中應(yīng)該有返回一般來說,被定義為過程的程序塊中應(yīng)該有返回指令指令ret,執(zhí)行,執(zhí)行ret指令后,控制返回到原來調(diào)用指指令后,控制返回到原來調(diào)用指令的下條指令。令的下條指令。一、常用運算符一、常用運算符1 1、算術(shù)運算符、算術(shù)運算符 (加)、(加)、(減)、(減)、* *(乘)、(乘)、/ /(除)、(除)、 mod(求余)。(求余)。2 2、邏輯運算符、邏輯運算符 and、or、xor、not 3 3、關(guān)系運算符、關(guān)系運算符 eq(相等)、(相等)、n
14、e(不等、)、(不等、)、 lt(小于)、(小于)、gt(大于)、(大于)、 le(小于等于)、(小于等于)、ge(大于等于)。(大于等于)。 關(guān)系成立,全關(guān)系成立,全1 關(guān)系不成立,全關(guān)系不成立,全0例:例: mov dl , 10h lt 16 ; mov dl,0例:例: and ax , 555 gt 222 ; and ax,0ffffh 二、常用的操作符二、常用的操作符4 4、分析操作符、分析操作符1 1)seg操作符操作符 取取段段地址地址例:例: mov ax,seg buff2 2)offset操作符操作符 取地址的取地址的偏移偏移量量 例:例:mov bx,offset b
15、uff3 3)type操作符操作符 對于變量有對于變量有3 3種:種: 1字節(jié)型;字節(jié)型; 2字型;字型; 4雙字型。雙字型。 對于標(biāo)號有對于標(biāo)號有2 2種:種: 1near(段內(nèi));(段內(nèi)); 2far(段間)。(段間)。例:例:buff db 20h mov bx,type buff mov bx,014 4)length操作符操作符 格式:格式:length 變量名變量名 功能:返回一個變量名所占功能:返回一個變量名所占存儲單元存儲單元(字節(jié)、字(字節(jié)、字 或雙字)的數(shù)目。若用重復(fù)定義子句說或雙字)的數(shù)目。若用重復(fù)定義子句說 明,則返回明,則返回dup前的數(shù)字;若沒有前的數(shù)字;若沒有du
16、p 說明,則返回值總是說明,則返回值總是1。5)size操作符操作符 sizetypelength 例:例:buff dw 10 dup (?) mov cx,length buf; mov cx,10 mov cx,size buf; mov cx,205 5、綜合運算符(合成操作符)、綜合運算符(合成操作符)功能:功能:1 1、由已有的操作數(shù)建立新的操作數(shù);、由已有的操作數(shù)建立新的操作數(shù); 2 2、新操作數(shù)和已有的操作數(shù)類型不一樣、新操作數(shù)和已有的操作數(shù)類型不一樣。 新的類型只在新的類型只在當(dāng)前指令內(nèi)有效當(dāng)前指令內(nèi)有效。1 1)ptr運算符運算符 格式:類型格式:類型 ptr 表達(dá)式表達(dá)式
17、例:例:inc word ptr bx wx dw 1234h mov al,byte ptr wx mov ah,byte ptr wx+12 2)this操作符操作符 格式:格式:this 類型類型( (或?qū)傩曰驅(qū)傩? )例:例:first equ this byte second dw 100 dup (?) 運算符的優(yōu)先級別見運算符的優(yōu)先級別見p96p96。ptr:已分配存:已分配存 儲器單元;儲器單元;this:不分配存:不分配存 儲器單元。儲器單元。常用的匯編語言程序框架:常用的匯編語言程序框架: data segment;定義數(shù)據(jù)段;定義數(shù)據(jù)段val1 db 12h , 8eh
18、;定義變量;定義變量 data ends ;數(shù)據(jù)段結(jié)束;數(shù)據(jù)段結(jié)束 code segment;定義代碼段;定義代碼段 assume ds:data , cs: code;段屬性說明;段屬性說明 start: mov ax , data;初始化;初始化ds mov ds , ax mov ax , 4c00h;返回;返回dos int 21h code ends ;代碼段結(jié)束;代碼段結(jié)束 end start ;源程序結(jié)束;源程序結(jié)束 特點特點程序分段程序分段語句由指令性和指示性語句組成語句由指令性和指示性語句組成兩種程序框架兩種程序框架一、匯編語言程序設(shè)計基本步驟一、匯編語言程序設(shè)計基本步驟 u
19、 分析問題,確定模型分析問題,確定模型u 確定算法確定算法 u 繪制流程圖繪制流程圖u 編寫程序編寫程序u 檢查和調(diào)試檢查和調(diào)試 二、匯編語言程序的基本結(jié)構(gòu)二、匯編語言程序的基本結(jié)構(gòu)1、順序結(jié)構(gòu)、順序結(jié)構(gòu) p972 2、分支結(jié)構(gòu)、分支結(jié)構(gòu) 實現(xiàn)100010 xyxx用查表法確定多分支用查表法確定多分支例:某應(yīng)用程序主菜單有例:某應(yīng)用程序主菜單有8 8個可選項,其入口地址分別個可選項,其入口地址分別 記為記為r0、r1r7。要求編制程序根據(jù)變量。要求編制程序根據(jù)變量n的的 值轉(zhuǎn)向相應(yīng)的處理程序(值轉(zhuǎn)向相應(yīng)的處理程序(n為入口編號)。為入口編號)。步驟:步驟: a a、把入口地址放在、把入口地址放
20、在base開始的內(nèi)存單元;開始的內(nèi)存單元; b b、根據(jù)、根據(jù)n的的內(nèi)容進(jìn)行查表實現(xiàn)分支轉(zhuǎn)移。內(nèi)容進(jìn)行查表實現(xiàn)分支轉(zhuǎn)移。例:某應(yīng)用程序主菜單有例:某應(yīng)用程序主菜單有8個可選項,其入口地址分別個可選項,其入口地址分別 記為記為r0、r1r7。要求編制程序根據(jù)變量。要求編制程序根據(jù)變量n的值的值 轉(zhuǎn)向相應(yīng)的處理程序(轉(zhuǎn)向相應(yīng)的處理程序(n為入口編號)。為入口編號)。data segment add bx,axbase dw r0,r1,r2,r3 mov ax,bx dw r4,r5,r6,r7 jmp ax n db 5 r0:data ends jmp ok code segment r1:
21、assume cs:code,ds:data jmp ok start:mov ax,data mov ds,ax r7: mov al,n ok:mov ah,4ch add al,al int 21h mov ah,0 code ends mov bx,offset base end start 3、循環(huán)結(jié)構(gòu)、循環(huán)結(jié)構(gòu) call proc1ret4 4、子程序、子程序 (1) 實現(xiàn)方法實現(xiàn)方法主程序有調(diào)用指令主程序有調(diào)用指令call子程序有返回指令子程序有返回指令ret(2) 特點特點 call指令與指令與ret缺一不可缺一不可現(xiàn)場保護(hù)現(xiàn)場保護(hù)入口出口參數(shù)設(shè)置入口出口參數(shù)設(shè)置子程序編寫子程
22、序編寫:1、子程序組成、子程序組成(1) 使用說明使用說明a、子程序功能、子程序功能b、使用寄存器情況、使用寄存器情況c、入口出口參數(shù)、入口出口參數(shù)(2) 程序體程序體入口出口參數(shù)傳遞入口出口參數(shù)傳遞現(xiàn)場保護(hù)現(xiàn)場保護(hù)功能程序段功能程序段例例:編寫編寫ax*10ax子程序子程序;這是一個乘;這是一個乘10子程序子程序;使用寄存器;使用寄存器ax;入口:;入口:ax,出口:,出口:axmul10proc farpush bx ;保護(hù)現(xiàn)場保護(hù)現(xiàn)場pushfadd ax,ax;2axmov bx,ax;2axbxadd ax,ax;4axadd ax,ax;8axadd ax,bx;10axpopf
23、;恢復(fù)現(xiàn)場;恢復(fù)現(xiàn)場pop bxretmul10endp功功能能程程序序段段2、現(xiàn)場保護(hù)和入口出口參數(shù)傳遞、現(xiàn)場保護(hù)和入口出口參數(shù)傳遞(1)現(xiàn)場保護(hù))現(xiàn)場保護(hù)方案一:在子程序中保護(hù)方案一:在子程序中保護(hù) 靈活,不方便靈活,不方便方案二:在主程序中保護(hù)方案二:在主程序中保護(hù) 方便,不靈活方便,不靈活(2)參數(shù)傳遞)參數(shù)傳遞寄存器傳遞寄存器傳遞變量傳遞變量傳遞堆棧傳遞堆棧傳遞一、一、pcdos執(zhí)行流程執(zhí)行流程biosibmbioibmdos鍵盤命令鍵盤命令命令處理程序命令處理程序文件管理文件管理基本輸入基本輸入/輸出輸出bios用戶程序用戶程序用戶程序用戶程序romibmbioibmdos二、二、dos系統(tǒng)子程序功能系統(tǒng)子程序功能1、磁盤管理、磁盤管理2、內(nèi)存管理、內(nèi)存管理3、系統(tǒng)輸入、系統(tǒng)輸入/輸出輸出共共87個子程序個子程序三、系統(tǒng)功能調(diào)用三、系統(tǒng)功能調(diào)用 對對87個子程序進(jìn)行編號,根據(jù)編號進(jìn)行相關(guān)處理個子程序進(jìn)行編號,根據(jù)編號進(jìn)行相關(guān)處理格式:格式:1、入口參數(shù)、入口參數(shù)(可選可選)2、編號、編號ah3、int 21h編號編號ahin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度二手房公積金貸款買賣合同(含綠化補償)3篇
- 2025年度車間承包與節(jié)能改造項目合同4篇
- 二零二五版冷庫庫房建設(shè)及設(shè)備采購一體化合同3篇
- 2025年度煤炭行業(yè)安全生產(chǎn)培訓(xùn)服務(wù)合同8篇
- 2025年度鋼棚廣告牌設(shè)計與安裝合同4篇
- 二零二五年度古建筑墻面修繕工程合同標(biāo)的協(xié)議2篇
- 2025版企業(yè)內(nèi)部行政公文范本仲裁申請書制作與實施合同3篇
- 二零二五版學(xué)術(shù)論文數(shù)據(jù)保密與知識產(chǎn)權(quán)授權(quán)合同4篇
- 二零二五年度電力工程合同補充合同范本2篇
- 二零二五年度生態(tài)大米批發(fā)供應(yīng)合同4篇
- 《面神經(jīng)炎護(hù)理措施分析》3900字(論文)
- 城市微電網(wǎng)建設(shè)實施方案
- 企業(yè)文化融入中華傳統(tǒng)文化的實施方案
- 9.1增強安全意識 教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 《化工設(shè)備機械基礎(chǔ)(第8版)》全套教學(xué)課件
- 人教版八年級數(shù)學(xué)下冊舉一反三專題17.6勾股定理章末八大題型總結(jié)(培優(yōu)篇)(學(xué)生版+解析)
- 2024屆上海高考語文課內(nèi)古詩文背誦默寫篇目(精校版)
- DL-T5024-2020電力工程地基處理技術(shù)規(guī)程
- 初中數(shù)學(xué)要背誦記憶知識點(概念+公式)
- 駕照體檢表完整版本
- 農(nóng)產(chǎn)品農(nóng)藥殘留檢測及風(fēng)險評估
評論
0/150
提交評論