




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第4章章 匯編語言程序格式匯編語言程序格式第四章 匯編語言1第一頁,共19頁。4.1、匯編語言的功能、匯編語言的功能匯編語言是面向機器構(gòu)造的低級程序設(shè)計語言,是把機器語言符號化。匯編語言是面向機器構(gòu)造的低級程序設(shè)計語言,是把機器語言符號化。用匯編語言編的程序稱為匯編語言源程序,源程序必須經(jīng)過用匯編語言編的程序稱為匯編語言源程序,源程序必須經(jīng)過“匯編,生成目的代碼,經(jīng)過匯編,生成目的代碼,經(jīng)過“連接后生成執(zhí)行連接后生成執(zhí)行文件,方可直接運行。文件,方可直接運行。匯編語言源程序構(gòu)造:匯編語言源程序構(gòu)造:例例1:用匯編語言編寫:求解:用匯編語言編寫:求解Y=2A+B-C的程序的程序匯編語言源程序目
2、標(biāo)碼程序可執(zhí)行的目標(biāo)碼程序編輯程序匯編程序連接程序程序名.asm程序名.obj程序名.exe匯編語言的建立及匯編過程第四章 匯編語言2第二頁,共19頁。DATA SEGMENTA DB 25B DB 43 C DB 76 Y DB ? DATA ENDSSTACK1 SEGMENT PARA STACKDW 20H DUP0STACK1 ENDSCOSEG SEGMENT ASSUME CS:COSEG, DS:DATA,SS:STACK1START:MOV AX,DATA MOV DS,AX MOV AL,A ADD AL,B SAL AL,1 SUB AL,C MOV Y,AL MOV A
3、H,4CH INT 21HCOSEG ENDS END START192B4C00B8XXXX8ED8B44CCD21數(shù)據(jù)段數(shù)據(jù)段堆棧段堆棧段代碼段代碼段第四章 匯編語言3第三頁,共19頁。4.2、偽操作、偽操作匯編語言源程序由匯編語言語句組成:匯編語言源程序由匯編語言語句組成:指令語句:也稱可執(zhí)行語句。每條語句都有對應(yīng)的目的代碼,代表計算機具有的一個根本才能。指令語句:也稱可執(zhí)行語句。每條語句都有對應(yīng)的目的代碼,代表計算機具有的一個根本才能。偽指令語句:用于指示匯編程序如何匯編源程序的語句。部分語句產(chǎn)生目的代碼,部分語句不偽指令語句:用于指示匯編程序如何匯編源程序的語句。部分語句產(chǎn)生目的代碼
4、,部分語句不產(chǎn)生目的代碼。產(chǎn)生目的代碼。宏指令語句:為進步編程效率而使用的擴展指令。宏指令語句:為進步編程效率而使用的擴展指令。指令語句與偽指令語句格式:指令語句與偽指令語句格式: 標(biāo)識符標(biāo)識符 操作符操作符 操作數(shù)操作數(shù) ;注釋;注釋標(biāo)識符:任選段。指令語句為標(biāo)號,以:完畢。標(biāo)識符:任選段。指令語句為標(biāo)號,以:完畢。字符個數(shù)為字符個數(shù)為131個;個;第一個字符必須是字母、第一個字符必須是字母、“?、?、“、或、或“;不得使用系統(tǒng)保存字。不得使用系統(tǒng)保存字。第四章 匯編語言4第四頁,共19頁。指令語句與偽指令語句格式:續(xù)指令語句與偽指令語句格式:續(xù) 名字名字 操作符操作符 操作數(shù)操作數(shù) ;注釋
5、;注釋操作符:即指令的助記符,指明語句的功能。操作符:即指令的助記符,指明語句的功能。操作數(shù):指明指令的操作對象。操作數(shù):指明指令的操作對象。注釋:任選段。以注釋:任選段。以“;開場;開場第四章 匯編語言5第五頁,共19頁。4.2.1、處理器選擇偽操作、處理器選擇偽操作功能:指示匯編程序選擇哪一種指令系統(tǒng)功能:指示匯編程序選擇哪一種指令系統(tǒng) 主要有:主要有: .8086 選擇選擇8086指令系統(tǒng)指令系統(tǒng) .286 選擇選擇80286指令系統(tǒng)指令系統(tǒng) .586 選擇選擇Pentium指令系統(tǒng)指令系統(tǒng) .586P 選擇保護方式下的選擇保護方式下的Pentium指令系統(tǒng)指令系統(tǒng)第四章 匯編語言6第六
6、頁,共19頁。4.2.2、段定義偽操作、段定義偽操作1、完好的段定義偽指令、完好的段定義偽指令語句格式:語句格式: 段名段名 SEGMENT 定位類型定位類型組合類型組合類型類別名類別名 本段語句序列本段語句序列 指令或數(shù)據(jù)指令或數(shù)據(jù) 段名段名 ENDS功能:在內(nèi)存中設(shè)置一個邏輯段。功能:在內(nèi)存中設(shè)置一個邏輯段。定位類型:表示某段裝入內(nèi)存時,對段起始邊界的要求。定位類型:表示某段裝入內(nèi)存時,對段起始邊界的要求。 有四種選擇:有四種選擇:PAGE頁:段從一個頁:段從一個“頁的邊界開場,頁的邊界開場,256個字節(jié)為一頁,段起始地址低個字節(jié)為一頁,段起始地址低8位為位為0。PARA節(jié):隱含值。段從一
7、個節(jié):隱含值。段從一個“節(jié)的邊界開場,節(jié)的邊界開場,16個字節(jié)為一節(jié),段起始地址低個字節(jié)為一節(jié),段起始地址低4位為位為0 。WORD字:段從一個偶字節(jié)地址開場,段起始地址低字:段從一個偶字節(jié)地址開場,段起始地址低1位為位為0 。BYTE字節(jié):段可從任一個地址開場。字節(jié):段可從任一個地址開場。第四章 匯編語言7第七頁,共19頁。組合類型:說明多個程序塊連接時,本模塊與其它模塊的同名段如何組合,有組合類型:說明多個程序塊連接時,本模塊與其它模塊的同名段如何組合,有6種選擇:種選擇:None/PRIVATE:隱含值,表示本段與其他段無連接關(guān)系。:隱含值,表示本段與其他段無連接關(guān)系。PUBLIC:表示
8、把一樣段名、定位類型,組合類型也是:表示把一樣段名、定位類型,組合類型也是PUBLIC的段連接在一起,共同占用連續(xù)的存儲單元,的段連接在一起,共同占用連續(xù)的存儲單元,形成一個新段,重新調(diào)整偏移量。形成一個新段,重新調(diào)整偏移量。COMMON:表示一樣段名和組合類型也是:表示一樣段名和組合類型也是COMMON的段是覆蓋的,共享最大的段存儲區(qū)。的段是覆蓋的,共享最大的段存儲區(qū)。STACK:產(chǎn)生一個堆棧段,并把一樣段名的段連接成一個連續(xù)段,系統(tǒng)自動設(shè)置:產(chǎn)生一個堆棧段,并把一樣段名的段連接成一個連續(xù)段,系統(tǒng)自動設(shè)置SS為段的起為段的起始地址并初始化始地址并初始化SP值。值。AT 表達式:表示本段的起始
9、單元可定位在表達式所示表達式:表示本段的起始單元可定位在表達式所示“節(jié)的邊界上。節(jié)的邊界上。MEMORY:表示本段的存儲地址在所有段的最高處。:表示本段的存儲地址在所有段的最高處。類別名:在鏈接處理時,類別名:在鏈接處理時,LINK把類別一樣的段存放在連續(xù)的存儲區(qū)內(nèi)。把類別一樣的段存放在連續(xù)的存儲區(qū)內(nèi)。第四章 匯編語言8第八頁,共19頁。2、段尋址偽指令、段尋址偽指令語句格式:語句格式: ASSUME 段存放器名:段名,段存放器名:段名,段存放器名:段名,段存放器名:段名,功能:指定當(dāng)前段,及當(dāng)前段的段存放器名。功能:指定當(dāng)前段,及當(dāng)前段的段存放器名。取消取消 ASSUME 設(shè)置設(shè)置: ASS
10、UME 段存放器名段存放器名 :NOTHING。例9: DS_DATA SEGMENT VAR1 DB 12H DS_DATA ENDS ES_DATA SEGMENT VAR2 DB 34H ES_DATA ENDS CODE SEGMENT VAR3 DB 56H ASSUME CS:CODE,DS:DS_DATA,ES:ES_DATASTART INC VAR1 INC VAR2 INC VAR3 CODE ENDSEND START ASSUME偽指令沒有對段存放器賦值第四章 匯編語言9第九頁,共19頁。3、段存放器的裝入、段存放器的裝入(1)DS、ES裝入裝入:通過程序裝入:通過程序
11、裝入: MOV AX,DATA_DSMOV DS,AX(2)SS裝入裝入SS、SP同時裝入同時裝入:段定義偽指令組合類型用段定義偽指令組合類型用“STACK時,系統(tǒng)自動裝入。時,系統(tǒng)自動裝入。程序裝入,同程序裝入,同1。(3)CS裝入裝入:CS、IP同時裝入同時裝入系統(tǒng)用完畢偽指令裝入。格式系統(tǒng)用完畢偽指令裝入。格式 :END 起始地址起始地址通過分支指令修改時裝入。如通過分支指令修改時裝入。如CALL、JMP等。等。立即數(shù)不能直接傳給段存放器第四章 匯編語言10第十頁,共19頁。4.2.3、程序的完畢、程序的完畢 使用使用 END 第四章 匯編語言11第十一頁,共19頁。匯編語言的數(shù)據(jù)種類:
12、匯編語言的數(shù)據(jù)種類:常量常量變量變量標(biāo)號標(biāo)號4.2.4、數(shù)據(jù)定義及存儲器的分配偽指令、數(shù)據(jù)定義及存儲器的分配偽指令第四章 匯編語言12第十二頁,共19頁。變量:實際為內(nèi)存單元的數(shù)據(jù),并為該存儲單元取變量:實際為內(nèi)存單元的數(shù)據(jù),并為該存儲單元取 名字。其數(shù)據(jù)可以改變。名字。其數(shù)據(jù)可以改變。變量的屬性:變量的屬性: 1 1、段屬性:變量所在段址。、段屬性:變量所在段址。 2 2、偏移地址屬性:所在段的偏移地址。、偏移地址屬性:所在段的偏移地址。 3 3、類型屬性:變量所占的字節(jié)數(shù)。、類型屬性:變量所占的字節(jié)數(shù)。 第四章 匯編語言13第十三頁,共19頁。變量名變量名 DB/DW/DD DB/DW/D
13、D 表達式表達式, ,表達式,表達式,功能:功能: 為數(shù)據(jù)分配存儲單元,并用變量名作為該為數(shù)據(jù)分配存儲單元,并用變量名作為該 存儲器的名稱。存儲器的名稱。例:數(shù)值變量定義例:數(shù)值變量定義 DATA_BYTE DB 10,4,10H DATA_BYTE DB 10,4,10H DATA_WORD DW 100,100H,-5 DATA_WORD DW 100,100H,-5 DATA_DW DD 3 DATA_DW DD 3* *20,0FFFDH20,0FFFDH T1 DB HELLO T1 DB HELLO0100006410040ADATA_BYTEDATA_BYTEDATA_WORDD
14、ATA_WORD01004F4C4C45高高48第四章 匯編語言14第十四頁,共19頁。變量定義偽指令變量定義偽指令 DB- DB-字符串的定義字符串的定義 例例2、字符串變量定義:表達式由、字符串變量定義:表達式由ASCII碼字符組成碼字符組成,存儲數(shù)存儲數(shù)據(jù)為據(jù)為ASCII代碼。代碼。 STR1 DB STRSTR1 DB STR,GGTSIRG00STR2STRGSTR1STR2 DW STSTR2 DW ST,RIRI,GGSTR3 DD STSTR3 DD ST, G GTS0000G000000STR3單元分配原那么單元分配原那么: :1 1、DBDB單個字符串最多單個字符串最多2
15、55255個字符個字符, ,按順序存放;按順序存放;2 2、DW DW 單個字符串最多單個字符串最多2 2個字符個字符, ,按高地址存高字節(jié)代碼存放;按高地址存高字節(jié)代碼存放;3 3、DDDD單個字符串最多單個字符串最多2 2個字符個字符, ,高高2 2位為位為00,00,低低2 2位同位同DW.DW.第四章 匯編語言15第十五頁,共19頁。 變量定義偽指令變量定義偽指令 DB- DB-?、?、DUP DUP ?表達式:只分配存儲單元。表達式:只分配存儲單元。帶帶DUP表達式:重復(fù)分配存儲單元。表達式:重復(fù)分配存儲單元。格式格式: 表達式表達式1 DUP(表達式表達式2)表達式表達式1為重復(fù)次
16、數(shù)為重復(fù)次數(shù),表達式表達式2為重復(fù)數(shù)據(jù)內(nèi)容。為重復(fù)數(shù)據(jù)內(nèi)容。例例3:DAB1 DB 8 DUP?DAB2 DW 4 DUPSTDAB3 DW 4 DUP 4DAB4 DB 2 DUP 4 DUP3,8DAB5 DW 2 DUP 4 DUP 3,8TSTSTSTSDAB20000000000000000DAB1400400400400DAB33333833338DAB430303030803030303080DAB5DAB DB DAB DB ?,?,?DAW DW DAW DW ?DAD DD ?DAD DD ?224第四章 匯編語言16第十六頁,共19頁。常量:表示一個固定的數(shù)值。常量:表示
17、一個固定的數(shù)值。分類:分類: 1 1、常數(shù):指由、常數(shù):指由2 2、8 8、1010、1616進制表達的數(shù)值。進制表達的數(shù)值。 默認進制的設(shè)置:默認進制的設(shè)置:RADIX nRADIX n 2 2、字符串:使用單引號或雙引號括起來的單個、字符串:使用單引號或雙引號括起來的單個 或多個字符或多個字符, ,其數(shù)值為其所對應(yīng)的其數(shù)值為其所對應(yīng)的 ASCII ASCII碼。碼。 例:例:DD、ASDF ASDF 4.2.5、表達式賦值偽指令、表達式賦值偽指令EQU第四章 匯編語言17第十七頁,共19頁。符號定義作用:用符號表示常數(shù)或表達式。符號定義作用:用符號表示常數(shù)或表達式。 等值語句等值語句語句格式:符號語句格式:符號EQU EQU 表達式表達式功能:將功能:將EQUEQU右邊表達式的值賦給符號。右邊表達式的值賦給符號。 注意:注意:表達式可以為常數(shù)、數(shù)值表達式、地址表達式、變量或標(biāo)號。表達式可以為常數(shù)、數(shù)值表達式、地址表達式、變量或標(biāo)號。EQUEQU語句不產(chǎn)生目的代碼,不占存儲單元。語句不產(chǎn)生目的代碼,不占存儲單元。在同一源程序中,同一符號不能用在同一源程序中,同一符號不能用EQUEQU
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥物研發(fā)的法規(guī)與政策分析試題及答案
- 固膜性炎試題及答案
- 高三政治:熱點最后預(yù)測試題九:抗旱救災(zāi)
- 把握2024文化產(chǎn)業(yè)管理證書考試核心試題及答案
- 安排接待面試題及答案
- 系統(tǒng)架構(gòu)設(shè)計師多種架構(gòu)比較試題及答案
- 激光技術(shù)與工程師資格考試的復(fù)習(xí)策略試題及答案
- 藥師考試實例試題及答案匯編
- 育嬰師培訓(xùn)課程設(shè)計試題及答案
- 衛(wèi)生管理專職與兼職考量題及答案
- 借款利率協(xié)議
- 電梯維保管理體系手冊
- 《陽光心態(tài)》課件
- 《110kV三相環(huán)氧樹脂澆注絕緣干式電力變壓器技術(shù)參數(shù)和要求》
- 2019年7月13日下午云南省公務(wù)員無領(lǐng)導(dǎo)小組討論面試真題真題
- 人教版數(shù)學(xué)七年級下冊期中考試試卷帶答案
- 23J916-1 住宅排氣道(一)
- 圖文制作服務(wù) 投標(biāo)方案(技術(shù)方案)
- 2023-2024學(xué)年福建省三明市五縣聯(lián)合質(zhì)檢高二下學(xué)期期中考試化學(xué)試題
- 太陽能熱水器設(shè)計與安裝考核試卷
- 高中英語外研版 單詞表 必修3
評論
0/150
提交評論