![計(jì)算機(jī)原理與匯編匯編語(yǔ)言基礎(chǔ)_第1頁(yè)](http://file4.renrendoc.com/view11/M03/09/08/wKhkGWWotxiAfGYlAAFXYDhe7ds463.jpg)
![計(jì)算機(jī)原理與匯編匯編語(yǔ)言基礎(chǔ)_第2頁(yè)](http://file4.renrendoc.com/view11/M03/09/08/wKhkGWWotxiAfGYlAAFXYDhe7ds4632.jpg)
![計(jì)算機(jī)原理與匯編匯編語(yǔ)言基礎(chǔ)_第3頁(yè)](http://file4.renrendoc.com/view11/M03/09/08/wKhkGWWotxiAfGYlAAFXYDhe7ds4633.jpg)
![計(jì)算機(jī)原理與匯編匯編語(yǔ)言基礎(chǔ)_第4頁(yè)](http://file4.renrendoc.com/view11/M03/09/08/wKhkGWWotxiAfGYlAAFXYDhe7ds4634.jpg)
![計(jì)算機(jī)原理與匯編匯編語(yǔ)言基礎(chǔ)_第5頁(yè)](http://file4.renrendoc.com/view11/M03/09/08/wKhkGWWotxiAfGYlAAFXYDhe7ds4635.jpg)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
匯編語(yǔ)言概述
~、概述
1.高級(jí)語(yǔ)言與匯編語(yǔ)言比較
高級(jí)語(yǔ)言:語(yǔ)句匯編語(yǔ)言:指令
變量說(shuō)明/史義分配寄存器
inty,a=25,b=3,c=76;分配存儲(chǔ)單元
給變量賦值數(shù)據(jù)傳遹
y=2(a+b)-c
2.匯編程序結(jié)構(gòu)
數(shù)據(jù)段
堆找段
代碼段
第四章匯編語(yǔ)言
示例:y=2(a+b)-c
;設(shè)置數(shù)據(jù)段
DATASEGMENT
ADB25;數(shù)據(jù)A
BDB3;數(shù)據(jù)B
CDB76;數(shù)據(jù)C
YDB?■;存放結(jié)果
DATAENDS
;設(shè)置堆棧段
STACK1SEGMENTPARASTACK
DW20HDUP(O)
STACK1ENDS
第四章匯編語(yǔ)言
示例:
;設(shè)置代碼段
COSEGSEGMENT
ASSUMECS:COSEG,DS:DATA,SS:STACK1
START:MOVAX,DATA;裝填段寄存器DS
MOVDS,AX
MOVAL,A;取數(shù)據(jù)A
ADDAL,B;計(jì)算(A+B)
SALAL,1;計(jì)算2(A+B)
SUBAL,C;計(jì)算2(A+B)-C
MOVY,AL;存結(jié)果
;結(jié)束用戶程序,返回操作系統(tǒng)
MOVAH,4CH
INT21H
COSEGENDS
ENDSTART
第四章匯編語(yǔ)言
匯編語(yǔ)言與機(jī)器語(yǔ)言
?匯編語(yǔ)言:
?是匯編格式指令,偽指令的集合及其表示,使用這些指
令的一組規(guī)則。
?機(jī)器語(yǔ)言:
?用二進(jìn)制編巧的機(jī)器指令的集合及一組使用規(guī)則,它是
CPU能直接識(shí)別的唯一語(yǔ)言。
?MOVDS,AX匯編語(yǔ)言
?8ED8機(jī)器語(yǔ)言(目標(biāo)代延J
—ucs:017MOU
0C0F:0000B80A0CMOUAX,砒。A
0C0F:00038EDSMOUDS.AX
0C0F:0005A00000ADDAL.[0000]
0C0F:000802060100SHLAL.[00011
0C0F:000CD0E0SUBfiL.l
0C0F:000E2A060200HOUAL,[0002]
0C0F:0012A20300MOU[0003AL
0C0F:0015B44CINTAH,4C
0C0F:0017CD2121
第四章匯編語(yǔ)言
匯編語(yǔ)言與目標(biāo)代嗎的對(duì)應(yīng)
地
數(shù)據(jù)A址DO}SALAL,1
數(shù)據(jù)B增EO^
大
數(shù)據(jù)C方
數(shù)據(jù)D向
>SUBAL,C
Y
MOVAX,DATA
aMOVY,AL
0?
MOVDS,DXB4LMOVAH,4CH
4C
CDLINT21H
MOVAL,A
ADDAL,B
第四章匯編語(yǔ)言
匯編語(yǔ)言特點(diǎn)
口與機(jī)器語(yǔ)言相關(guān)
效率高
□編寫(xiě)源程序繁瑣
□調(diào)試?yán)ь?/p>
匯編語(yǔ)言的主要應(yīng)用場(chǎng)合:
C1J程序執(zhí)行占用較短的時(shí)間,或者占用較小存儲(chǔ)余量的場(chǎng)合。
(2)程序與計(jì)算機(jī)硬件密切相關(guān),程序直接控制硬件的場(chǎng)合。
C3J需提高大型軟件性能的場(chǎng)合。
(4)沒(méi)有合適的高級(jí)語(yǔ)言的場(chǎng)合。
第四章匯編語(yǔ)言
二、匯編語(yǔ)言語(yǔ)句種類(lèi)
語(yǔ)句種類(lèi)
指令語(yǔ)句:又叫可執(zhí)行語(yǔ)句,在匯編時(shí)產(chǎn)生一個(gè)
目林代碼,對(duì)應(yīng)機(jī)器的一種操作。
偽指令語(yǔ)句:又叫命令語(yǔ)句。用于指示匯編程序
如何匯編源程序,沒(méi)有目標(biāo)代碼與之對(duì)應(yīng)。
宏指令語(yǔ)句:由用戶自定義的指令。r指令的疔
展)
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
二、匯編語(yǔ)言語(yǔ)句格式
?格式:
名字操作符操作教;注希
[標(biāo)號(hào):]助記符[操作教L操作教]心注釋?zhuān)?/p>
[名字]走義符[參數(shù),…,參教][;注釋?zhuān)?/p>
?命名規(guī)則:
可以用?,@」數(shù)室和美文字符。
名字的第一個(gè)字符不能是教字。
名字的長(zhǎng)度不受F艮制,但只有箭'31個(gè)字符有效。
不允許用保留字作名字(指令,偽指令,寄存器名等)o
第四章匯編語(yǔ)言
指令語(yǔ)句:[標(biāo)號(hào):]肋記符[操作教L操作教]][;注斡]
1、標(biāo)號(hào):標(biāo)號(hào)是機(jī)器指令語(yǔ)句存放地址的符號(hào)表示,
代表該指令目標(biāo)代碼的第一個(gè)字節(jié)地址,后面必須緊
跟冒號(hào)“:”O(jiān)
2.指令助記符:指令肋記符為語(yǔ)句的核心成分,表
示了該語(yǔ)句的操作類(lèi)型。“MOV”
3.操作教:操作教表示指令助記符的操作對(duì)象。
4,注羚:注絳均以分號(hào)開(kāi)始,它可占~行或多行,
~般放^在~條語(yǔ)句的后面。
第四章匯編語(yǔ)言
偽指令語(yǔ)句:[名狗定義符[參數(shù),…,參數(shù)][;注譯]
L名字(符號(hào)名):偽指令語(yǔ)句的一個(gè)可選項(xiàng),空格
表示結(jié)束,不得使用冒號(hào)。
2、定義符(偽指令符):指定匯編程序要完成的具體
操作,如數(shù)據(jù)定義偽指令DB、DW、DD,段定義偽指
令SEGMENT,假定偽指令A(yù)SSUME等。
3.參教(操作教):偽指令后面的操作教可以是常教、
字符串、變量、表達(dá)式等,其個(gè)數(shù)由具體的偽指令決
定,各個(gè)操作數(shù)之間必須以“退號(hào)”分隔。
4.注樣:偽指令的注絳必須以'”開(kāi)始,其作用同
指令語(yǔ)句中的注絳部分。
第四章匯編語(yǔ)言
三、符號(hào)定義語(yǔ)句
1.等值語(yǔ)句
?格式:符號(hào)EQU表達(dá)式
表達(dá)式:常數(shù)或數(shù)值表達(dá)式
地址表達(dá)式
變量或標(biāo)號(hào)
CONSTEQU10
ADRIEQUDS:[BP+14H]
ADR2EQUCONST+10
COUNEQUVAR
同一符號(hào)不能用EQU重新定義。
匯編時(shí),作為替代符號(hào)用,不產(chǎn)生目標(biāo)代碼,不占
用存儲(chǔ)單元。
第四章匯編語(yǔ)言
?一>符號(hào)定義語(yǔ)句
?2.等號(hào)語(yǔ)句
?格式:符號(hào)=表達(dá)式
?C0NT=5
?NUM=10H
?NUM=NUM+20H
?表達(dá)式形式同上,但可多次重新定義同?
行虧。
第四章匯編語(yǔ)言
四、數(shù)據(jù)定義語(yǔ)句
格式:變量名DB/DW/DD表達(dá)式1,表達(dá)式2,…
保留存儲(chǔ)空間,并可以完成數(shù)據(jù)的初始化。
例:
DATASEGMENT
DA1DB9AH
DA2DW5678H
DA3DD12345678H
DATAENDS
變量的屬性:段屬性SEG
偏移屬性。FFSET
類(lèi)型屬性TYPE
第四章匯編語(yǔ)言
四、數(shù)據(jù)定義語(yǔ)句
?格式:變量名DB/DW/DD表達(dá)式J,表達(dá)式2,…
表達(dá)式:
⑴教值
⑵字符/字符串
(3)?表達(dá)式:分配相應(yīng)數(shù)量的存儲(chǔ)單元,但不初始化。
(4)帶DUP的表達(dá)式:使用重復(fù)數(shù)據(jù)操作符DUP,能方便
地定義連續(xù)的存儲(chǔ)單元。
格式:變量名DB/DW/DD表達(dá)式J,DUP(表達(dá)式2)
次教內(nèi)<
操作符DUP可以嵌套使用:
DAB3DB10HDUP(4DUP(3),8)
第四章匯編語(yǔ)言
DABYTElDB50H數(shù)值表達(dá)式
DA*YTE2DB10H,20H,30H,40HHz
DA^WORDlDW0A34H/
DA]WORD2DW1234H,5678H,9ABCH
DAZDWORDDD12345678H,9ABCDEFH
字符串表達(dá)式、
STRING1DB'STRING'
STRING!DW6ST\RT,NG,
STRINGSDD'ST',RI','NG'
]?表達(dá)式'
DABYTE3DB?,?
DAWORD3DW?,?
第四章匯編語(yǔ)言
STRING!STRING3
STRING1
第四章匯編語(yǔ)言
帶DUP表達(dá)式
DABlDB10HDUP(?7一
DA]B2DB20HDUPCABCD,)
DA]WIDW10DUP(4)
DAW2DW10DUP(-IJ)
內(nèi)容
格式:變量名DB/DW/DD表達(dá)式1,DUP(表達(dá)式2)
操作符DUP可以嵌套使用
DB10HDUP(4DUP(3),8);3,3,3,3,8重復(fù)10H次
第四章匯編語(yǔ)言
數(shù)據(jù)類(lèi)型
字節(jié)BYTE1DB
字WORD2DW
雙字DWORD4DD
四字QWORD8DQ
十字節(jié)TBYTE10DT
第四章匯編語(yǔ)言
五、匯編語(yǔ)言數(shù)據(jù)與運(yùn)算符
1.常教數(shù)值常教:二、八、十、十六進(jìn)制B,O,D,H
字符串常教
2.變量
用數(shù)據(jù)定義語(yǔ)句定義并預(yù)置初值后,變量代表存儲(chǔ)單元的教
據(jù),并作為該單元的符號(hào)地址。
變量引用:
在指令語(yǔ)句的操作數(shù)字段中,引用的變量名作為地址表
達(dá)式的組成部分之一。
地址表達(dá)式的值:存放操作數(shù)的存儲(chǔ)單元偏移量。
地址表達(dá)式的類(lèi)型:同變量名的類(lèi)型。
(2)在用DW或DD的數(shù)據(jù)定義語(yǔ)句中,若操作教字段引用
了變量名,則在分配的存儲(chǔ)單元中,預(yù)置被引用的變量名的
地址部分偏移量fDW;DD,前兩個(gè)字節(jié))
——段基值CDD,后兩個(gè)字節(jié))
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
3.標(biāo)號(hào):一條指令的符號(hào)地址。
?段屬性
?偏移屬性
?類(lèi)型屬性NEAR/FAR
?類(lèi)型屬性設(shè)置:
?C1J隱、合方式:NEXT:MOVAX,3000
?(2)用LABEL偽指令設(shè)置類(lèi)型屬性:
?標(biāo)號(hào)偽指令LABEL格式:
?名字LABEL類(lèi)型
?與指令語(yǔ)句配合使用:
?名字(新標(biāo)號(hào))LABEL類(lèi)型CNEAR/FARJ
?SUB1_FARLABELFAR
?SUB1:MOVAX,1234H
?與數(shù)據(jù)定義語(yǔ)句配合使用:
?名字(新變量名)LABEL類(lèi)型CBYTE/WORD/DWORDJ
?DATA_BYTELABELBYTE
?DATAWORDDW20HDUPC563HJ
第四章匯編語(yǔ)言
4.運(yùn)算符C1J算術(shù)運(yùn)算符
運(yùn)算符運(yùn)算格式運(yùn)算功能
++表達(dá)式正教r單項(xiàng)運(yùn)算符)
-表達(dá)式j(luò)負(fù)教(單項(xiàng)運(yùn)算符)
+表達(dá)式1+表達(dá)式2加法
表達(dá)式1-表達(dá)式2戒法
*表達(dá)式1*表達(dá)式2乘法
/表達(dá)式1/表達(dá)式2除法(取商)
MOD表達(dá)式1MOD表達(dá)式2模除(取余數(shù))
SHR表達(dá)式1SHR次教右移
SHL表達(dá)式1SHL次教左移
只有臧法運(yùn)算可以用同一段內(nèi)的兩個(gè)變量相戒
SHR、SHL不能對(duì)某寄存器或存儲(chǔ)單元內(nèi)余進(jìn)行移住運(yùn)算。
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
示例
NUM=11011011B
DATA1DWNUMSHL3,NUMSHR2
MOVAX,NUMSHL3
MOVBX,NUMSHR2
MOVCX,NUMSHL8
MOVCX,NUMSHL16
MOVDX,NUMSHR8
MOVDX,NUMSHR16
DATA1DW6D8H,36H
???
MOVAX5011011011000B
MOVBX,00110110B
MOVCX,1101101100000000B
MOVCX,0
MOVDX,0
MOVDX,0
第四章匯編語(yǔ)言
算術(shù)運(yùn)算符
?移位運(yùn)算符不能對(duì)寄存器或存儲(chǔ)單元進(jìn)行
移住運(yùn)算
MOVAX,CXSHL5
MOVDX,DATA1SHR3
第四章匯編語(yǔ)言
(2)近春運(yùn)算符
運(yùn)算符運(yùn)算格式___________運(yùn)算功能
NOTNOT表達(dá)式之梅非
AND表達(dá)式1AND表達(dá)式2謖子耳與
OR表達(dá)式1OR表達(dá)式2遂子耳或
XOR表達(dá)式1XOR表達(dá)式2謖握異或
近轉(zhuǎn)運(yùn)算符只能對(duì)一個(gè)具體數(shù)據(jù)進(jìn)行近轉(zhuǎn)運(yùn)算,不能對(duì)一
個(gè)寄存器操作數(shù)或存儲(chǔ)器操作教進(jìn)行邏輯運(yùn)算。
要援學(xué)孝關(guān)摩
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
示例
MOVAL,NOTOFOH
MOVDX,NOTOFOH
MOVBL,55HOROFOH
ANDBH,55HANDOFOH
XORCX,55HXOR50H
MOVAL,OFH
MOVDX,OFFOFH
MOVBL,0F5H
ANDBH,50H
XORCX,5
第四章匯編語(yǔ)言
(3)關(guān)余運(yùn)算符
運(yùn)算符運(yùn)算格式運(yùn)算功能
EQ表達(dá)式1EQ表達(dá)式2兩個(gè)表達(dá)式相等為真
NE表達(dá)式1NE表達(dá)式2兩個(gè)表達(dá)式不相等為真
LT表達(dá)式1LT表達(dá)式2表達(dá)式1<表達(dá)式2為工
LE表達(dá)式1LE表達(dá)式2表達(dá)式1<=表達(dá)式2為真
GT表達(dá)式1GT表達(dá)式2表達(dá)式1>表達(dá)式2為真
GE表達(dá)式1GE表達(dá)式2表達(dá)式1>=表達(dá)式2為真
全1為真,會(huì)。為假
比較時(shí),若為常數(shù)按無(wú)符號(hào)數(shù)比較;如果是變量,按偏移
量比較
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
示例
DATASEGMENT
ORG10H
NUM1=1234
NUM2=1234H
DABYTEDB10HDUP(O)
DA^WORDDW10HDUP(O)
DA]VAR1DWNUM2+DABYTEGTNUMl+DAWOR
DAVAR2DBNUM1LENUM2
DATAENDS
MOVAX,NUM1LTNUM2
MOVBL,NUM1GENUM2
MOVCX,DAWORDGTDABYTE
第四章匯編語(yǔ)言
DAVARlDWOFFFFH
DAVAR2DBOFFH
MOVAX,OFFFFH
MOVBL,0
MOVCX,OFFFFH
可以對(duì)兩個(gè)常數(shù)進(jìn)行比較,不能用常數(shù)與偏移量進(jìn)行比較
第四章匯編語(yǔ)言
C4J數(shù)值返回運(yùn)算符
格式:V運(yùn)算符〉V地址表達(dá)式〉
運(yùn)算對(duì)象是存儲(chǔ)器操作教,由變量名或標(biāo)號(hào)組成地
址表達(dá)式
?SEG:返回變量所在的段值
?OFFSET:返回變量所在偏移
?TYPE:返回變量的類(lèi)型
?LENGTH:返回?cái)?shù)組變量的元素個(gè)數(shù)
?SIZE:返回?cái)?shù)組變量所占的總字節(jié)教
SIZE=TYPE*LENGTH
第四章匯編語(yǔ)言
示例假設(shè)DATA的段基址是7A4EH
DATASEGMENT
ORG30H
DAIDB20HDUP(12H)
DA2DWDAI
DATAENDS
MOVAX,SEGDAIMOVAX,7A4EH
MOVBX,SEGDA2MOVBX,7A4EH
MOVSI,OFFSETDAIMOVSI,30H
MOVCX,DA2MOVCX,DA2
MOVDI,OFFSETDA2MOVDI,50H
MOVDX,OFFSETDA1+4MOVDX,34H
第四章匯編語(yǔ)言
TYPE運(yùn)算符
類(lèi)型屬性運(yùn)算結(jié)果
變量BYTE1
WORD2
DWORD4
■NEAR-1
FAR-2
用數(shù)字形式表示變量和標(biāo)號(hào)的類(lèi)型屬性
第四章匯編語(yǔ)言
示例
DABYTEDB12H
DA]WORDDW3456H
DA]DWORDDD789AH
MOVAL,TYPEDABYTE
MOVBL,TYPEDATWORD
MOVCL,TYPEDA-DWORD
MOVAL,1
MOVBL,2
MOVCL,4
第四章匯編語(yǔ)言
LENGTH與SIZE運(yùn)算符
?LENGTH運(yùn)算符
返回教組變量的元素個(gè)教
如果變量用DUP定義,Length為外層DUP的值
如果沒(méi)有DUP定義,結(jié)果為1
?SIZE運(yùn)算符
教組變量所占的總字節(jié)教
SIZE是LENGTH和TYPE的乘積
第四章匯編語(yǔ)言
示例
DATASEGMENT
VARIDB10HDUP(O)
VAR2DB10H,20H,30H,40H
VAR3DW10HDUP('A14DUP(3))
VAR4DBCOMPUTER,
???
DATAENDS
???
MOVAL,LENGTHVARI;(AL尸1OH
MOVAH,SIZEVARI;(AH尸1OH
MOVBL,LENGTHVAR2;(BL尸1
MOVBH,SIZEVAR2;(BH)=1
MOVCL,LENGTHVAR3;(CL尸1OH
MOVCH,SIZEVAR3;(CH尸20H
MOVDL,LENGTHVAR4;(DL尸1
尸
MOVDH?SIZEVAR4;(DH1
第四章匯編語(yǔ)言
例:求教組ARRAY的各數(shù)據(jù)項(xiàng)的累加和,從教組最后
一個(gè)數(shù)據(jù)項(xiàng)開(kāi)始進(jìn)行累加。
ARRAYDW20HDUP(4)
XORAX,AX
MOVSI,OFFSETARRAY
ADDSI,SIZEARRAY-TYPEARRAY
MOVCX,LENGTHARRAY
LOP:ADDAX,[SI]
SUBSI,TYPEARRAY
LOOPLOP
第四章匯編語(yǔ)言
(5)屬性運(yùn)算符
PTR:類(lèi)型PTR地址表達(dá)式
類(lèi)型可以是:BYTE9WORD9DWORD或NEARFAR
僅在當(dāng)前語(yǔ)句中有效,是一種臨時(shí)設(shè)置。
DABYTEDB20HDUP(O)
DA]WORDDW10HDUP(O)
MOVWORDPTRDABYTE[10],AX
ADDBYTEPTRDAWORD[DI],BL
INCBYTEPTR[SI]一
SUBWORDPTR[BX],30H
JMPFARPTRSUB1
第四章匯編語(yǔ)言
THIS:THIS類(lèi)型
?THIS常與等值語(yǔ)句EQU一起用,形成新變量名或
標(biāo)號(hào),使它們具有THIS后所指的類(lèi)型,而段基值
和偏移量與緊接的變量名或標(biāo)號(hào)相同。
?例:
?DATA_BYTEEQUTHISBYTE
?DATA_WORDDW20HDUPCOJ
?JUMP_FAREQUTHISFAR
?JUMPNEAR:XORAX,AX
MNaUM理B啊/第四章匯編語(yǔ)言
(6J分離字節(jié)運(yùn)算符
HIGH表達(dá)式
LOW表達(dá)式
分離運(yùn)算對(duì)象的離字節(jié)和低字節(jié)部分
表達(dá)式必須具有常量值,如常教、地址表達(dá)
式的偏移量,不能是存儲(chǔ)器操作教或寄存器
內(nèi)余.
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
示例
DATASEGMENT
ORG20H
CONSTEQUOABCDH
MOVAH,OABH
DATA1DB10HDUP(?)
MOVAL,OCDH
DATA2DW20HDUP(?)
MOVBH,0
MOVBL,30H
DATAENDS
MOVCL,68H
MOVAH,HIGHCONST
MOVAL,LOWCONST
MOVBH?HIGH(OFFSETDATA1)
MOVBL,LOW(OFFSETDATA2)
MOVCL,LOW(CONSTSHL3)
第四章匯編語(yǔ)言
錯(cuò)誤:
MOVCH,HIGHDATA1
i>存儲(chǔ)器
MOVCL,LOWDATA1
MOVDH,HIGHBP
?—寄存器
MOVDL,LOWAX
第四章匯編語(yǔ)言
(7)運(yùn)算符的優(yōu)先級(jí)
優(yōu)先級(jí)別運(yùn)算符
(最高)1LENGTH,SIZE
2PTR,OFFSET,SEG,TYPE?THIS
3HIGH,L0W
4+,-(單項(xiàng)運(yùn)算符)
5*,/,MOD,SHR,SHL
6+,~
7EQ,NE,LT,LE,GT,GE
8NOT
9AND
(最低)10OR,XOR
第四章匯編語(yǔ)言
六、段結(jié)構(gòu)偽指令
1.段定義偽指令
段名SEGMENT[定住類(lèi)型][組合類(lèi)型]['類(lèi)別名']
■■■
段名ENDS
?定位類(lèi)型(AlignType):
PAGE(頁(yè)):本段從一個(gè)頁(yè)的邊界開(kāi)始,起始地址能被
256整除。
PARA(節(jié)):本段從~個(gè)節(jié)的邊界開(kāi)始,起始地址能被
16整除。
WORD(字):本段從偶字節(jié)地址開(kāi)始。
BYTE(字節(jié)):本段從任意地址開(kāi)始。
第四章匯編語(yǔ)言
?組合類(lèi)型(CombineType):
表示段與段之間的連接:
None:本段與其它段無(wú)連接關(guān)宗,是獨(dú)立的。
PUBLIC:本段與其它同段名同類(lèi)型的段相連接在一起
,然后為所有這些段指定~個(gè)共同的段基地址,形成一
個(gè)新的近新段。
COMMONt本段與其它同段名同類(lèi)型的段設(shè)置相同的
段基址,共享相同的存儲(chǔ)區(qū),段長(zhǎng)度由同名段中最大的
段確定。(覆蓋段)
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
組合類(lèi)型(CombineType):
?STACK:與PUBLIC段相似,但此段為堆找
段,系統(tǒng)自動(dòng)對(duì)SS寄存器和SP指針初始化。
?AT表達(dá)式:本段的起始單元可以定位在表
達(dá)式所示的節(jié)邊界上。
?MEMORY:本段定伉在所有其它段的最高
地址,有多個(gè)段,只把第?個(gè)遇到的當(dāng)作
此段。
類(lèi)別名(Class):用戶給定,在鏈接時(shí)把相同
的段存儲(chǔ)在連續(xù)的存儲(chǔ)區(qū)。
第四章匯編語(yǔ)言
2.段尋址偽指令
ASSUME段寄存器名:段名,段寄存器名:段名,.
DSDATASEGMENT
VARIDB12H
DSDATAENDS
ES^DATASEGMENT
VAR2DB34H
ESDATAENDS
CODESEGMENT
VAR3DB56H
第四章匯編語(yǔ)言
ASSUMECS:CODE?DS:DS_DATA,ES:ES_DATA
START:……
???
INCVARI
INCVAR2
INCVAR3
???
CODEENDS
ENDSTART
?可用關(guān)鍵字NOTHING取請(qǐng)前面的某些設(shè)置。
例:ASSUMEDS:NOTHING;取消對(duì)DS的設(shè)置
ASSUMENOTHING;取消全部4個(gè)段R的設(shè)置
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
3.段寄存器的裝入
<1>DS,ES的裝入
DATADSSEGMENT
DB1一DB10HDUP(?)
DATADSENDS
DATAESSEGMENT
DB2一DB20HDUP(?)
DATAESENDS
CODFSEGMENT
ASSUMECS:CODE,DS:DATA_DS,ES:DATA_ES
START:MOVAX,DATAJDS;設(shè)鱉DS
MOVDS,AX~
MOVAX,DATAJES;^SES
MOVESfAX
???
CODEENDS
第四章匯編語(yǔ)言
自動(dòng)
<2>SS的裝人裝入
(1)STACK1SEGMENTPARASTACK
DW20HDUP(?)r執(zhí)行程序'
STACK1ENDS裝入
,J
(2)STACK2SEGMENT
DW30HDUP(?)
TOPLABELWORD
STACK2ENDS
CODESEGMENT
MOVAX,STACK2;設(shè)置SS
MOVSS,AX
MOVSP,OFFSETTOP;修改SP
第四章匯編語(yǔ)言
<3>CS的裝人
(1)結(jié)束偽指令
???
CODESEGMENT
ASSUMECS:CODE,
???
START:
???
CODEENDS
ENDSTART
(2)CALL,RET;JMP;IRET
第四章匯編語(yǔ)言
七、過(guò)程定義偽指令
過(guò)程名PROC[NEAR/FAR]
???
RET
過(guò)程名ENDP
?有三個(gè)屬性
??個(gè)過(guò)程內(nèi),至少有?條返回指令RET
?調(diào)用過(guò)程使用CALL過(guò)程名
?段內(nèi)返回與段間返回
第四章匯編語(yǔ)言
入、其它偽指令
?1.ORG,$
ORG表達(dá)式
將表達(dá)式的值賦給優(yōu)置計(jì)數(shù)案
$存放位置計(jì)數(shù)器的當(dāng)前值
第四章匯編語(yǔ)言
?ORG,$舉例
DATASEGMENT
ORG30H;$=30H
DB1DB12H534H;$=32H
ORG$+20H;$=52H
STRINGDB"STRING5
???
DATAENDS
第四章匯編語(yǔ)言
DATASEGMENT
DAI1UHDTU-TTPTV(/C?X)X;$=___7/0/-f/'f'
DA2DB12H,34H;$=72H
DA3DW56H,$+10H,78H,$+20H;$=MH
???
DATAENDS
CODESEGMENT
ORG50H
MOVAX,OFFSET$
MOVBX,OFFSET$
???
CODEENDS
MOVAX,0050H
MOVBX90053H
第四章匯編語(yǔ)言
入、其它偽指令
?2.EVEN偽指令定位偶地址
?3.INCLUDE偽指令
INCLUDE文件名
INCLUDE文件名
例:INCLUDEFILE.MAC
INCLUDEB:\MASM\ABC.ASM
第四章匯編語(yǔ)言
4.PUBLIC
PUBLIC符號(hào)1,符號(hào)2,
PUBLICNUM1,STRING,SUB1,LOOP1
DATA1SEGMENT
NUM1EQU1234H
???
STRINGDB'CHARACTERSTRING'
DATA1ENDS
CODEISEGMENT
SUB1PROCFAR
SUB1ENDP
LOOP1:...
CODEIENDS
END
第四章匯編語(yǔ)言
5.EXTRN偽指令
EXTRN符號(hào)1:類(lèi)型,符號(hào)2:類(lèi)型,
畫(huà)、
4、EXTRNNUM1:ABS,STRING:BYTE
EXTRNSUB1:FAR,LOOP1:NEAR
C0DE2SEGMENT
MOVAX,NUM1
LEABX,STRING
CALLSUB1
JMPFARPTRL00P1
CODE2ENDS
END
第四章匯編語(yǔ)言
入、其它偽指令
?5.TITLE(標(biāo)題)偽指令,指定?個(gè)標(biāo)題
格式:TITLE文本
?字符不超過(guò)80個(gè)
例:
TITLEEXAMPLEPROGRAM
第四章匯編語(yǔ)言
九、宏指令
例:
MULTAX10MACRO
PUSHBX
SALAX,1
MOVBX,AX
SALAX,1
SALAX,1
ADDAX,BX
POPBX
ENDM
第四章匯編語(yǔ)言
九、宏指令
1.宏定義
宏名MACRO[形參1,形參2,…]
ENDM
EXCHANGEMACROMEM1,MEM2,REG
MOVREG,MEM1
XCHGREG,MEM2
MOVMEM1,REG
ENDM
皿陽(yáng)備UM理8啊/第四章匯編語(yǔ)言
2.宏調(diào)用宏名[賣(mài)參1,實(shí)參2,…]
EXCHANGEDABY1?DABY2,AL
3.宏展開(kāi)
皿陽(yáng)備UM理B啊/第四章匯編語(yǔ)言
;宏定義
MULTAX10MACRO___
PUSHBX
SALAX,1
MOVBX,AX
SALAX,1
SALAX,1
ADDAX,BX
POPBX
ENDM
EXCHANGEMACROMEM1,MEM2,REG
MOVREG,MEM1
XCHGREG,MEM2
MOVMEM1,REG
ENDM
第四章匯編語(yǔ)言
DATASEGMENT
DAWOlDW—1234H
DA502DW5678H
DATAENDS
;設(shè)置堆棧段
STACK1SEGMENTPARASTACK
DW20HDUP(?)
STACK1ENDS
;設(shè)置代碼段
COSEGSEGMENT
ASSUMECS:COSEG,DS:DATA,SS:STACK1
START:MOVAX,DATA
MOVDS,AX
???
MULTAX10;宏指令語(yǔ)句
+PUSHBX
+SALAXJ
第四章匯編語(yǔ)言
+MOVBX,AX
+SALAX,1
+SALAX,1
+ADDAX,BX
+POPBX
EXCHANGEDAW01,DAW02,CX:宏指令語(yǔ)句
+MOVCX?DAW01
+XCHGCX,DAW02
+MOVDAWOf,CX
COSEGENDS
ENDSTART
第四章匯編語(yǔ)言
4.宏操作符
?連接操作符&
定義:SHIFTVARMACRORM,DIRECT,COUNT
MOVCL,COUNT
S&DIRECTRM,CL
ENDM
調(diào)用:SHIFTVARAX,HL,2
SHLAX,CL
SHIFTVARAX,HR,2
SHRAX,CL
第四章匯編語(yǔ)言
表達(dá)式操作符%
格式:%表達(dá)灰;獲取表達(dá)式的值(出現(xiàn)在宏調(diào)用中)
SHIFOMACROCNT
MOVCL,CNT
ENDM
SHIF1MACROREG,DIRECT,
NUM
COUNT=NUM;宏展開(kāi)
SHIFO%COUNTSHIF1AX,HL,2
S&DIRECTREG,CL+MOVCL,2
ENDM+SHLAX,CL
宏調(diào)用SHIF1BL,AR,3
SHIF1AX,HL,2+MOVCL,3
SHIF1BL,AR,3+SARBL,CL
第四章匯編語(yǔ)言
?文本操作符V>
EXCHANGE<BYTEPTRDA_WORD1>,<BYTEPTRDA_W0RD2>,AL
宏展開(kāi)
MOVAL,BYTEPTRDAWORD1
XCHGAL,BYTEPTRDA]WORD2
MOVBYTEPTRWORD1-AL
?字符操作符!
格式:!字符
宏定義:PROMPTMACRONUM,TEXT
PROMP&NUMDB'&TEXT&'
ENDM
宏調(diào)用:PROMPT23,<Expression!>255>
宏展開(kāi):PROMPT23DB'Expression>2559
?宏注解符;;
第四章匯編語(yǔ)言
5.LOCAL偽指令
LOCALv符號(hào)表>
在匯編過(guò)程中,宏定義中的內(nèi)態(tài)會(huì)在每一
次宏調(diào)用處展開(kāi)。因此當(dāng)多次調(diào)用?個(gè)宏時(shí),
宏定義中的標(biāo)號(hào)會(huì)造成標(biāo)號(hào)重復(fù)定義。
在宏定義中使用LOCAL偽指令可以使標(biāo)號(hào)
被局部化,從而避免重復(fù)定義。
LOCAL偽指令只能用在宏定義中,并且它
必須是宏定義中緊跟在MACRO偽指令之后的
第?個(gè)語(yǔ)句。
第四章匯編語(yǔ)言
用連續(xù)相加的辦法實(shí)現(xiàn)無(wú)符號(hào)數(shù)乘法運(yùn)算
MULTIPMACROMULTI?MULT2,MULT3
LOCALLOP,EXITO
MOVDX,MULTI
MOVCX,MULT2
XORBX,BX
XORAX,AX
JCXZEXITO
LOP:ADDBX,DX
ADCAX,0
LOOPLOP
EXITO:MOVMULT3,BX
MOVMULT3+2,AX
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨設(shè)轉(zhuǎn)讓協(xié)議書(shū)(2025年)-智能建筑設(shè)施更新3篇
- 4《珍珠鳥(niǎo)》說(shuō)課稿2024-2025學(xué)年統(tǒng)編版語(yǔ)文五年級(jí)上冊(cè)
- 2025至2030年中國(guó)端面外圓磨床數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)礦渣微粉數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024-2025學(xué)年新教材高中化學(xué) 第3章 簡(jiǎn)單的有機(jī)化合物 第3節(jié) 飲食中的有機(jī)化合物 第2課時(shí) 乙酸說(shuō)課稿 魯科版必修第二冊(cè)
- 2025年中國(guó)防銹切削液市場(chǎng)調(diào)查研究報(bào)告
- 2025年雷貝拉唑鈉項(xiàng)目可行性研究報(bào)告
- 2025年轉(zhuǎn)移印花項(xiàng)目可行性研究報(bào)告
- 2025年網(wǎng)絡(luò)傳真軟件項(xiàng)目可行性研究報(bào)告
- 2025年母豬寶項(xiàng)目可行性研究報(bào)告
- 體檢科運(yùn)營(yíng)可行性報(bào)告
- 廣東省廣州市黃埔區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末生物試卷+
- 北京市豐臺(tái)區(qū)市級(jí)名校2024屆數(shù)學(xué)高一第二學(xué)期期末檢測(cè)模擬試題含解析
- 設(shè)立項(xiàng)目管理公司組建方案
- 薪酬戰(zhàn)略與實(shí)踐
- 答案之書(shū)(解答之書(shū))-電子版精選答案
- 中國(guó)古代文學(xué)史 馬工程課件(上)01總緒論
- GB/T 22085.1-2008電子束及激光焊接接頭缺欠質(zhì)量分級(jí)指南第1部分:鋼
- 上海中心大廈-介紹 課件
- 非酒精性脂肪性肝病防治指南解讀課件
- 地理微格教學(xué)課件
評(píng)論
0/150
提交評(píng)論