匯編第四章1.ppt_第1頁
匯編第四章1.ppt_第2頁
匯編第四章1.ppt_第3頁
匯編第四章1.ppt_第4頁
匯編第四章1.ppt_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第1、4章匯編語言節(jié)目格式、匯編程序功能匯編語言節(jié)目格式醫(yī)生運(yùn)算符機(jī)械流程、2、節(jié)目功能(masm,link)、editprogr、progr.asm、progr.obj、匯編程序說明MASM語句格式的要求2)每個(gè)語句必須占用一行,但可以使用連續(xù)字符“”。3)為了提高可讀性,必須對每個(gè)字段進(jìn)行排序。命令醫(yī)生操作(醫(yī)生命令)宏命令以及操作所需的信息、標(biāo)簽和變量,如D1 segment as CSTR db comput a D1 ends code 1 segment.mov si、-1 mov al)變量類型包括BYTE、WORD、DWORD等。標(biāo)示類型包括NEAR(在牙齒段落中參考)和FAR

2、(指示在其他區(qū)段中參考)牙齒。地址表達(dá)式。地址表達(dá)式的默認(rèn)格式是變量名稱或標(biāo)簽名稱常量的類型由變量或標(biāo)簽確定。兩個(gè)地址表達(dá)式之間的差異表示兩個(gè)地址之間的距離(以字節(jié)為單位),兩個(gè)地址必須在同一段內(nèi)。無法添加兩個(gè)地址表達(dá)式。$是表示當(dāng)前地址的特殊地址表達(dá)式,即地址計(jì)數(shù)器的當(dāng)前值。范例:mov bx、block 10,5、行動項(xiàng)目、指令類似動作(類似指令)巨集指令、類似動作3360組件期間由組件節(jié)目(MASM)處理的動作。數(shù)據(jù)定義分配存儲表示節(jié)目結(jié)束。6,2。醫(yī)生操作、處理器選擇醫(yī)生命令段定義醫(yī)生命令A(yù)SSUME醫(yī)生命令節(jié)目開始/結(jié)束醫(yī)生命令數(shù)據(jù)定義和存儲分配醫(yī)生命令表達(dá)式分配偽命令EQU地址計(jì)數(shù)

3、器和排序偽命令LABEL偽命令,7,處理器選擇醫(yī)生命令,主要為. 8086.286.要使用更高的CPU命令,必須使用處理器選擇醫(yī)生命令。換句話說,以下代碼使用相應(yīng)的CPU命令:其中,結(jié)束p表示使用權(quán)限命令。使用32位CPU添加命令和寄存器或記憶體位址指定方法時(shí),必須至少使用. 386醫(yī)生命令。通常,您可以將其放置在程序的開頭,或放置在指令的前面。8,段定義醫(yī)生指示的預(yù)設(shè)格式。區(qū)段名稱SEGMENT STACK USE16區(qū)段名稱ENDS,其中STACK僅用于堆疊區(qū)段。USE16表示使用16位段。注意:(1)在實(shí)際模式下,只能使用16位段,32位段只能用于保護(hù)模式程序。因此,USE16在命令中將

4、主(2)段名稱顯示為操作數(shù)時(shí),MASM牙齒將其視為立即,以指示段地址。D1 segment as CSTR db comput a D1 ends code 1 segment assume cs : code 1,ds : D1.mov ax、D1 mov ds、ax code 1 ends、9。ASSUME醫(yī)生指令的默認(rèn)格式:ASSUME節(jié)寄存器名稱3360節(jié)名稱,段寄存器名稱:節(jié)名稱功能:表示段與段寄存器之間的對應(yīng)關(guān)系。也就是說,MASM告訴您一個(gè)段的段地址在哪個(gè)段寄存器中。程序定義段時(shí),必須通知匯編程序段的段地址在哪個(gè)段寄存器內(nèi)。ASSUME提供這種信息。例如, Assume CS :

5、 CSEG、DS3360 DSEG、ES : ESEG和SS : SSEG表示CSEG、DSEG、ESEG和SSEG分別是片段、數(shù)據(jù)段、附加段和堆棧段。10,示例:D1段;Define data segment.D1 ends D2 segmentDefine extra segment.D2 ends代碼1段;define code segment assume cs : code 1,ds: D1,es: D2.代碼1 ENDs,11,節(jié)目啟動/關(guān)閉醫(yī)生命令,關(guān)閉醫(yī)生命令默認(rèn)格式:end地址功能可選地址表示節(jié)目運(yùn)行的起點(diǎn),通常為標(biāo)簽或過程名。如果程序包含多個(gè)源文件,則每個(gè)源文件的末尾必須有

6、END語句,但是只有主模塊文件可以指示運(yùn)行的起始地址。12,開始醫(yī)生指令的默認(rèn)格式:名稱模塊名稱功能:指定模塊的名稱。也可以使用:標(biāo)題文本他們不需要。13、數(shù)據(jù)定義和存儲分配醫(yī)生命令(變量定義醫(yī)生命令)、功能:為數(shù)據(jù)分配內(nèi)存空間并設(shè)置相應(yīng)內(nèi)存單元的初始值。格式:變量名變量定義符操作數(shù),操作數(shù)變量名是表示后續(xù)操作數(shù)的第一個(gè)地址的符號地址,變量名是可選的,變量名是用于通過名稱訪問相應(yīng)的內(nèi)存單元的。14,示例:創(chuàng)建顯示字符串字符串的節(jié)目data segment STRING db happy new year!0DH,0AH,$ COUNT DW 17 DATA ENDS.變量名稱變量定義器變量定義

7、器操作數(shù)、操作數(shù)、15、變量定義器主要由定義字節(jié)(DB)組成,定義定義詞:后面的每個(gè)操作數(shù)占用一個(gè)單詞。DD(Define Dword):定義兩個(gè)單詞。后面的每個(gè)操作數(shù)占兩個(gè)詞。操作數(shù)可以是常數(shù)、EQU或=定義的符號常數(shù)、表達(dá)式、和DUP子句等。其中一個(gè)?表示未定義初始值,僅保留內(nèi)存空間。復(fù)制運(yùn)算符DUP子句的格式如下:迭代次數(shù)DUP(操作數(shù),操作數(shù)),16,such as : data segment D1 db 10,10h D2 dw-5 d3dd3 * 20,0 ffdh data ea 0ah 10h FB ff 3c 00 00)dataends,0 2 0 2.、a1、a2,操作

8、數(shù)是復(fù)制運(yùn)算符dup、100字節(jié)單位,(2) DB對應(yīng)于S1 DB 41H、42H S2DWAB。S2DW4142H、S1S2、41H42H41H、19、(3) DW可用于存儲變量或標(biāo)簽的偏移地址。(4)可以使用DD將變量或標(biāo)簽的段地址和偏移地址存儲在內(nèi)存中(段地址是高字母,偏移地址是低字母)。例如,X DB10 ADDR1DW X ADDR2DDX ADDR1的內(nèi)容(單詞)是變量X的偏移地址ADDR2的高單詞X的段地址,低單詞X的偏移地址,x addr1 addr2,示例:OP1DB?OP2DW?以下兩個(gè)命令徐璐執(zhí)行其他類型的操作。MOV OP1 1,0;將0作為一個(gè)字節(jié)發(fā)送到地址OP1 M

9、OVOP2,0的字節(jié)操作命令單詞操作命令,將0作為一個(gè)單詞發(fā)送到地址OP2 2,21,則以下兩個(gè)茄子命令無效:MOVOP1、AX;類型不匹配MOVOP2、AL;如何執(zhí)行與類型不匹配變量類型不匹配的操作(例如,在文字變量中實(shí)現(xiàn)字節(jié)操作)?您可以使用類型運(yùn)算符PTR等,如下所述:22,指定表達(dá)式醫(yī)生命令符號定義醫(yī)生命令(EQU),默認(rèn)格式:符號名稱EQU表達(dá)式符號名稱=常量表達(dá)式功能:為表達(dá)式命名(如果程序中同一表達(dá)式多次出現(xiàn),則更方便)。說明:(1)=后面的表達(dá)式可以是常數(shù),對于文字或字符串,在裝配時(shí)會將其視為整數(shù)。例如:COUNT=20 MOV CX,COUNT;MOV CX,20 (2)EQ

10、U的表達(dá)式可以是數(shù)字、字符串、寄存器名稱、命令助記符等。23,例如ALPHA EQU 7 Beta EQU ALPHA 8 (3)EQU不能重新定義=可定義,從定義點(diǎn)到重新定義作用域。Suchas:e=7.e=E1.24,地址柜臺和排序醫(yī)生命令1。地址柜臺2。ORG醫(yī)生命令3。EVEN醫(yī)生命令,地址柜臺($使用)$牙齒命令中的第一個(gè)地址加6,然后轉(zhuǎn)到該地址。Jne -計(jì)算結(jié)果不相等時(shí)發(fā)送(ZF=0),25,suchas 2: array dw1,2,$4,3,$4,0074 h0075 0076 0077 0078 0079 0079ORG可以設(shè)置數(shù)據(jù)或代碼的偏移地址。格式:ORG常數(shù)表達(dá)式功

11、能:將以下數(shù)據(jù)或代碼的起始偏移地址設(shè)置為n (n是常數(shù)表達(dá)式的值):也就是說,將地址柜臺值設(shè)置為n。27,示例您知道以下數(shù)據(jù)段,它們表示變量V1,V2的偏移地址:Data segment org 200h v1dw 1,2 org $4 v2db6 dataends,v1 v2,01h 00h 02h 00h.such as : data segment org 200h v1 db1;EA=0200H even v2dw6EA=0202H dataends,29,LABEL醫(yī)生命令默認(rèn)格式:名稱LABEL類型功能:指定地址由位置確定的名稱類型。但是,沒有為名稱分配內(nèi)存空間。說明:如果類型為B

12、YTE、WORD、DWORD,則名稱將用作該類型的變量。如果類型是NEAR或FAR,則名稱充當(dāng)該類型的表示法。30,定義兩個(gè)地址相同、類型不同的變量。Balabelbyte wadw50 dup(?)將100字節(jié)數(shù)組的第一個(gè)地址賦給兩個(gè)茄子不同類型的變量:字節(jié)類型變量BA和單詞類型變量WA。WA 2和BA 2指向相同的內(nèi)存地址,但mov wa 2,0中的兩個(gè)茄子命令徐璐以不同的方式工作。發(fā)送0作為一個(gè)單詞。地址wa 2 mov ba 2,0;以1字節(jié)向地址發(fā)送0。Ba2、bawa、00h00h、31、匯編語言語句可以由四種茄子格式組成:名稱操作數(shù)操作數(shù);注釋、命令醫(yī)生操作(醫(yī)生命令)宏命令、操

13、作所需的一個(gè)或多個(gè)信息可以是常量寄存器標(biāo)簽變量表達(dá)式、標(biāo)簽和變量、表達(dá)式:常量、寄存器、標(biāo)簽、變量和運(yùn)算符的組合、32是數(shù)字環(huán)回運(yùn)算符(地址運(yùn)算符)。屬性運(yùn)算符,NEXT,33,數(shù)字環(huán)回運(yùn)算符(地址運(yùn)算符)數(shù)字環(huán)回運(yùn)算符的返回值都是數(shù)值,立即等于數(shù)字,在裝配時(shí)由MASM自動計(jì)算。(1)SEG格式:SEG地址表達(dá)式功能:立即將地址表達(dá)式中的段地址作為數(shù)字返回(裝配時(shí)評估)。(2)OFFSET格式:OFFSET地址表達(dá)式功能:立即將地址表達(dá)式中的偏移地址作為數(shù)字(裝配時(shí)評估)返回。34,Such as1:已知數(shù)據(jù)段從05000H開始定義(即(ds)=0500H ).oper1牙齒數(shù)據(jù)段。然后是movbx,seg oper 1;創(chuàng)建(bx)=0500h such as23360 mov bx,offset oper 1;(bx)=oper1的偏移;LEABX、Oper1,35、(3)類型、大小和長度格式:類型變量/標(biāo)簽大小變量長度變量功能:類型返回表示變量/標(biāo)簽類型的常量。對于變量,DB為1,DW為

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論