




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計2第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計 匯編語言的基本要素 偽指令 匯編語言程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計3第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計 匯編語言的基本要素 偽指令 匯編語言程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計4第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言的格式 匯編語言中的常數(shù) 匯編語言中的運算符和表達式微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計5第四章:匯編語言程序設(shè)計第四
2、章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言的格式 匯編語言中的常數(shù) 匯編語言中的運算符和表達式微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計6第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言的格式 由匯編語言編寫的源程序是由許多語句(也可稱為匯編指令)組成的。每個語句由14個部分組成,其格式是: 標(biāo)號 指令助記符 操作數(shù) ;注解 標(biāo)識符:給指令或某一存儲單元地址所起的名字??捎上铝凶址M成: 字母:A z ; 數(shù)字:0 9 ; 特殊字符:?、 、一、$ 。數(shù)字不能作標(biāo)識符的第一個字符,而圓點僅能用作第一個字符。標(biāo)識符最長為3
3、1個字符。當(dāng)標(biāo)識符后跟冒號時,表示是標(biāo)號。它代表該行指令的起始地址;當(dāng)標(biāo)識符后不帶冒號時,表示變量;偽指令前的標(biāo)識符不加冒號。 指令助記符:表示不同操作的指令,可以是8086的指令助記符,也可以是偽指令。 操作數(shù): 指令執(zhí)行的對象。依指令的要求,可能有一個、兩個或者沒有。1. 注解:該項可有可無,是為源程序所加的注解,用于提高程序的可讀性。 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計7第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言的格式 匯編語言中的常數(shù) 匯編語言中的運算符和表達式微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計8第四章:匯編語
4、言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的常數(shù) 匯編語言中的常數(shù)可以分?jǐn)?shù)值常數(shù)和字符串常數(shù)兩類。數(shù)值常數(shù)按其基數(shù)的不同,可有二進制數(shù)、八進制數(shù)、十進制數(shù)、十六進制數(shù)等幾種不同的表示形式,匯編語言中采用不同的后綴加以區(qū)分。 B:表示二進制數(shù)。例如,10100101B。 D:表示十進制數(shù)。例如,278D或278。 Q:表示八進制數(shù)。例如,567Q,263Q。 H:表示十六進制數(shù)。例如,9AH,5678H。 字符串常數(shù)是由單引號括起來的一串字符。例如:THIS IS A STUDENT!12345 要指出的是,此處的12345其值并非是十進制數(shù)12345,而
5、是代表它們所對應(yīng)的ASCII碼,即31H,32H,33H,34H,35H。微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計9第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的運算符和表達式 在表達式中,運算符充當(dāng)著重要的角色。8086宏匯編有算術(shù)運算符、邏輯運算符、關(guān)系運算符、數(shù)值回送操作符和屬性操作符共5種。 數(shù)值回送(Value_returning)操作符可以把一些特征或存儲器地址的一部分作為數(shù)值回送。共有5個:SEG(求段基值)、OFFSET(求偏移量)、TYPE(求變量類型)、LENGTH(求字節(jié)數(shù))和SIZE(求字節(jié)數(shù))。其中LENGTH
6、和SIZE只對數(shù)據(jù)存儲器地址操作數(shù)有效。 屬性操作符可以用來建立和臨時改變變量或標(biāo)號的類型以及存儲器操作數(shù)的存儲單元類型,而忽略當(dāng)前的屬性。共有6個:PTR、段屬性前綴、SHORT、THIS、HIGH和LOW。微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計10第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯匯編語言的基本要素編語言的基本要素 匯編語言中的運算符和表達式 算術(shù)運算符算術(shù)運算符邏輯運算符邏輯運算符關(guān)系運算符關(guān)系運算符數(shù)值回送運算符數(shù)值回送運算符屬性運算符屬性運算符+(加法加法)AND(與與)EQ(相等相等)TYPEPTR-(減法減法)OR(或或)NE(不等不等)LENGTHTHI
7、S*(乘法乘法)XOR(異或異或)LT(小于小于)SIZESHORT/(除法除法)NOT(非非)GT(大于大于)OFFSETHIGHMOD(求余求余)LE(小于等于小于等于)SEGLOWGE(大于等于大于等于)微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計11第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的運算符和表達式數(shù)值回送操作符 SEG運算符:利用運算符SEG可以得到一個標(biāo)號或變量的段基址 格式:SEG變量名或標(biāo)號名 例如:已知數(shù)據(jù)段DATA從存儲器實際地址03000H開始,作如下定義后,用SEG運算符求變量所在的段基址。DATASEGM
8、ENT;定義數(shù)據(jù)段VAR1DB10H,18H,25H,34H;定義字節(jié)數(shù)據(jù)VAR2DW2300H,1200H;定義字?jǐn)?shù)據(jù)VAR3DD11002200H,33004400H;定義雙字?jǐn)?shù)據(jù)DATAENDS;數(shù)據(jù)段結(jié)束 MOV BX,SEG VAR1匯編成: MOV BX,0300H MOV CX,SEG VAR2匯編成: MOV CX,0300H MOV DX,SEG VAR3匯編成; MOV DX,0300H微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計12第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的運算符和表達式數(shù)值回送操作符 OFFSET
9、運算符:利用運算符OFFSET可以得到一個標(biāo)號或變量的偏移量。 使用格式:OFFSET 變量名或標(biāo)號名DATASEGMENT;定義數(shù)據(jù)段VAR1DB10H,18H,25H,34H;定義字節(jié)數(shù)據(jù)VAR2DW2300H,1200H;定義字?jǐn)?shù)據(jù)VAR3DD11002200H,33004400H;定義雙字?jǐn)?shù)據(jù)DATAENDS;數(shù)據(jù)段結(jié)束 MOV BX,OFFSET VAR1 匯編成: MOV BX,0000H MOV CX,OFFSET VAR2 匯編成: MOV CX,0004H MOV DX,OFFSET VAR3 匯編成: MOV DX,0008H微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計1
10、3 匯編語言中的運算符和表達式數(shù)值回送操作符TYPE運算符:TYPE運算符可加在變量、結(jié)構(gòu)或標(biāo)號的前面,所求出的是這些存儲器操作數(shù)的類型部分。運算符TYPE的運算結(jié)果是一個數(shù)值,這個數(shù)值與存儲器操作數(shù)類型屬性的對應(yīng)關(guān)系。MOV BX,TYPE VAR1 匯編成: MOV BX,1MOV CX,TYPE VAR2 匯編成: MOV CX,2MOV DX,TYPE VAR3 匯編成: MOV DX,4存儲操作數(shù)類型存儲操作數(shù)類型 TYPE返回值返回值字節(jié)數(shù)據(jù)字節(jié)數(shù)據(jù)BYTE(DB定義)定義)1字?jǐn)?shù)據(jù)字?jǐn)?shù)據(jù)WORD(DW定義)定義)2雙字?jǐn)?shù)據(jù)雙字?jǐn)?shù)據(jù)DWORD(DD定義)定義)4第四章:匯編語言程序
11、設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計14第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的運算符和表達式數(shù)值回送操作符 LENGTH運算符:LENGTH運算符放在數(shù)組變量的前面,可以求出該數(shù)組中所包含的變量的個數(shù)。 ARRAY1 DB 100DUP(?)ARRAY2 DW 10DUP(?) ARRAY3 DD 10DUP(?)下列指令:MOV BX,LENGTH ARRAY1匯編后:MOV BX,100MOV CX,LENGTH ARRAY2匯編后:MOV CX,10MOV
12、 DX,LENGTH ARRAY3匯編后:MOV DX,10微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計15第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的運算符和表達式數(shù)值回送操作符 SIZE運算符:如果一個變量已經(jīng)用重復(fù)操作符DUP加以說明,則利用SIZE運算符可以得到分配給該變量的字節(jié)總數(shù)。 ARRAY1 DB 100DUP(?)ARRAY2 DW 10DUP(?) ARRAY3 DD 10DUP(?)下列指令:MOV BX,SIZE ARRAY1匯編后:MOV BX,100MOV CX,SIZE ARRAY2匯編后:MOV CX,20
13、MOV DX,SIZE ARRAY3匯編后:MOV DX,40微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計16第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言的基本要素語言的基本要素 匯編語言中的運算符和表達式屬性操作符 PTR運算符:用來建立一個符號地址。其本身并不分配存儲器,只是用來給已分配的存儲器地址賦予另一種屬性,使該地址具有另一種類型。 VAR1DB 10H,18H,25H,34HVAR2DW 1223H,1200HMOV AX, WORD PTR VAR1 執(zhí)行后:AX=1810HMOV BL, BYTE PTR VAR2 執(zhí)行后:BL=23H 微型計算機基本原理與其
14、應(yīng)用匯編語言程序相關(guān)設(shè)計17第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計 匯編語言的基本要素 偽指令 匯編語言程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計18第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 偽指令用來對匯編程序進行控制,對程序中的數(shù)據(jù)實現(xiàn)條件轉(zhuǎn)移、列表、存儲空間分配等處理,其格式和匯編指令一樣,但一般不產(chǎn)生目的代碼,即不直接命令CPU去執(zhí)行什么操作。 亦即它不像機器指令那樣是在程序運行期間由計算機來執(zhí)行的,而是在匯編程序?qū)υ闯绦騾R編期間由匯編程序處理的操作。微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計19第四章:匯編語言程序設(shè)計第四章:匯編語言程序
15、設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計20第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計21第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 該類偽指令用來定義存貯空間及其所存數(shù)據(jù)的長度。 DB:定義字節(jié),即每個數(shù)據(jù)是1個字節(jié)。 D
16、W:定義字,即每個數(shù)據(jù)占1個字(2個字節(jié))。 DD:定義雙字,即每個數(shù)據(jù)占2個字。低字部分在低地址,高字部分在高地址。 DQ:定義4字長,即每個數(shù)據(jù)占4個字。 DT:定義10個字節(jié)長,用于壓縮式十進制數(shù)據(jù)。 例如:DATA1 DB 10H,6,78H,100 表示從DATA1單元開始連續(xù)存放10H,6,78H,100,共占4個字節(jié)地址。 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計22第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指令偽指令 定義數(shù)據(jù)偽指令DATA1DB20HDATA2DW0240H,1000HDATA3DB(-1*3),(15/5)DATA4DD12345HDATA5D
17、B0123DATA6DWAB,C,DDATA7DB?DATA8DD?DATA9DB5DUP(00)DATA10DW3DUP(?)微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計23第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計24第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 符號定義偽指令 EQU偽指令給符號定義一個值。在程序中,凡是出現(xiàn)該符號的地方,匯編時均用其值代替,如: COUNT EQU
18、 100;COUNT代替常數(shù)100SUMEQU 30*25;SUM代替數(shù)值表達式CEQU CX;C代替寄存器CXMEQU MOV ;M代替指令助記符MOV 需要注意的是,一個符號一經(jīng)EQU偽指令賦值后,在整個程序中,不允許再對同一符號重新賦值。 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計25第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計26第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 段定
19、義偽指令 段定義偽指令的用途是在匯編語言程序中定義邏輯段,用它來指定段的名稱和范圍,并指明段的定位類型、組合類型及類別。常用的段定義為指令有SEGMENT和ENDS。 段名 SEGMENT 定位類型 組合類型 類別 (段內(nèi)語句系列)段名 ENDS微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計27第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 段定義偽指令DATA1 SEGMENT DATA1 ENDSSTACK1 SEGMENT STACK STACK1 ENDSCODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1,SS:STACK1 MOV AX,DAT
20、A MOV DS,AX MOV AX,STACK MOV SS,AX CODE1 ENDS微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計28第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計29第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 設(shè)定段寄存器偽指令 設(shè)定段寄存器偽指令用來通知匯編程序哪一個段寄存器是該段的段寄存器,以便對使用變量或標(biāo)號的指令匯編出正確的目的代碼。常用的段定義為指令有ASS
21、UME。 ASSUME 段寄存器:段名,段寄存器:段名, 注意:由于ASSUME偽指令只指明某一個段地址應(yīng)存于哪一個段寄存器中,并沒有包含將段地址送入該寄存器的操作。因此要將真實段地址裝入段寄存器還需用匯編指令來實現(xiàn)。這一步是不可缺少的。 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計30第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 設(shè)定段寄存器偽指令DATA1 SEGMENT DATA1 ENDSSTACK1 SEGMENT STACK STACK1 ENDSCODE1 SEGMENT ASSUME CS:CODE1,DS:DATA1,SS:STACK1 MOV AX,DAT
22、A MOV DS,AX MOV AX,STACK MOV SS,AX CODE1 ENDS微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計31第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計32第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義過程偽指令 在程序設(shè)計中,可將具有一定功能的程序段看成為一個過程(相當(dāng)于一個子程序),它可以被別的程序調(diào)用。一個過程由偽指令PROC和ENDP來定義。過程名
23、 PROC 類型 過程體 RET 過程名 ENDP 其中過程名是為過程所起的名稱,不能省略,過程的類型由FAR(遠過程,為段間調(diào)用)和NEAR(近過程,在本段內(nèi)調(diào)用)來確定,如果缺省類型,則該過程就默認為近過程。ENDP表示過程結(jié)束。過程體內(nèi)至少應(yīng)有一條RET指令,以便返回被調(diào)用處。過程可以嵌套,也可以遞歸使用。 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計33第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義過程偽指令DELAYPROC MOV BL,10DELY:MOV CX,2801WAIT:LOOPWAIT DEC BL JNZ DELY RETDELAYENDP 微
24、型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計34第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計35第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 宏指令 在匯編語言書寫的源程序中,若有的程序段要多次使用,為了簡化程序書寫,該程序段可以用一條宏指令來代替,而匯編程序匯編到該宏指令時,仍會產(chǎn)生源程序所需的代碼。 宏指令的一般格式為: 宏指令名 MACRO 形式參量表 宏體 ENDM 例如:SHIFT
25、 MACROMOV CL,4SAL AL,ClENDM 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計36第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計37第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 ORG偽指令ORG偽指令規(guī)定了在某一段內(nèi),程序或數(shù)據(jù)代碼存放的起始偏移地址。 一般格式: ORG 例如: DATASEGMENT BUFF1 DB23,56H,EOF ORG2000H BUFF
26、2 DBSTRING DATAENDS 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計38第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 定義數(shù)據(jù)偽指令 符號定義偽指令 段定義偽指令 設(shè)定段寄存器偽指令 定義過程的偽指令 宏指令 ORG偽指令 匯編結(jié)束偽指令END微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計39第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計偽指偽指令令 匯編結(jié)束偽指令END 該偽指令表示源程序的結(jié)束令匯編程序停止匯編。因此,任何一個完整的源程序均應(yīng)有END指令。一般格式: END 表達式其中表達式表示該匯編程序的啟動地址。例如:END START ;表明該程序
27、的啟動地址為START。微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計40第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計 匯編語言的基本要素 偽指令 匯編語言程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計41第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 匯編語言程序設(shè)計概述 順序程序設(shè)計 選擇程序設(shè)計 循環(huán)程序設(shè)計 子程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計42第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 匯編語言程序設(shè)計概述 順序程序設(shè)計 選擇程序設(shè)計 循環(huán)程序設(shè)計 子程序設(shè)計微型計算機基本原理與
28、其應(yīng)用匯編語言程序相關(guān)設(shè)計43第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 匯編語言程序設(shè)計概述1編寫源程序 在弄清問題的要求,確定方案后,匯編語言程序設(shè)計者便可依據(jù)前面的指令系統(tǒng)和匯編語言的規(guī)定,逐個模塊地編寫匯編語言源程序。2源程序輸入微型機 在編輯軟件或其他編輯軟件的支持下,將源程序輸入到計算機中。通常,匯編語言源程序的擴展名為 ASM。3匯編 利用匯編程序(或宏匯編程序)(ASM或MASM)對匯編語言源程序進行匯編,產(chǎn)生擴展名為OBJ的可重定位的目的代碼。4連接 利用連接程序(LINK)可將一個或多個擴展名為OBJ文件進行連接,生成擴展名為擴展名為E
29、XE的可執(zhí)行文件。 5調(diào)試 對于稍大一些的程序來說,經(jīng)過上述步驟所獲得的 EXE可執(zhí)行文件,在運行過程中難免無錯。調(diào)試匯編程序最常用的工具是動態(tài)調(diào)試程序DEBUG。微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計44第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 匯編語言程序設(shè)計概述匯編語言源程序編輯程序匯編程序ASM或MASM連接程序LINK調(diào)試程序DEBUG修 改出錯出錯.ASM.OBJ.EXEEDIT.EXE微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計45第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 匯編語言程序設(shè)計概
30、述 順序程序設(shè)計 選擇程序設(shè)計 循環(huán)程序設(shè)計 子程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計46第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 順序程序設(shè)計 對于一些簡單的數(shù)據(jù)處理,只要把完成處理的各個步驟用匯編語言描述清楚,讓計算機按指令編寫的次序從頭到尾一條條執(zhí)行即可,這樣的程序結(jié)構(gòu)稱為順序結(jié)構(gòu)。 【例4-1】已知X和Y是數(shù)據(jù)段中的兩個無符號字節(jié)單元,用程序完成表達式Z=(X2Y2)/2的計算。微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計47第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 順序程序設(shè)計 DATA
31、SEGMENTXDB 15YDB 34ZDW ?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AX;初始化數(shù)據(jù)段MOVAL,X;X中的內(nèi)容送ALMULAL;計算XXMOVBX,AX;XX乘積送BXMOV AL,Y;Y中的內(nèi)容送ALMULAL;計算YYADDAX,BX;計算X2Y2SHRAX,1;計算(X2Y2)/2MOV Z,AX;結(jié)果送Z單元MOV AH,4CHINT21H;返回DOSCODEENDSEND START;匯編結(jié)束微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計48第四章:匯編語言程序設(shè)計第四章:匯
32、編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 順序程序設(shè)計【例4-2】從鍵盤讀入兩個一位數(shù)(按鍵時保證按下的是數(shù)字鍵),顯示它們的積。先后從鍵盤上讀取兩個按鍵,分別減去30H得到它們對應(yīng)的數(shù)值,然后相乘分解成十位數(shù)字與個位數(shù)字,轉(zhuǎn)換成ASC碼后依次輸出即可。為了輸入輸出效果的直觀,有必要在每次按鍵后回車換行。 CODESEGMENTASSUMECS:CODEMAIN: MOV AH,1INT21H;讀入第1個數(shù)字MOVBL,AL;保存在BL中MOVAH,2MOVDL,13INT21H;回車MOVDL,10INT 21H;換行MOVAH,1INT21H;讀入第2個數(shù)字SUBAL,30H;第2個
33、數(shù)字轉(zhuǎn)換成十進制數(shù)SUBBL,30H;第1個數(shù)字轉(zhuǎn)換成十進制數(shù)MULBL;兩個數(shù)相乘,積在AX中微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計49第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 順序程序設(shè)計MOVBL,10;DIVBL;積除以10取商送AL,余數(shù)在AH中ADDAX,3030H;轉(zhuǎn)換成相應(yīng)的ASC碼MOVBX,AX;保存在BX中MOVAH,2MOVDL,13INT21H;回車MOVDL,10INT21H;換行MOV DL,BLMOVAH,2INT21H;輸出十位數(shù)MOVDL,BHINT21H;輸出個位數(shù)MOVAH,4CHINT21H;返回DOSC
34、ODEENDSENDMAIN;程序結(jié)束微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計50第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 匯編語言程序設(shè)計概述 順序程序設(shè)計 選擇程序設(shè)計 循環(huán)程序設(shè)計 子程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計51第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 選擇程序設(shè)計 選擇程序是利用條件轉(zhuǎn)移指令,使程序執(zhí)行到某一指令后,根據(jù)條件是否滿足,來改變程序執(zhí)行的次序。在程序設(shè)計中經(jīng)常會遇到各種判斷和比較,例如“相等”和“不相等”;“正”和“負”;“大于”和“小于”;“滿足條件”和“不
35、滿足條件”等等,這些判斷和比較在程序中都可以組成各種不同的邏輯框,并產(chǎn)生相應(yīng)的分支程序。 分支程序段2分支程序段3分支程序段1結(jié)束條件1條件2是否是否微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計52第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 選擇程序設(shè)計 1 當(dāng)X0【例4-3】符號函數(shù)Y=0當(dāng)X=0 (128X+127) 1 當(dāng)X0 設(shè)任意給定的X存放在XX單元,計算出函數(shù)Y值要求存放在YY單元。 開 始X X A L- 1 A L1 A LA L Y Y 單 元A L 0A L = 0YN結(jié) 束微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計53第四章:
36、匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 選擇程序設(shè)計 DATASEGMENTXXDB0F0HYYDB?DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART PROCFARPUSHDS SUBAX,AXPUSHAX MOVAX,DATAMOVDS,AX MOVAL,XXCMPAL,0JGEBIGRMOVAL,0FFHMOVYY,ALRETBIGR:JEEQULMOVAL,1EQUL:MOVYY,ALRETSTART ENDPCODEENDSENDSTART 微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計54第四章:匯編語言
37、程序設(shè)計第四章:匯編語言程序設(shè)計匯編匯編語言程序設(shè)計語言程序設(shè)計 匯編語言程序設(shè)計概述 順序程序設(shè)計 選擇程序設(shè)計 循環(huán)程序設(shè)計 子程序設(shè)計微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計55第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 循環(huán)程序設(shè)計 循環(huán)程序是強制CPU重復(fù)執(zhí)行某一指令系列的一種程序結(jié)構(gòu)形式,它可以使許多重復(fù)工作的程序大為簡化,而且減少內(nèi)存空間。被重復(fù)執(zhí)行的部分稱作循環(huán)體,要想把循環(huán)體多次執(zhí)行,就必須在循環(huán)體的前后有相應(yīng)的指令實現(xiàn)循環(huán)控制。 循環(huán)程序一般由4部分組成:初始化、循環(huán)體、循環(huán)控制和循環(huán)結(jié)束處理。開始初始化循環(huán)體循環(huán)控制判斷結(jié)束處理
38、結(jié)束是否開始外循環(huán)初始化內(nèi)循環(huán)初始化內(nèi)循環(huán)體內(nèi)控制外循環(huán)體外控制結(jié)束是是否否微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計56第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 循環(huán)程序設(shè)計 【例4-4】現(xiàn)將以AREA1為首地址的100個字節(jié)數(shù)據(jù)搬移到以AREA2為首地址的內(nèi)存中去。DATASEGMENTAREA1 DB100 DUP (?)AREA2 DB100 DUP (00)DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSET AREA1MOVDI,OFFS
39、ET AREA2MOVCX,100AGAIN:MOVAL,SIMOVDI,ALINCSIINCDIDECCXJNZAGAINMOVAH,4CHINT21HCODEENDSENDSTART微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計57第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 循環(huán)程序設(shè)計 【例4-5】若有一串無符號數(shù),放在NUM開始的單元中,要求編制匯編語言程序,將其中的最大值找出來,且放到存儲單元MAX中,這串?dāng)?shù)的長度已存放在COUNT單元。DATASEGMENTCOUNT DW20NUMDW7,9,12,14,1,3,28,55,121,44,15
40、,45,34,67,87,90,32,43,59,60MAXDW?DATAENDSSTACK SEGMENT PARA STACK STACKDB20 DUP (?)STACK ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARPUSHDSMOVAX,0PUSH AX微型計算機基本原理與其應(yīng)用匯編語言程序相關(guān)設(shè)計58第四章:匯編語言程序設(shè)計第四章:匯編語言程序設(shè)計匯編語言程序設(shè)計匯編語言程序設(shè)計 循環(huán)程序設(shè)計MOVAX,DATAMOVDS,AXMOVBX,OFFSET NUMMOVCX,COUNTMOVAX,BXINCBXINCBXLOOP1: C
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 育嬰師緊急處理技巧試題及答案
- 本科心理學(xué)試題及答案
- 育嬰師溝通中的職業(yè)素養(yǎng)試題及答案
- 激光材料處理基礎(chǔ)試題及答案
- 深度剖析衛(wèi)生管理的重要試題及答案
- 系統(tǒng)規(guī)劃與管理師的客戶關(guān)系管理技術(shù)與方法試題及答案
- 把握2025年稅務(wù)師考試命題趨勢試題及答案
- 激光智能化系統(tǒng)的構(gòu)建與應(yīng)用方案試題及答案
- 系統(tǒng)架構(gòu)設(shè)計師考試中的個人特質(zhì)與環(huán)境適應(yīng)試題及答案
- 系統(tǒng)規(guī)劃師職業(yè)素養(yǎng)的考核試題
- 血液透析操作流程(共5篇)
- 脊柱常見病變的影像診斷
- 紀(jì)錄片賞析完整版
- GB/T 30103.1-2013冷庫熱工性能試驗方法第1部分:溫度和濕度檢測
- GB/T 21385-2008金屬密封球閥
- GB/T 211-2017煤中全水分的測定方法
- (紅皮書)水利水電工程施工質(zhì)量評定表
- 工序標(biāo)準(zhǔn)工時及產(chǎn)能計算表
- 處分通報范文員工處分通報范文4篇
- 汽車品牌馬自達課件
- (新版)內(nèi)科主治醫(yī)師中級職稱(代碼303)醫(yī)學(xué)衛(wèi)生資格考試題庫(真題導(dǎo)出版)
評論
0/150
提交評論