版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第六章匯編語言程序設(shè)計一.匯編語言語法二.匯編語言程序設(shè)計三.匯編程序及上機設(shè)計四.DOS及BIOS功能調(diào)用五.任務(wù)切換與混合語言編程
武漢理工通信原理第六章匯編語言程序設(shè)計6.1匯編語言語法一、計算機程序設(shè)計語言的演變
1)機器語言:直接用機器指令來編制計算機程序的方法
2)匯編語言:可以用助記符來表示指令的操作和操作數(shù),也可以用標(biāo)號和符號來代替地址、常量和變量。
武漢理工通信原理第六章匯編語言程序設(shè)計
3)高級語言:更接近于人們的自然語言和習(xí)慣的教學(xué)語言來描述算法的執(zhí)行過程,從而使編寫的過程更加直觀和簡練。最近,計算機語言的另一個發(fā)展方向是混合語言程序設(shè)計?;旌险Z言并不是一種新出現(xiàn)的自成系統(tǒng)的新型語言,它采用兩種或兩種以上的編程語言加以組合編程,是一種程序接口技術(shù),實現(xiàn)不同語言程序之間的相互調(diào)用。
武漢理工通信原理第六章匯編語言程序設(shè)計二、為什么要用匯編語言編寫程序1)匯編語言非常接近機器語言程序,通過編制匯編語言程序,可以清楚地了解計算機的工作過程。2)現(xiàn)在的微機系統(tǒng)中,底層的一些功能仍然靠匯編語言程序來實現(xiàn)。3)匯編語言程序的效率通常高于高級語言程序。
武漢理工通信原理第六章匯編語言程序設(shè)計三、匯編語言的語句種類及其格式
1、指令語句:每一條指令語句在匯編時都要產(chǎn)生一個可供機器執(zhí)行的機器目標(biāo)代碼,所以這種語言又叫可執(zhí)行語句。指令語句的可是如下:
標(biāo)號:(前綴指令)助記符(操作數(shù));(注釋)
1)標(biāo)號。這是一個任選字段。標(biāo)號是指令語句的標(biāo)識符,在語句之首,必須以“:”作為結(jié)束符。對標(biāo)號的規(guī)定:①由字符A~Z,a~z,0~9及符號@、$、下劃線_等組成,最長31個字符,超出部分忽略。②不能用數(shù)字打頭,以免與十六進制數(shù)相混。③不使用匯編程序中的保留字。(如指令的助記符等)④對定義的符號不區(qū)分大小寫。
武漢理工通信原理第六章匯編語言程序設(shè)計2)指令助記符。這是為指令操作碼規(guī)定的符號。3)操作數(shù)。可以根據(jù)指令的功能的需要,可不帶操作數(shù),帶一個操作數(shù)或兩個操作數(shù),若有兩個操作數(shù)時,中間用“,”號分開。操作數(shù)給出參與操作的數(shù)或數(shù)所在的地方。操作數(shù)可以是常數(shù)、寄存器、存儲器操作數(shù)、標(biāo)號名、過程名或表達(dá)式等。4)注釋。注釋是為了方便程序員閱讀程序而加的說明。
武漢理工通信原理第六章匯編語言程序設(shè)計四、
常數(shù)、標(biāo)號、變量及表達(dá)式
1、常數(shù):指令中出現(xiàn)的那些固定值和字符串常數(shù)兩類。
2、標(biāo)號:用符號表示的地址,稱為符號地址,用以指示此指令語句所在的地址。
3、變量:變量是與一個數(shù)據(jù)項的第一字節(jié)相對應(yīng)的標(biāo)識符,它表示該數(shù)據(jù)第一字節(jié)在現(xiàn)行段中的偏移量。
4、表達(dá)式:表達(dá)式由操作數(shù)和運算符組成。
武漢理工通信原理第六章匯編語言程序設(shè)計常數(shù)給出具體的數(shù)據(jù)??梢允菙?shù)字常量或字符常量。◢◢
數(shù)字默認(rèn)十進制,也可加D表示十進制數(shù)。如
1234D,1234◢
◢
數(shù)字后加B表示二進制數(shù)。如
1010B◢
◢
數(shù)字后加H表示十六進制數(shù)。如1234H◢
◢
字符常量,用單引號表示。如‘1234’
匯編時,用字符對應(yīng)的ASCII表示。如
31H,32H,33H,34H例
data1DB12,34,56;十進制
data2DB12H,34H,56H;十六進制
MOVAL,‘G’;字符
stringDB‘1234’;字符串
武漢理工通信原理第六章匯編語言程序設(shè)計A、B、C、D、E、F開頭的十六進制數(shù)前面加0,與H結(jié)尾的標(biāo)識符區(qū)別。如寄存器名AH、BH、CH、
DH
變量名abcdH等例
movAL,0AHmovAL,AHmovBX,0abcdH
武漢理工通信原理第六章匯編語言程序設(shè)計標(biāo)號標(biāo)號是符號表示的地址,稱為符號地址,標(biāo)號具有段地址,偏移地址,和類型3個屬性類型屬性有NEAR和FAR類型
武漢理工通信原理第六章匯編語言程序設(shè)計
變量變量的值在程序運行過程中可隨時修改變量有3個屬性:(1)段地址:變量所在段的段地址。 (2)偏移地址:變量所在段的偏移地址。 (3)類型:變量所占的字節(jié)數(shù)。變量名DB表達(dá)式定義字節(jié)變量變量名DW表達(dá)式定義字變量變量名DD表達(dá)式定義雙字變量變量名DQ表達(dá)式定義長字變量(8個字節(jié))變量名DT表達(dá)式定義十字節(jié)變量武漢理工通信原理第六章匯編語言程序設(shè)計
上述偽指令中表達(dá)式的形式:(1)一個或多個常數(shù),或運算公式(結(jié)果為常數(shù))當(dāng)有多個常數(shù)時,兩兩之間用逗號分隔。從左到右由低地址向高地址順序存儲。(2)字符串用引號括住,長度不超過255。從左到右由低地址向高地址以ASCII碼順序存儲。(3)問號?(通配符)僅留出用于存儲數(shù)據(jù)的單元,但不改變單元中原有的數(shù)據(jù)。(4)DUP(重復(fù)方式)重復(fù)次數(shù)DUP(表達(dá)式);將表達(dá)式重復(fù)預(yù)置。武漢理工通信原理第六章匯編語言程序設(shè)計
例:HUADB2DUP(‘HUA’,3DUP(0))該指令將數(shù)據(jù)塊(‘HUA’,3DUP(0))重復(fù)2次,而數(shù)據(jù)塊(‘HUA’,3DUP(0))以字符串HUA開始,接下來是3個0。在內(nèi)存中的存儲情況如圖所示:首單元48H55H41H00H00H00H48H55H41H00H00H00HDUP可以重疊使用,相當(dāng)于大循環(huán)中嵌套小循環(huán)武漢理工通信原理第六章匯編語言程序設(shè)計
(5)地址表達(dá)式(僅用于DW或DD)使用DW時:地址表達(dá)式中的變量名稱表示變量第一個單元的偏移地址
標(biāo)號表示指令的第一個字節(jié)的偏移地址。使用DD時:
低兩字節(jié)為偏移地址,高兩字節(jié)為段地址。地址表達(dá)式中的變量或標(biāo)號可與常數(shù)相加減,結(jié)果仍為偏移地址,常數(shù)表示位移量:+表示向高地址方向移動;-表示向低地址方向移動。變量與標(biāo)號之間不能相加,但可以相減,其結(jié)果為一常數(shù),表示兩者之間的距離。武漢理工通信原理第六章匯編語言程序設(shè)計
例:P163DATA1DB20HDATA2DW0204H,100HDATA3DB(-1*3),(15/3)DATA4DD12345HDATA5DB‘0123’DATA6DW‘AB’,’C’,’D’DATA7DB?DATA8DD?DATA9DB5DUP(00)DATA10DW3DUP(?)武漢理工通信原理第六章匯編語言程序設(shè)計
表達(dá)式由常量、標(biāo)號(標(biāo)識符)、變量和一些操作符構(gòu)成。匯編程序?qū)Ρ磉_(dá)式進行運算后,得到一個確定的數(shù)值,再把這個數(shù)值匯編到指令中。據(jù)表達(dá)式所表示的內(nèi)容分:數(shù)字表達(dá)式、地址表達(dá)式。表達(dá)式是指令或偽操作的操作數(shù);
表達(dá)式中的操作符由匯編程序完成。例
MOVAX,12-4;MOVAX,8;數(shù)字表達(dá)式
LEABX,[string+4];地址表達(dá)式
武漢理工通信原理第六章匯編語言程序設(shè)計表達(dá)式中的操作符有以下幾類:(1)算術(shù)運算符(+、-、*、/、MOD)(2)邏輯運算符(AND、OR、NOT、XOR)(3)關(guān)系運算符(EQ、NE、GT、GE、LT、LE)
真:FFFFH;假:0(4)分析運算符(SEG、OFFSET、
TYPE、SIZE、LENGTH)(5)綜合運算符(PTR,THIS)(6)地址記數(shù)器($)
武漢理工通信原理第六章匯編語言程序設(shè)計例:
(1)算術(shù)運算符(+、-、*、/、MOD(取余數(shù)))MOVAX,6*8←MOVAX,48AMODB;用A除以B,保留運算的余數(shù)。要求A、B均為正整數(shù)。(2)邏輯運算符(AND、OR、NOT、XOR)MOVAX,80hOR70h←MOVAX,0F0h
邏輯運算符可以嵌套、組合使用如P165例MOVBX,((PORTLT5)AND20)OR((PORTGE5)AND30)思考:若要求當(dāng)PORT的值大于5而小于10時,為BX賦值40應(yīng)如何編寫指令?(3)關(guān)系運算符(EQ、NE、GT、GE、LT、LE)
真:FFFFH;假:0MOVAX,1GE2←MOVAX,0
武漢理工通信原理第六章匯編語言程序設(shè)計(4)分析運算符:
TYPE,LENGTH,SIZE,OFFSET,SEG5種。把一些特征或存貯器地址的一部分作為數(shù)值回送。①類型運算符TYPE格式:TYPEvariable變量或label標(biāo)號回送該變量以字節(jié)數(shù)表示的類型
(DB為1,DW為2,DD為4,DQ為8,DT為10)回送標(biāo)號類型數(shù)值(NEAR為1,F(xiàn)AR為2)例: ARRAYDW1,2,3ADDSI,TYPEARRAY匯編程序其形式:ADDSI,2
武漢理工通信原理第六章匯編語言程序設(shè)計②LENGTH格式:LENGTHvariable
對于變量中使用DUP,匯編回送分配給變量單元數(shù),其他情況回送1。例: FESSDW100DUP(0)對于 MOVCX,LENGTHFEES匯編程序?qū)⑵湫问剑?MOVCX,100其他情況:例: ARRAYDW1,2,3對于指令 MOVCX,LENGTHARRAY匯編程序?qū)⑹蛊湫问綖椋篗OVCX,1例: TABLEDB‘ABCD’對于指令 MOVCX,LENGTHTABLE匯編程序使其形式為: MOVCX,1
武漢理工通信原理第六章匯編語言程序設(shè)計③SIZE格式:SIZEvariable
回送分配給該變量的字節(jié)數(shù)LENGTH*TYPE例: FEESDW100DUP(0)
MOVCX,SIZEFEES
將形成:MOVCX,200例: TABLEDB‘ABCD’ MOVCX,SIZETABLE
將形成:MOVCX,1例: ARRAYDW1,2,3 MOVCX,SIZEARRAY
形成:MOVCX,2 LENGTH*TYPE=2
武漢理工通信原理第六章匯編語言程序設(shè)計④OFFSET格式:OFFSETvariable變量或
label標(biāo)號取出變量名或標(biāo)號所在段的偏移地址例MOVBX,OFFSETyy⑤SEG格式:SEGvariable變量或label標(biāo)號取出變量名或標(biāo)號所在段的段地址
例MOVAX,SEGyy
武漢理工通信原理第六章匯編語言程序設(shè)計bb SEGMENT
yy DB6dup(?)bb ENDScc SEGMENT ASSUMECS:cc,DS:aa,ES:bbstart
: CLD MOVAX,SEGyy MOVES,AX MOVDI,OFFSETyy
MOVCX,6 …….
cc ENDS
ENDstart
武漢理工通信原理第六章匯編語言程序設(shè)計小結(jié):①TYPE變量的返回值是類型的字節(jié)數(shù): DB為1,DW為2,DD為4,DQ為8,DT為10;②
TYPE標(biāo)號的返回值是:
NEAR為1,F(xiàn)AR為2。③
LENGTH變量返回:
DUP分配的單元數(shù),對于其他情況則返回1。④SIZE返回值是:
LENGTH和TYPE值的乘積,即變量的字節(jié)數(shù)。
武漢理工通信原理第六章匯編語言程序設(shè)計注意:SEG、OFFSET只能對符號地址操作MOVAX,SEG[BX]MOVBX,OFFSET[SI]
武漢理工通信原理第六章匯編語言程序設(shè)計(5)綜合運算符(PTR,THIS)
PTR用來對存貯單元規(guī)定類型格式:類型PTR表達(dá)式(或地址表達(dá)式)類型可為變量類型BYTE,WORD,DWORD
或標(biāo)號類型NEAR,FAR例:MOVBYTEPTRDATA3,ALMOVBYTEPTR[BX],10H
例1將(AL)送DATA3對應(yīng)的一個字節(jié)中,DATA3臨時定義為字節(jié)變量,原先DATA3定義的字類型沒有修改。例2是利用PTR算符明確類型不明確的地址表達(dá)式的類型。
武漢理工通信原理第六章匯編語言程序設(shè)計THIS用來規(guī)定所指變量或標(biāo)號的類型屬性或距離屬性格式:THIS類型類型可為BYTE,WORD,DWORD或距離NEARFAR
例XYZEQUTHISBYTE;將字節(jié)屬性賦予XYZFOUTEQUFAR;將距離屬性賦予FOUT(6)匯編地址計數(shù)器$
用來標(biāo)識匯編程序當(dāng)前的位置例在數(shù)據(jù)段定義的常量和變量如下
W1DWB3符號常量C1的值等于變量
B1DB’ABC’W2的個數(shù)
W2DW-4,1234HC1EQU($-W2)/2
…….
武漢理工通信原理第六章匯編語言程序設(shè)計6.1.5偽指令
1)方式偽指令
2)賦植偽指令EQU3)定義變量偽指令
4)定義存儲單元類型的偽指令BYTE、WORDDWORD5)LABEL定義標(biāo)號名稱和屬性偽指令
6)SEG和OFFEST取段和偏移地址偽指令
7)TYPE、SIZE和LENGTH存儲器地址操作數(shù)類型,字節(jié)單元數(shù)
8)段定義偽指令
9)過程定義偽指令PROC,ENDP,NEAR,F(xiàn)AR10)定義結(jié)構(gòu)的偽指令STRUC/ENDS11)IFELSEENDIF條件匯編偽指令
12)邏輯運算偽指令A(yù)ND、OR、XOR、NOT13)訪問外部標(biāo)識符的偽指令EXTRN、PUBLIC14)源程序結(jié)束偽指令END15)常用偽指令表(p177)
武漢理工通信原理第六章匯編語言程序設(shè)計一)賦植偽指令EQU格式
符號名EQU需等值的表達(dá)式作用是用符號名等值指定的表達(dá)式,符號名稱為符號常量其中:
表達(dá)式可以是任何有效的操作數(shù)匯編時用語句中的表達(dá)式代替程序中符號所在的地方。應(yīng)用:1.定義符號常量,方便修改程序。2.某表達(dá)式多次出現(xiàn)時,用等值偽操作可以方便編程。3。匯編時不給符號常量分配內(nèi)存
武漢理工通信原理第六章匯編語言程序設(shè)計
(二)、變量定義偽指令
格式
變量名類型助記符操作數(shù)[,操作數(shù),...]
變量具有3個屬性,段地址,偏移地址,類型
用來定義程序中所用的內(nèi)存操作數(shù)。其中變量名指示內(nèi)存操作數(shù)的地址(段地址,偏移地址)類型助記符指示內(nèi)存操作數(shù)的類型(字節(jié)、字、雙字等)
操作數(shù)指示內(nèi)存操作數(shù)的內(nèi)容或為地址表達(dá)式匯編程序?qū)⒍x的操作數(shù),按其類型分配內(nèi)存單元數(shù),
順序存入變量名指向的內(nèi)存單元中。常用的類型助記符有:DB
指示其后的操作數(shù)為字節(jié)類型DW
指示其后的操作數(shù)為字類型DD
指示其后的操作數(shù)為雙字類型
武漢理工通信原理第六章匯編語言程序設(shè)計
定義賦初值(常數(shù))的變量
dataSEGMENTxxDB1,-1,0fcHyyDW1,-1,0fcHzzDD1,-1,0fcHdataENDS
武漢理工通信原理第六章匯編語言程序設(shè)計用?
表示不置初始值(原內(nèi)容保留)的內(nèi)存操作數(shù)。
例
ccDB?可用DUP復(fù)制操作符定義相同的操作數(shù),其格式為:重復(fù)次數(shù)DUP(操作數(shù))例
eeDB3DUP(4)等價于eeDB4,4,4
武漢理工通信原理第六章匯編語言程序設(shè)計例
用程序?qū)崿F(xiàn)1234H+5678H
dataSEGMENTvalueDW1234H,5678HresultDW?
dataENDS
codeSEGMENTASSUMECS:code,DS:datastart:MOVAX,data;給DS賦值
MOVDS,AXMOVAX,value;取數(shù)
ADDAX,value+2;兩數(shù)相加
MOVresult,AX;保存結(jié)果
MOVAH,4CH;返回DOSINT21H
codeENDSENDstart
武漢理工通信原理第六章匯編語言程序設(shè)計(三)定義存貯單元類型的偽指令
BYTE,WORD,DWORD此類偽指令不是單獨使用,而是結(jié)合其它指令使用,以便對存貯單元類型進行定義,例如MOVBYTEPTR[DI],00MOVWORDPTR[1000],00JMPDWORDPTR[2000]
武漢理工通信原理第六章匯編語言程序設(shè)計
若未用ASSUME語句指示指令中用到的標(biāo)號、過程和變量所在的段,匯編程序?qū)⒔o出錯誤信息。
ASSUME語句只起指示作用,并無實際的操作。在程序中引用定義的變量做內(nèi)存操作數(shù)時,需按尋址方式用傳送指令(如MOV)給相應(yīng)的段寄存器賦值。
武漢理工通信原理第六章匯編語言程序設(shè)計(四)、過程定義偽操作
格式
過程名PROC類型、、、過程名ENDP
過程定義由偽操作PROC開始、ENDP結(jié)束。其中:PROC和ENDP必須成對出現(xiàn),
且語句前必須有過程名,過程名必須相同。
PROC和ENDP語句之間為子程的指令序列。程序中可以定義多個過程。程序經(jīng)匯編、連接及裝入內(nèi)存后,
過程名為一具體的內(nèi)存地址,指示子程入口。
武漢理工通信原理第六章匯編語言程序設(shè)計過程名常用作CALL調(diào)用指令的操作數(shù),
子程的最后安排RET返回指令,使執(zhí)行完子程后能返回調(diào)用處。過程有兩種類型:NEAR和FAR
無類型項時,默認(rèn)為NEAR類型。當(dāng)過程與調(diào)用指令不在同一段時,應(yīng)將過程定義為FAR類型。過程類型決定子程中RET的返回類型(與堆棧有關(guān))
武漢理工通信原理第六章匯編語言程序設(shè)計例1displayPROC
、、、、C3H
、、
RET;NEAR屬性的過程對應(yīng)段內(nèi)返回
displayENDP例2displayPROCFAR
、、、、CBH
、、
RET;FAR屬性的過程對應(yīng)段間返回
displayENDP
武漢理工通信原理第六章匯編語言程序設(shè)計(五)結(jié)構(gòu)定義偽操作格式
結(jié)構(gòu)名稱STRUC…..由DB/DW/DD偽指令組成的指令序列結(jié)構(gòu)名稱ENDS
武漢理工通信原理第六章匯編語言程序設(shè)計(六)、程序開始和程序結(jié)束偽操作1.NAME和TITLE偽操作
格式
NAME
模塊名
格式
TITLE
模塊名在源程序開始可用NAME或TITLE為模塊命名,
模塊名的作用是指示給連接程序進行連接用。源程序中可無模塊定義,此時源文件名作為模塊名。
武漢理工通信原理第六章匯編語言程序設(shè)計2.END偽操作
格式
END啟動地址作用是指示源程序到此結(jié)束。匯編程序?qū)ND之后的語句不進行處理。程序中所有有效語句應(yīng)放在END語句之前。源程序中必須有END結(jié)束語句。
匯編程序?qū)oEND語句的源程序不進行處理,
只給出無END語句錯誤信息。
武漢理工通信原理第六章匯編語言程序設(shè)計(七)、段定義偽操作
格式
段名SEGMENT[定位類型][組合類型][分類名]
、、、、、、段名ENDS
段定義由偽操作SEGMENT開始、ENDS結(jié)束。其中:SEGMENT和ENDS必須成對出現(xiàn),且語句前必須有段名(標(biāo)識符),段名必須相同。
SEGMENT和ENDS語句之間可以有指令和其他偽操作,
表示存放在該段內(nèi)存的變量、指令或其他偽操作對該段內(nèi)存的處理程序中可以定義多個段,每個段定義一個段名,代碼,數(shù)據(jù),堆棧位于不同的段中,以便匯編控制各段的定位,組合,和連接。程序經(jīng)匯編、連接及裝入內(nèi)存后,段名為一具體的段值。
武漢理工通信原理第六章匯編語言程序設(shè)計數(shù)據(jù)段,附加段,堆棧段中的語句,只能是偽指令語句,代碼段內(nèi)可為指令語或偽指令格式中[]內(nèi)的部分可選,
1。定位類型定義實際段起點的類型,有
PAGE:起始地址為256整除
PARA:起始地址為16整除
WORD:起始地址為2整除
TYPE:起始地址為任何值
武漢理工通信原理第六章匯編語言程序設(shè)計2。組合類型表示該段和其它段的連接方法PUBLIC:可與其它同名段匯編時依次連接
COMMON:可與其它同名段匯編時共享相同的存貯空間
AT表達(dá)式:表示相應(yīng)段定位在由表達(dá)式求值得到的地址上
STACK:與PUBLIC用法相同,但僅用于堆棧段
MEMORY:表示相應(yīng)段定位在其它段之上,具有最高的地址
3。類名表示匯編時把不同模塊中的相同類名,在物理地址上依次連接起來
武漢理工通信原理第六章匯編語言程序設(shè)計(八)、ASSUME偽操作
格式
ASSUME段寄存器:段名[,段寄存器:段名,…]
其中:段寄存器為CS、DS、ES、SS中的一個
段名為用偽操作SEGMENT定義過的段名例
ASSUMECS:cc,DS:aa,ES:aa,SS:bbASSUME偽操作的作用指示匯編程序指令中用到的標(biāo)號、過程及變量所在的段。其中對標(biāo)號、過程必須用CS段寄存器指示
對變量可用CS、DS、ES、SS段寄存器指示
武漢理工通信原理第六章匯編語言程序設(shè)計6.1.6宏指令及其使用(自學(xué))
1、宏指令、宏定義和宏調(diào)用宏指令是源程序中具有獨立功能的一段程序代碼。宏定義有MASM宏匯編程序提供的偽指令實現(xiàn)。
2、宏嵌套宏定義中準(zhǔn)許使用宏調(diào)用,但所調(diào)用的宏指令必須先定義過。
3、宏定義中的標(biāo)號與變量
4、宏指令與子程序
綜上所述,當(dāng)某一需要多次訪問的程序段較長,訪問次數(shù)又不是太多時,選用子程序結(jié)構(gòu)較好。當(dāng)某一需要多次訪問的程序段較短,望問次數(shù)又很頻繁時,選用宏指令結(jié)構(gòu)更好些。
武漢理工通信原理第六章匯編語言程序設(shè)計二、匯編語言程序設(shè)計通常,編制一個匯編語言程序應(yīng)按如下步驟進行:1)明確任務(wù),確定算法。
2)繪流程圖。
3)根據(jù)流程圖編寫匯編語言程序。
4)上機調(diào)試程序。程序的基本結(jié)構(gòu)有4種:順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和子程序結(jié)構(gòu)。
武漢理工通信原理第六章匯編語言程序設(shè)計2.判斷程序質(zhì)量的標(biāo)準(zhǔn)程序的正確性程序的可讀性程序的執(zhí)行時間程序所占內(nèi)存大小
武漢理工通信原理第六章匯編語言程序設(shè)計6.2.1順序程序設(shè)計
順序結(jié)構(gòu)也稱線形結(jié)構(gòu),其特點是其中的語句或結(jié)構(gòu)被連續(xù)執(zhí)行。它是最簡單的,也是最基本的一種程序結(jié)構(gòu)形式。這種結(jié)構(gòu)的程序從開始到結(jié)束一直是順序執(zhí)行的,中途沒有任何分支。從這種結(jié)構(gòu)的流程圖來看,除了有一個起始框,一個終止框,就是若干執(zhí)行框,沒有判別框。
武漢理工通信原理第六章匯編語言程序設(shè)計順序結(jié)構(gòu)
武漢理工通信原理第六章匯編語言程序設(shè)計6.2.2分支程序設(shè)計分支程序結(jié)構(gòu)也稱條件結(jié)構(gòu),通常有兩種形式。它們的共同點:在某一種確定條件下,只能執(zhí)行多一個分支中的一個分支,而程序的分支要靠條件轉(zhuǎn)移指令來實現(xiàn)判定條件S1S2判定條件S1S2Sn
武漢理工通信原理第六章匯編語言程序設(shè)計兩個分支YN
、、、
CMPAL,BLJGgreat
JMPexitgreat:
exit:、、、、、、
AL≤BL處理AL>BL處理
武漢理工通信原理第六章匯編語言程序設(shè)計三個分支YYNN分支結(jié)構(gòu)
、、、
CMPAL,0
JGgreat
JLless
JMPexitless:
JMPexitgreat:
exit:
、、、AL=0處理AL>0處理AL<0處理
武漢理工通信原理第六章匯編語言程序設(shè)計6.2.3循環(huán)程序設(shè)計在程序設(shè)計中常碰到某些操作需多次重復(fù)進行的情況,這時采用循環(huán)設(shè)計方法最為合適。常見的循環(huán)程序結(jié)構(gòu)有兩種:WHILE_DO結(jié)構(gòu)和DO_UNTIL結(jié)構(gòu)。前者的主要設(shè)計思想是,當(dāng)循環(huán)控制條件滿足時,循環(huán)執(zhí)行;否則退出循環(huán)。后者主要設(shè)計思想是,先執(zhí)行循環(huán)體程序,再判循環(huán)控制條件是否滿足。若不滿足則再次執(zhí)行循環(huán)體程序;否則退出循環(huán)。循環(huán)初始狀態(tài)循環(huán)控制條件循環(huán)體循環(huán)初始狀態(tài)循環(huán)體循環(huán)控制條件
武漢理工通信原理第六章匯編語言程序設(shè)計6.2.4子程序設(shè)計在8086/8088匯編語言中,子程序又稱過程。它相當(dāng)于高級語言的過程和函數(shù),是一個獨立的程序段,能完成某些確定的功能,并能被其他程序調(diào)用。當(dāng)一個子程序被調(diào)用,且該子程序完成確定的功能后便返回調(diào)用程序處。1.過程的定義和調(diào)用2.寄存器內(nèi)容的保護和恢復(fù)3.主程序和過程間的參數(shù)傳送4.過程的嵌套、遞歸調(diào)用和可重入性5.常用子程序舉例
武漢理工通信原理第六章匯編語言程序設(shè)計1.多處調(diào)用完成同一功能的子程:codeSEGMENTstart:、、
CALLsubp
、、
CALLsubp
、、
CALLsubp
、、
MOVAH,4CHINT21HsubpPROC
、、、、
RETsubpENDPcodeENDSENDstart2.模塊化程序設(shè)計:codeSEGMENTbegin:CALL
sub1
CALLsub2
CALLsub3MOVAH,4CHINT21Hsub1PROC
、、
RETsub1ENDPsub2PROC
、、
RETsub2ENDPsub3PROC
、、
RETsub3ENDPcodeENDSENDbegin
子程結(jié)構(gòu)注意返回DOS語句位置
武漢理工通信原理第六章匯編語言程序設(shè)計6.2.5多模塊程序設(shè)計多模塊程序設(shè)計也稱模塊化程序設(shè)計。采用程序設(shè)計方法要將復(fù)雜的程序劃分許多程序模塊,每個模塊完成明確規(guī)定的任務(wù),是整個大程序的較為獨立的一部分。在多模塊程序設(shè)計過程中,可對各個程序模塊單獨進行匯編產(chǎn)生相應(yīng)的各目標(biāo)模塊,最后再由連接程序?qū)⒏髂繕?biāo)模塊連接來構(gòu)成一個完整的可執(zhí)行程序。1.多模塊的連接2.模塊間標(biāo)識符的交叉訪問
武漢理工通信原理第六章匯編語言程序設(shè)計6.3匯編程序及上機過程6.3.1匯編語言源程序的匯編、連接和裝入DOS操作系統(tǒng)EDITDEBUGI/O驅(qū)動程序.ASM源程序文件.OBJ程序文件.EXE程序文件調(diào)試、執(zhí)行程序匯編程序連接程序連接程序.LST可打印文件.LIB庫程序文件.MAP文件其他.OBJ文件命令程序
武漢理工通信原理第六章匯編語言程序設(shè)計
匯編語言上機過程上機環(huán)境硬件系統(tǒng)軟件
應(yīng)用軟件
操作系統(tǒng):DOS系統(tǒng)編輯器:
EDIT.exe編程序:MASM.exe連接程序:LINK.exe調(diào)試程序:DEBUG.exe用戶開發(fā)的程序:ABC.exe等CPU、存儲器(ROM、RAM)、I/O接口、輸入、輸出設(shè)備
武漢理工通信原理第六章匯編語言程序設(shè)計dataSEGMENT
;數(shù)據(jù)段varDB?dataENDScodeSEGMENT
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《工程設(shè)備復(fù)習(xí)》課件
- 心電信號識別技術(shù)-洞察分析
- 文物保護國際合作與交流-洞察分析
- 文本轉(zhuǎn)換的語義依賴規(guī)則研究-洞察分析
- 形式化方法在中綴轉(zhuǎn)后綴轉(zhuǎn)換中的應(yīng)用研究-洞察分析
- 物聯(lián)網(wǎng)安全防護-第1篇-洞察分析
- 特種水泥性能優(yōu)化-洞察分析
- 初級職稱個人專業(yè)技術(shù)工作總結(jié)范文(12篇)
- 醫(yī)學(xué)圖像增強與降噪算法-洞察分析
- 網(wǎng)絡(luò)切片技術(shù)在行業(yè)專網(wǎng)的應(yīng)用研究-洞察分析
- 一般自我效能感量表及計分方式
- (完整版)機加中心績效考核方案
- 世界旅游夏威夷英文介紹簡介English introduction of Hawaii(課堂PPT)
- 個人簡歷表格標(biāo)準(zhǔn)模板(Word)
- 安全生產(chǎn)中長期規(guī)劃
- 日標(biāo)歐標(biāo)英標(biāo)O型圈匯總
- 兒童相聲《沒考好》
- 777F02板型尺寸及ULD組裝高教知識
- 國家機構(gòu)結(jié)構(gòu)圖季宏
- 土木工程可持續(xù)發(fā)展調(diào)查報告
- 古代文學(xué)論文論陳寅恪文史互證對《鶯鶯傳》文本解讀的價值
評論
0/150
提交評論