日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

匯編語言的基本知識

 goandlove 2016-09-25

一、匯編語言的語句格式

    由匯編語言編寫的源程序是由許多語句(也可稱為匯編指令)組成的。每個(gè)語句由1~4個(gè)部分組成,其格式是:

    [標(biāo)號]  指令助記符  [操作數(shù)]  [;注解]

    其中用方括號括起來的部分,可以有也可以沒有。每部分之間用空格(至少一個(gè))分開,一行最多可有132個(gè)字符。

    1.標(biāo)識符

    給指令或某一存儲單元地址所起的名字。可由下列字符組成:

    字母:A ~ z??; 數(shù)字:0 ~ 9??; 特殊字符:?、· 、@、一、$ 。

    數(shù)字不能作標(biāo)識符的第一個(gè)字符,而圓點(diǎn)僅能用作第一個(gè)字符。標(biāo)識符最長為31個(gè)字符。當(dāng)標(biāo)識符后跟冒號時(shí),表示是標(biāo)號。它代表該行指令的起始地址;當(dāng)標(biāo)識符后不帶冒號時(shí),表示變量;偽指令前的標(biāo)識符不加冒號。

    2.指令助記符    

    表示不同操作的指令,可以是8086的指令助記符,也可以是偽指令。

    3.操作數(shù)

    指令執(zhí)行的對象。依指令的要求,可能有一個(gè)、兩個(gè)或者沒有,

    例如: RET   ?。粺o操作數(shù)

    COUNT: INC  CX   ?。灰粋€(gè)操作數(shù)

    如果是偽指令,則可能有多個(gè)操作數(shù),例如:

    COST    DB    3,4,5,6,7 ??;5個(gè)操作數(shù)

    MOV    AX,[BP+4]   ??;第二個(gè)操作數(shù)為表達(dá)式

    4.注解

    該項(xiàng)可有可無,是為源程序所加的注解,用于提高程序的可讀性。


二、匯編語言的運(yùn)算符

1.算術(shù)運(yùn)算符、邏輯運(yùn)算符和關(guān)系運(yùn)算符

    算術(shù)運(yùn)算符可以應(yīng)用于數(shù)字操作數(shù),結(jié)果也是數(shù)字。而應(yīng)用于存儲器操作數(shù)時(shí),只有+、-運(yùn)算符有意義。


2.取值運(yùn)算符SEG、OFFSET、TYPE、SIZE和LENGTH

    · SEG和OFFSET分別給出一個(gè)變量或標(biāo)號的段地址和偏移量。

    例如,定義:    SLOT  DW  25

    則: MOV  AX,SLOT;從SLOT地址中取一個(gè)字送入AX

    MOV  AX,SEG  SLOT;將SLOT所在段的段地址送入AX

    MOV  AX,OFFSET  SLOT;將SLOT所在段的段內(nèi)偏移地址送AX

    · TYPE操作符返回一個(gè)表示存儲器操作數(shù)類型的數(shù)值。各種存儲器地址操作數(shù)類型部分的值如表4-1所示。

    

    ·LENGTH和SIZE操作符只應(yīng)用于數(shù)據(jù)存儲器操作數(shù)。(用DB/DW/DD等定義的操作數(shù))

    LENGTH返回一個(gè)與存儲器地址操作數(shù)相聯(lián)系的單元數(shù),

    SIZE操作數(shù)返回一個(gè)為存儲器操作數(shù)分配的字節(jié)數(shù)。

    例如:若  MULT-WORD DW 50DUP(0)

    則  LENGTH(MULT-WORD)=50

    SIZE(MULT-WORD)=100

    注意:SIZE(X)=(LENGTH X)*(TYPE X)


3.屬性運(yùn)算符

    屬性運(yùn)算符用來給指令中的操作數(shù)指定一個(gè)臨時(shí)屬性,而暫時(shí)忽略當(dāng)前的屬性。常用的有:

    (1) 合成運(yùn)算符PTR

    它作用于操作數(shù)時(shí),則忽略了操作數(shù)當(dāng)前的類型(字節(jié)或字)及屬性(NEAR或FAR),而給出一個(gè)臨時(shí)的類型或?qū)傩裕?/p>

    一般格式:類型    PTR   表達(dá)式

    功能:建立一個(gè)存儲器地址操作數(shù),它與其后的存儲器地址操作數(shù)有相同的段地址偏移量,但有不同的類型。

    例如:SLOT  DW  25

    此時(shí)SLOT已定義成字單元。若我們想取出它的第一個(gè)字節(jié)內(nèi)容,則可用PTR對其作用,使它暫時(shí)改變?yōu)樽止?jié)單元,

即 MOV  AL,BYTE  PTR  SLOT


三、表達(dá)式

由運(yùn)算符和操作數(shù)組成的序列,在匯編時(shí)產(chǎn)生一個(gè)確定的值。這個(gè)值可以僅表示一個(gè)常量,也可以表示一個(gè)存儲單元的偏移地址,相應(yīng)的表達(dá)式稱為常量表達(dá)式和地址表達(dá)式。


1. 常數(shù)

匯編語言語句中出現(xiàn)的常數(shù)可以有7種:

    ① 二進(jìn)制數(shù)  后跟字母B,如01000001B。

    ② 八進(jìn)制數(shù)  后跟字母Q或O,如202Q或202O。

    ③ 十進(jìn)制數(shù)  后跟D或不跟字母,如85D或85。

    ④ 十六進(jìn)制數(shù)  后跟H,如56H,0FFH。注意,當(dāng)數(shù)字的第一個(gè)字符是A~F時(shí),在字符前應(yīng)添加一個(gè)數(shù)字0,以示和變量的區(qū)別。

另有,十進(jìn)制浮點(diǎn)數(shù)、十六進(jìn)制實(shí)數(shù)、字符和字符串


2.常量操作數(shù)

常量操作數(shù)是一個(gè)數(shù)值操作數(shù),一般是常量或者是表示常量的標(biāo)識符。可以為數(shù)字常量操作數(shù)或字符串常量操作數(shù)。前者可采用二進(jìn)制、八進(jìn)制、十進(jìn)制或十六進(jìn)制等計(jì)數(shù)形式;而后者則為相應(yīng)字符的ASCII碼。


3.存儲器操作數(shù)

存儲器操作數(shù)是一個(gè)地址操作數(shù),代表一個(gè)存儲單元的地址,通常以標(biāo)識符的形式出現(xiàn)。

    存儲器操作數(shù)可以分為變量及標(biāo)號兩種類型,如果存儲器操作數(shù)所代表的是某個(gè)數(shù)據(jù)在數(shù)據(jù)段、附加段或堆棧段中的地址,那么這個(gè)存儲器操作數(shù)就稱為變量;如果存儲器操作數(shù)所代表的是某條指令代碼在代碼段中的地址,那么這個(gè)存儲器操作數(shù)稱為標(biāo)號。(http://www.diangon.com/版權(quán)所有)變量所對應(yīng)的存儲單元內(nèi)容在程序的運(yùn)行過程中是可以改變的,標(biāo)號通常作為轉(zhuǎn)移指令或調(diào)用指令的目標(biāo)操作數(shù),在程序運(yùn)行過程中不能改變。

存儲器操作數(shù)有三個(gè)方面的屬性。

    (1)、段地址:即存儲器操作數(shù)所對應(yīng)的存儲單元所在段的段地址;

    (2)、偏移地址:即存儲器操作數(shù)所對應(yīng)的存儲單元在所在段內(nèi)的偏移地址;

    (3)、類型:變量的類型是相應(yīng)存儲單元所存放的數(shù)據(jù)項(xiàng)的字節(jié)數(shù);而標(biāo)號的類型則反映了相應(yīng)存儲單元地址在作為轉(zhuǎn)移或調(diào)用指令的目標(biāo)操作數(shù)時(shí)的尋址方式,可有兩種情況,即  NEAR和FAR。具體值可見表4-1

4.常量表達(dá)式

    由常量操作數(shù)及運(yùn)算符構(gòu)成,在匯編時(shí)產(chǎn)生一個(gè)常量。

    如PORT、VAL+1、 OFFSET SUM、SEG SUM、TYPE CYCLE等。

5.地址表達(dá)式

    由存儲器操作數(shù)與運(yùn)算符構(gòu)成,必須有明確的物理意義。

    例如  SUM+2、CYCLE-5

表達(dá)式SUM+2、CYCLE-5的值仍然是一個(gè)存儲器操作數(shù),該存儲器操作數(shù)的段地址與類型屬性分別與存儲器操作數(shù)SUM及CYCLE相同,但偏移地址分別比SUM及CYCLE大2或小5。表達(dá)式是在匯編時(shí)計(jì)算的,而變量單元的內(nèi)容在程序的運(yùn)行過程中可以改變。


四、匯編語言程序匯編步驟

匯編語言程序要能在機(jī)器上運(yùn)行,還必需將匯編源程序匯編成可執(zhí)行程序。為此必須完成以下幾個(gè)步驟。

1.編輯源程序

2.調(diào)用宏匯編對源程序進(jìn)行匯編

3.對目標(biāo)程序進(jìn)行連接

4.運(yùn)行可執(zhí)行程序并調(diào)試

電子愛動手,關(guān)注電子DIY

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多