匯編語(yǔ)言程序設(shè)計(jì)-課件 -第四章(2)匯編偽指令語(yǔ)句_第1頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)-課件 -第四章(2)匯編偽指令語(yǔ)句_第2頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)-課件 -第四章(2)匯編偽指令語(yǔ)句_第3頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)-課件 -第四章(2)匯編偽指令語(yǔ)句_第4頁(yè)
匯編語(yǔ)言程序設(shè)計(jì)-課件 -第四章(2)匯編偽指令語(yǔ)句_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

4.3匯編偽指令語(yǔ)句偽指令是非執(zhí)行指令,在程序匯編其間由匯編程序處理的語(yǔ)句。偽指令有符號(hào)定義偽指令,數(shù)據(jù)定義偽指令,段定義偽指令,其他偽指令等。一、符號(hào)定義偽指令格式:符號(hào)名LABEL類型例:

WAR LABELWORD AR DB3,4,5 …… MOV AX,WAR ;WAR為字類型

MOV AL,AR ;AR為字節(jié)類型

L2 LABELFAR L1: MOV AL,0二、數(shù)據(jù)定義偽指令格式:[變量名]偽指令助記符初值表變量是符號(hào)地址表示初值表首個(gè)數(shù)據(jù)的偏移地址偽指令助記符指DB、DW、DD等,表示變量的類型。初值表是由一系列用逗號(hào)分割開(kāi)的參數(shù),可以是常數(shù)、表達(dá)式、問(wèn)號(hào)、DUP等。問(wèn)號(hào)(?)表示初值不確定,即不賦初值;DUP為重復(fù)分配操作符格式為:重復(fù)次數(shù)DUP(被重復(fù)數(shù)據(jù)列表)例:A1DB10A2DW2345H,34DFHA3DB3DUP(2)A4DB'abcd'A5DB'a','b','c','d'A6DW2DUP(1,2)A7DW67H,2DUP(?)例:A1DB10A2DW2345H,34DFHA3DB3DUP(2)A4DB'abcd'A5DB'a','b','c','d'A6DW2DUP(1,2)A7DW67H,2DUP(?)

例:下列數(shù)據(jù)段定義后P3=?DATA SEGMENT P1DW25,4DUP(0,1) P2DB0

P3EQUP2-P1DATA END三、地址計(jì)數(shù)器與對(duì)準(zhǔn)偽指令

1.地址計(jì)數(shù)器JMP$+8例:下列數(shù)據(jù)段定義后,變量PD的值為多少? DATASEGMENT PADW66 PBDB18DUP(?) PDEQU$-PA DATAENDS

2.ORG偽指令ORG偽指令用來(lái)設(shè)置當(dāng)前地址計(jì)數(shù)器的值。

格式:ORGN

例:

ORG30 DATDB1,2,3,4例:AA DB0AH,0BHARRAY DW0011H,2233H,4455H,6677HORG20HBB DW20DUP(?)問(wèn):以下指令執(zhí)行后寄存器的值為多少?LEA SI,ARRAYMOV AX,ARRAYMOV BX,ARRAY+2MOV DX,[ARRAY+2] MOV DI,OFFSETARRAY+2MOV SI,OFFSETBBMOV CX,SIZEBB

3.EVEN偽指令EVEN偽指令使下一個(gè)變量或指令開(kāi)始于偶數(shù)字節(jié)地址。

格式:EVEN

例:

EVEN WARYDW20DUP(0)

4.ALIGN對(duì)齊偽指令A(yù)LIGN偽指令使下面的內(nèi)容變量必須從下一個(gè)能被NUM整除的地址開(kāi)始分配。

格式:ALIGNNUM;NUM必須是2的冪

例:見(jiàn)P83例4.18

四、段和模塊定義偽指令1.段定義偽指令指令格式: 段名 SEGMENT[定位][組合][段字]['類別'] …… 段名 ENDS段名必須相同,SEGMENT和ENDS必須成對(duì)出現(xiàn)。(1)定位屬性:指定邏輯段的起始地址BYTE:段起始地址為下一個(gè)可用的字節(jié)地址;WORD:段起始地址為下一個(gè)可用的偶數(shù)地址;DWORD:段起始地址為下一個(gè)可被4整除的地址;PARA:段起始地址為下一個(gè)可被16整除的地址;PAGE:段起始地址為下一個(gè)可被256整除的地址。默認(rèn)的定位類型為PARA,其低4位是0,所以默認(rèn)情況下數(shù)據(jù)段的偏移地址從0開(kāi)始。(2)組合屬性:指定段與段之間的關(guān)系??蔀椋簾o(wú):本段與其他段沒(méi)有邏輯關(guān)系,不與其他段合并。每段都有自己的段地址。PUBLIC:連接程序把本段與所有同名同類型的其他段相鄰地連接在一起,然后為所有這些段指定一個(gè)共同的段地址,也就是合成一個(gè)物理段。STACK:指定堆棧段。連接程序?qū)⑺蠸TACK段按照與PUBLIC段的同樣方式進(jìn)行合并。通常組合屬性在多模塊設(shè)計(jì)時(shí)使用。單模塊下,除堆棧段必須使用組合屬性STACK外,各段相互獨(dú)立,不與其他段合并,無(wú)須指定組合屬性。(3)段字屬性:只有使用了.386等方式的偽指令這個(gè)屬性才起作用,它有以下兩種類型:USE16:該段按16為尋址,與8086尋址方式相同;USE32:該段按32位尋址。(4)‘類別名’屬性:為保持所有代碼和數(shù)據(jù)的連續(xù),將類別名相同的段連續(xù)存放,但各有各的段地址。通常使用‘code’,‘data’和‘stack’等類別名。

2.指定段寄存器偽指令格式1:ASSUME段寄存器:段名[,段寄存器:段名……]如ASSUMECS:CODE,DS:DATA格式2:ASSUME段寄存器:NOTHING功能:對(duì)指令給出的段寄存器取消已經(jīng)指定的缺省關(guān)系。

3.過(guò)程定義偽指令一個(gè)匯編程序可以由一個(gè)主過(guò)程和若干個(gè)子過(guò)程組成。過(guò)程定義偽指令就是將邏輯上相對(duì)獨(dú)立的程序段定義成過(guò)程,便于程序的閱讀和調(diào)試。格式:過(guò)程名PROCNEAR/FAR

…… RET過(guò)程名ENDP例:同一代碼段內(nèi)調(diào)用程序DATA SEGMENTSTR2 DB'TheFirstSubroutione!','$'STR3 DB'TheSecondSubroutione!','$'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA

MOV DS,AX CALL FIRST CALL SECOND MOV AH,4CH INT

21HFIRST PROC LEADX,STR2 MOVAH,09H INT 21H RETFIRST ENDPSECOND PROC LEA DX,STR3 MOVAH,09H INT21H RET SECOND ENDPCODE ENDS

END START

4.模塊通信偽指令匯編語(yǔ)言可以由多個(gè)模塊構(gòu)成,一個(gè)模塊也可以分成幾個(gè)子模塊。(1)全局符號(hào)說(shuō)明偽指令PUBLIC格式:PUBLIC符號(hào)[,…]符號(hào)可以是常量、變量、標(biāo)號(hào),過(guò)程名。(2)外部符號(hào)說(shuō)明為指令EXTRNEXTRN指明的符號(hào)是由其他模塊定義的,并由PUBLIC語(yǔ)句說(shuō)明過(guò)的,符號(hào)在本模塊被引用。格式:EXTRN符號(hào):類型[,…]符號(hào)的含義與PUBLIC相同例:見(jiàn)課本P86五、其他偽指令1.程序開(kāi)始定義偽指令在程序的開(kāi)始可以用NAME或TITLE作為模塊的名字。格式:NAME 模塊名也可使用TITLE偽指令指定模塊名,其格式: TITLE 標(biāo)題名TITLE偽指令的主要作用是指定列表文件的每一頁(yè)上打印的標(biāo)題,在沒(méi)有N

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論