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

付費(fèi)下載

下載本文檔

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

文檔簡(jiǎn)介

北京科海電子出版社·

<<<第5章匯編語(yǔ)言語(yǔ)法5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.1數(shù)值表達(dá)式常量常量是指那些在將源程序翻譯成目標(biāo)程序期間已經(jīng)有確定數(shù)值的量。常量主要用于偽指令語(yǔ)句中給變量賦初值,或者用作機(jī)器指令語(yǔ)句中的立即操作數(shù),變址尋址和基址變址尋址中的位移量、比例因子等。算術(shù)運(yùn)算符算術(shù)運(yùn)算包括:加(+)、減(-)、乘(×)、除(/)、模除(MOD)、右移(SHR)和左移(SHL)。5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.1數(shù)值表達(dá)式邏輯運(yùn)算符邏輯運(yùn)算包括:邏輯乘(AND)、邏輯加(OR)、按位加(XOR)和邏輯非(NOT)4種運(yùn)算。關(guān)系運(yùn)算符關(guān)系運(yùn)算包括:相等(EQ)、不等(NE)、小于(LT)、大于(GT)、小于等于(LE)及大于等于(GE)。5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.2地址表達(dá)式地址表達(dá)式是計(jì)算存儲(chǔ)單元地址的表達(dá)式,它可由標(biāo)號(hào)、變量名和由括號(hào)括起來的基址或變址寄存器組成。標(biāo)號(hào)標(biāo)號(hào)是指在代碼段內(nèi)定義和使用的指令地址,其實(shí)就是機(jī)器指令語(yǔ)句存放地址的符號(hào)表示,也可以是子程序名,即子程序入口地址的符號(hào)表示。標(biāo)號(hào)代表了指令的符號(hào)地址,它有3個(gè)屬性:標(biāo)號(hào)的段屬性標(biāo)號(hào)的偏移地址標(biāo)號(hào)的類型北京科海電子出版社·

<<<5.1匯編語(yǔ)言中的表達(dá)式5.1.2地址表達(dá)式變量變量是內(nèi)存中一個(gè)數(shù)據(jù)區(qū)的名字,即數(shù)據(jù)存放地址的符號(hào)表示,作為指令的存儲(chǔ)器操作數(shù)來引用。具有以下3個(gè)方面的屬性:變量的段屬性變量的偏移地址變量的類型變量的定義格式為:〔變量名〕數(shù)據(jù)定義偽指令表達(dá)式[,…]北京科海電子出版社·

<<<5.1匯編語(yǔ)言中的表達(dá)式5.1.2地址表達(dá)式匯編語(yǔ)言的地址表達(dá)式形成的結(jié)果是存儲(chǔ)器地址,用來表示指令中的標(biāo)號(hào)或變量操作數(shù)。地址表達(dá)式的值一般都是段內(nèi)偏移地址,因此,它具有段、偏移地址及類型3個(gè)屬性。地址表達(dá)式是由變量、標(biāo)號(hào)、常量、寄存器(各種存儲(chǔ)器尋址方式中可以用到的寄存器,如BP、BX、SI、DI、EBX等)的內(nèi)容(用寄存器名加方括號(hào)表示)和運(yùn)算符組成的有意義的式子。單個(gè)的變量、標(biāo)號(hào)、寄存器的內(nèi)容是地址表達(dá)式的特例。5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.3特殊運(yùn)算符屬性替換運(yùn)算符(1)強(qiáng)制類型運(yùn)算符PTR強(qiáng)制類型運(yùn)算符PTR用來明確指出某個(gè)變量、標(biāo)號(hào)或地址表達(dá)式的類型屬性,使它們臨時(shí)兼有與原定義所不同的類型屬性,但保持它們?cè)瓉淼亩螌傩院臀灰屏繉傩圆蛔?,使用格式是:類?/p>

PTR

地址表達(dá)式5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.3特殊運(yùn)算符(2)段基址取代運(yùn)算符“:”段基址取代運(yùn)算符“:”,也稱為跨段前綴,用于臨時(shí)給變量、標(biāo)號(hào)或地址表達(dá)式指定一個(gè)段屬性,它有3種格式:段寄存器:地址表達(dá)式段名:地址表達(dá)式組名:地址表達(dá)式5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.3特殊運(yùn)算符短取代運(yùn)算符SHORT短取代運(yùn)算符“SHORT”通常用在標(biāo)號(hào)前,告訴匯編程序目標(biāo)指令在本條指令的-128~+127個(gè)字節(jié)范圍內(nèi)執(zhí)行,并生成節(jié)省一個(gè)字節(jié)的機(jī)器指令。類型定義運(yùn)算符THIS類型定義運(yùn)算符“THIS”與PTR類似,用于建立同一地址而類型不同的變量或標(biāo)號(hào),方便按不同類型變量的存取或程序發(fā)生轉(zhuǎn)移。使用格式:THIS

類型5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.3特殊運(yùn)算符屬性分離運(yùn)算符取段基址運(yùn)算符SEG格式:SEG變量或標(biāo)號(hào);從其后的變量或標(biāo)號(hào)的屬性中分離出段基址取偏移地址運(yùn)算符OFFSET格式:OFFSET

變量或標(biāo)號(hào)

;從其后的變量或標(biāo)號(hào)的屬性中分離出偏移地址5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.3特殊運(yùn)算符(3)取類型值運(yùn)算符TYPE格式:;取其后變量或標(biāo)號(hào)的類型值TYEP變量或標(biāo)號(hào)返回?cái)?shù)值運(yùn)算符LENGTH格式:LENGTH變量SIZE格式:SIZE變量;取變量數(shù)據(jù)項(xiàng)個(gè)數(shù);取變量數(shù)據(jù)項(xiàng)長(zhǎng)度5.1匯編語(yǔ)言中的表達(dá)式北京科海電子出版社·

<<<5.1.3特殊運(yùn)算符(3)HIGH和LOW格式:HIGH/LOW

常量

;字節(jié)分離表達(dá)式中運(yùn)算符的優(yōu)先級(jí)別LENGTH、SIZE、括號(hào)(圓括號(hào)、方括號(hào)、尖括號(hào))??缍吻熬Y運(yùn)算符(:)。PTR、OFFSET、SEG、TYPE、THIS;HIGH、LOW。*、/、MOD、SHL、SHR;+、-。

EQ、NE、LT、LE、GT、GE。NOT;AND;OR、XOR;SHORT。5.2偽指令北京科海電子出版社·

<<<匯編語(yǔ)言最主要的特點(diǎn)是用助記符代替機(jī)器指令的操作碼,用符號(hào)代替操作數(shù)地址或操作數(shù),這就是匯編語(yǔ)言中的機(jī)器指令語(yǔ)句。偽指令又稱為偽操作,它是在對(duì)源程序匯編期間由匯編程序處理的操作,它們可以完成如處理器選擇、定義程序模式、定義數(shù)據(jù)、分配存儲(chǔ)區(qū)、指示程序結(jié)束等功能。每一條偽指令都對(duì)應(yīng)著一段處理程序,這些程序均作為匯編程序的一部分保存在磁盤上,因此,使用在源程序中的偽指令只為匯編程序所識(shí)別。匯編程序在將源程序翻譯成目標(biāo)程序時(shí),每遇到偽指令,即轉(zhuǎn)入對(duì)應(yīng)的處理程序執(zhí)行,執(zhí)行完該處理程序,也就實(shí)現(xiàn)了這條偽指令的功能。5.2偽指令北京科海電子出版社·

<<<5.2.1方式偽指令32位PC系列微型計(jì)算機(jī)有386、486、Pentium和PentiumII、PentiumIII、Pentium4等多種CPU,也就有多種指令系統(tǒng)。如果在程序中沒有指定任何方式偽指令,則匯編程序MASM默認(rèn)的方式是8086/8088CPU和8087協(xié)處理器的指令系統(tǒng)以及浮點(diǎn)變量的IEEE格式。這就是目前高校教學(xué)使用較多的16位機(jī)匯編方式,在此稱之為傳統(tǒng)方式。方式偽指令通常放在源程序的開頭,或者特殊需要的地方。帶點(diǎn)“.”的方式偽指令主要有:.8086、.386、.386p、.486、.486p、.

586、.686、.MMX等5.2偽指令北京科海電子出版社·

<<<5.2.2段定義偽指令段定義偽指令是表示一個(gè)段開始和結(jié)束的命令,其用途是指定段的名稱和范圍,并指明段的定位類型、組合類型及類別。常用的段定義偽指令有SEGMENT、ENDS和ASSUME。SEGMENT/ENDS偽指令使用格式如下:段名SEGMENT[使用類型][定位類型][組合類型][‘類別’]段名ENDS(1)使用類型5.2偽指令北京科海電子出版社·

<<<5.2.2段定義偽指令定位類型組合類型類別

ASSUME偽指令A(yù)SSUME偽指令是建立段和段寄存器關(guān)系的偽指令,其格式為:ASSUME段寄存器名:段名[,段寄存器名:段名[,…]]5.2偽指令北京科海電子出版社·

<<<5.2.2段定義偽指令段組定義偽指令GROUP段組定義偽指令GROUP能把多個(gè)同類段合并為一個(gè)64KB的物理段,并用一個(gè)段組名統(tǒng)一存取它。段組定義偽指令GROUP的格式如下:段組名

GROUP

段名[,段名…]置地址計(jì)數(shù)器偽指令ORG5.2偽指令北京科海電子出版社·

<<<5.2.2段定義偽指令ORG偽指令用來表示起始的偏移地址,緊接著ORG的數(shù)值就是

偏移地址的起始值。ORG偽操作常用在數(shù)據(jù)段指定數(shù)據(jù)的存儲(chǔ)地址,有時(shí)也用來指定代碼段的起始地址。因此,可以使用ORG語(yǔ)句改變地址計(jì)數(shù)器的值。使用格式:ORG數(shù)值表達(dá)式ORG偽指令把地址計(jì)數(shù)器的值設(shè)置為表達(dá)式的值,在ORG語(yǔ)句后面的占用存儲(chǔ)器的語(yǔ)句便從此值開始進(jìn)行分配。5.2偽指令北京科海電子出版社·

<<<5.2.3程序開始和結(jié)束偽指令在程序的開始可以用NAME或TITLE作為模塊的名字,其格式為:NAMETITLE模塊名文件名表示源程序結(jié)束的偽指令的格式為:END

[標(biāo)號(hào)]END偽指令中的“標(biāo)號(hào)”指示程序開始執(zhí)行的起始地址。如果多個(gè)程序模塊相連接,則只有主程序的END要加上標(biāo)號(hào),其他子程序模塊則只用END而不必指定標(biāo)號(hào)。5.2偽指令北京科海電子出版社·

<<<5.2.4數(shù)據(jù)定義偽指令80X86提供了各種數(shù)據(jù)及存儲(chǔ)器分配偽指令,這些偽指令在匯編程序?qū)υ闯绦蜻M(jìn)行匯編期間,由匯編程序完成數(shù)據(jù)類型定義及存儲(chǔ)器分配等功能。語(yǔ)句格式:〔變量名〕數(shù)據(jù)定義偽指令表達(dá)式[,……]5.2偽指令北京科海電子出版社·

<<<5.2.5符號(hào)定義偽指令LABEL偽指令LABEL可以使同一個(gè)變量具有不同的類型屬性。其格式為:變量名LABEL

類型或

標(biāo)號(hào)LABEL

類型表達(dá)式賦值偽指令EQU和=EQU是一個(gè)賦值偽指令,它給一個(gè)數(shù)據(jù)標(biāo)號(hào)賦予一個(gè)常數(shù)值,但這個(gè)常數(shù)不占用存儲(chǔ)單元。EQU可以在數(shù)據(jù)段之外使用,甚至可用在代碼段中間。賦值偽指

溫馨提示

  • 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)論