版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
宏匯編語(yǔ)言程序設(shè)計(jì)
概述匯編語(yǔ)言利用指令的助記符、符號(hào)地址、標(biāo)號(hào)來(lái)編寫的語(yǔ)句匯編語(yǔ)言源原程序用匯編語(yǔ)言編寫的程序匯編程序連接程序匯編語(yǔ)言源程序目標(biāo)程序可執(zhí)行程序一個(gè)例子程序Page124,例4-1程序由段的描述組成指令語(yǔ)句/偽指令語(yǔ)句構(gòu)成§4-1匯編語(yǔ)言程序格式指令性語(yǔ)句偽指令語(yǔ)句數(shù)據(jù)項(xiàng)匯編語(yǔ)言程序格式——指令語(yǔ)句對(duì)象CPU與機(jī)器碼相對(duì)應(yīng),要求CPU執(zhí)行的操作格式
[標(biāo)號(hào):]指令助記符
[[操作數(shù)],操作數(shù)][;注釋]匯編語(yǔ)言程序格式——偽指令語(yǔ)句對(duì)象匯編程序通知編譯器,如何生成目標(biāo)碼。本身不產(chǎn)生機(jī)器目標(biāo)嗎格式
[名字]偽指令助記符
[[操作數(shù)],操作數(shù)...][;注釋]匯編語(yǔ)言程序格式——數(shù)據(jù)項(xiàng)常數(shù)確定的數(shù)據(jù),有固定值,沒有屬性變量存放在存儲(chǔ)單元中的值在程序中以變量名的形式出現(xiàn),代表存放數(shù)據(jù)的存儲(chǔ)單元的符號(hào)地址三屬性段屬性/段內(nèi)偏移量屬性/類型屬性匯編語(yǔ)言程序格式——數(shù)據(jù)項(xiàng)標(biāo)號(hào)可執(zhí)行指令語(yǔ)句的首字節(jié)地址的符號(hào)表示被JMP/CALL/LOOP等所使用三屬性段屬性/段內(nèi)偏移量屬性/類型(距離)屬性§4-2MASM中的表達(dá)式指令操作數(shù)形式常數(shù)、變量、標(biāo)號(hào)、表達(dá)式、關(guān)鍵字表達(dá)式的構(gòu)成運(yùn)算符運(yùn)算對(duì)象:常數(shù)、變量、標(biāo)號(hào)結(jié)果為常數(shù)、地址在匯編時(shí)求值六大類運(yùn)算表達(dá)式——算術(shù)運(yùn)算加、減、乘、除、模、左移、右移運(yùn)算對(duì)象、結(jié)果整數(shù)禁忌地址相加無(wú)法求值表達(dá)式——算術(shù)運(yùn)算例:abc equ 35hvar1 db 10hvar2 db 0ahmov ax,abcshr4mov ax,abcshl4mov cx,var2-var1mov bx,abc-5表達(dá)式——邏輯運(yùn)算與、或、非、異或——按位運(yùn)算運(yùn)算對(duì)象、結(jié)果常數(shù)禁忌變量名表達(dá)式——邏輯運(yùn)算例:abc = 10habc1 equ 2ahv1 db 3ahmov ax,abcand0fhmov ax,abcorabc1mov ax,v1andabc表達(dá)式——關(guān)系運(yùn)算EQ、NE、LT、GT、LE、GE對(duì)象數(shù)據(jù)同段內(nèi)的偏移地址結(jié)果真:全1假:全0表達(dá)式——關(guān)系運(yùn)算例:abc equ 10hmov ax,abceq10mov ax,abclt10mov ax,abcgt10表達(dá)式——數(shù)值返回運(yùn)算Offset、seg、type、length、size對(duì)象變量、標(biāo)號(hào)結(jié)果值表達(dá)式——數(shù)值返回運(yùn)算Offset變量、標(biāo)號(hào)的段內(nèi)偏移地址與LEA的差異???Seg變量、標(biāo)號(hào)的段地址表達(dá)式——數(shù)值返回運(yùn)算Type變量、標(biāo)號(hào)的類型屬性Length外層DUP的單元個(gè)數(shù)無(wú)DUP則返回1表達(dá)式——數(shù)值返回運(yùn)算Sizesize=length*type表達(dá)式——屬性修改運(yùn)算Ptr臨時(shí)改變變量、標(biāo)號(hào)的類型屬性mov wordptr[bx],0jmp farptrsub1This給變量、標(biāo)號(hào)賦予類型first equthisbytetable dw2000h表達(dá)式——屬性修改運(yùn)算High/Low字節(jié)分離常數(shù)、常數(shù)表達(dá)式mov al,low(offsetda1)§4-3偽指令語(yǔ)句不生成機(jī)器碼,幫助解釋、生成指令的機(jī)器碼變量定義、存儲(chǔ)器分配、段定義……偽指令語(yǔ)句——數(shù)據(jù)定義定義/分配變量的存儲(chǔ)器單元,并初始化存儲(chǔ)器單元格式變量名助記符操作數(shù),操作數(shù)…;注釋符號(hào)地址DBDWDD偽指令語(yǔ)句——數(shù)據(jù)定義DUP的使用定義重復(fù)數(shù)據(jù)例abc db 10dup(0)ab
db 100dup(1,2,34dup(0))偽指令語(yǔ)句——數(shù)據(jù)定義字符串的定義DB/DW/DD?DB按正常的順序排列DW/DD只能以兩個(gè)一組作定義,順序不同偽指令語(yǔ)句——數(shù)據(jù)定義符號(hào)地址的使用DW?DD?DB??偽指令語(yǔ)句——賦值不分配存儲(chǔ)器空間常數(shù)EQU不可重復(fù)賦值=可重復(fù)賦值偽指令語(yǔ)句——段定義段名segment定位類型組合類型‘分類名’
……段名 ends偽指令語(yǔ)句——段定義段名segment定位類型組合類型‘分類名’
……段名 ends定義該段起始地址定位ParaByteWordPage偽指令語(yǔ)句——段定義段名segment定位類型組合類型‘分類名’
……段名 ends定義組合類型NONEPUBLICCOMMONATSTACK偽指令語(yǔ)句——段定義段名segment定位類型組合類型‘分類名’
……段名 ends定義該段的分類名,分類名相同,被組合成同一個(gè)段偽指令語(yǔ)句——數(shù)據(jù)定義dsegsegmentat0055h one db 0 two dw two three dd two four equ 10h five dw four six db 5-fourdseg ends偽指令語(yǔ)句——段分配語(yǔ)句ASSUME說明當(dāng)前段是哪些段,幫助匯編程序產(chǎn)生段前綴必須放在第一句指令之前不得短缺Assumecs:cseg,ds:dseg,ss:sseg,es:esegAssumenothing偽指令語(yǔ)句——過程定義子程序格式 過程名 PROC 屬性
……
Ret
過程名 ENDP偽指令語(yǔ)句——END結(jié)束語(yǔ)句標(biāo)識(shí)程序的首指令格式END 標(biāo)號(hào)偽指令語(yǔ)句——段寄存器的初始化DS/ES指令裝入movax,dsegmovds,axmovax,esegmoves,ax偽指令語(yǔ)句——段寄存器的初始化SS/SP自動(dòng)裝入ssegsegmentSTACK
dw 100dup(0)ssegends偽指令語(yǔ)句——段寄存器的初始化SS/SP(指令裝入)定義sseg segment
dw
100dup(0)top label wordsseg ends裝入Movax,ssegMovss,axMovsp,offsettoptopequthisword偽指令語(yǔ)句——段寄存器的初始化CS自動(dòng)裝入end后的標(biāo)號(hào)便是第一條指令(語(yǔ)句)CS:IP匯編語(yǔ)言源程序的框架段的描述title注釋數(shù)據(jù)段(附加段)堆棧段代碼段(Assume)end標(biāo)號(hào)匯編語(yǔ)言源程序的框架Title<程序名><常量定義>dseg segment <變量定義>dseg endseseg segment <變量定義>eseg endssseg segmentstack 100Hdup(0)sseg ends
cseg segment assumecs:cseg,ds:dseg,es:eseg,ss:ssegmain procfarstart: push ds xor ax,ax push ax
mov ax,dseg
mov ds,ax
mov ax,eseg
mov es,eseg …… retmain endpcseg endsend start其他偽指令ORG<表達(dá)式>定位偽指令設(shè)置匯編程序位置指針,指定下一語(yǔ)句的起始偏移地址$匯編時(shí)用于指示下一數(shù)據(jù)/指令的段內(nèi)偏移量,當(dāng)前位置計(jì)數(shù)器常常用來(lái)計(jì)算前一變量的長(zhǎng)度,字節(jié)數(shù)其他偽指令dseg segment
org1000hv1 db 10h,20h,30H,40Hcount equ
$-v1dseg ends其他偽指令<名稱>Label<類型>給存儲(chǔ)單元(變量或標(biāo)號(hào))取一名字,并指定其類型<名稱>同樣具有三個(gè)屬性DataByte Label ByteDataWord DW 20HDup(0)結(jié)構(gòu)定義語(yǔ)句復(fù)雜數(shù)據(jù)的定義,將不同類型的數(shù)據(jù)放在同一個(gè)數(shù)據(jù)結(jié)構(gòu)中結(jié)構(gòu)定義
結(jié)構(gòu)名 STRUC ……
結(jié)構(gòu)名 ENDS結(jié)構(gòu)變量預(yù)置結(jié)構(gòu)變量名 結(jié)構(gòu)名<元素值,元素值,……>定義結(jié)構(gòu)成員,但不分配內(nèi)存預(yù)置時(shí),才被分配存儲(chǔ)單元結(jié)構(gòu)定義預(yù)置tab struc t1 db ‘a(chǎn)bcd’ t2 dw ? t3 dw segL1 t4 dw 2dup(0) t5 dw 1122H
dw 3344Htab endsone tab <>two tab <‘STOP’>three tab <,0FH,SEGL2>four tab 5dup
<‘EFGH’,55H>
結(jié)構(gòu)中的變量簡(jiǎn)單變量由DB、DW、DD定義的單個(gè)結(jié)構(gòu)元素內(nèi)容可被修改如: T1 DW 1234H多重變量包含多個(gè)元素值不可改,只能使用初值如: T4 DW 2DUP(0)
T5 DW 1122H,3344H結(jié)構(gòu)中的變量字符串內(nèi)容可改,長(zhǎng)度不得超過如: T6 DB ‘ASBD’多重結(jié)構(gòu)引用另一結(jié)構(gòu)結(jié)構(gòu)的使用MOV TWO.T2, AXMOV BX, FOUR.T5[0]MOV SI, OFFSETFOURMOV BX, [SI].T5[0]結(jié)構(gòu)的使用例:Page149/例4-41
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 青少年皮膚生活習(xí)慣注意事項(xiàng)
- 母嬰護(hù)理員崗位知識(shí)新讀本
- 胃腸減壓患者的疼痛管理
- 高級(jí)建造師培訓(xùn)課件
- 骨質(zhì)疏松癥的臨床表現(xiàn)與診斷
- 2025-2030綜合交通運(yùn)輸樞紐建設(shè)運(yùn)營(yíng)效益杠桿分析與政策建議規(guī)劃報(bào)告例文
- 公司的有限責(zé)任制度
- 公司付款報(bào)銷制度
- 2025-2030中國(guó)有機(jī)藜麥種子行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 分子篩培訓(xùn)課件
- 房屋租賃合同txt
- 加工中心點(diǎn)檢表
- 水庫(kù)清淤工程可行性研究報(bào)告
- THBFIA 0004-2020 紅棗制品標(biāo)準(zhǔn)
- GB/T 25630-2010透平壓縮機(jī)性能試驗(yàn)規(guī)程
- GB/T 19610-2004卷煙通風(fēng)的測(cè)定定義和測(cè)量原理
- 精排版《化工原理》講稿(全)
- 中層管理干部領(lǐng)導(dǎo)力提升課件
- 市場(chǎng)營(yíng)銷學(xué)-第12章-服務(wù)市場(chǎng)營(yíng)銷課件
- 小微型客車租賃經(jīng)營(yíng)備案表
- 風(fēng)生水起博主的投資周記
評(píng)論
0/150
提交評(píng)論