版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1
DATASEGMENT;定義數(shù)據(jù)段
DATA1DB0F8H,60H,0ACH,74H,3BH;被加數(shù)
DATA2DB0C1H,36H,9EH,0D5H,20H;加數(shù)
DATAENDS;數(shù)據(jù)段結(jié)束
CODESEGMENT;定義代碼段
ASSUMECS:CODE,DS:DATA;告訴匯編程序段范圍
START:MOVAX,DATA
MOVDS,AX;初始化DS
MOVCX,5
;循環(huán)次數(shù)送CX
MOVSI,0
;置SI初值為零匯編語言格式第2節(jié)匯編語言源程序的格式2
CLC
;清CF標志LOOPER:MOVAL,DATA2[SI];取一個字節(jié)加數(shù)
ADCDATA1[SI],AL;與被加數(shù)相加
INC SI
;SI加1指向下一字節(jié)
DECCX
;計數(shù)器CX減1
JNZLOOPER
;不等于零轉(zhuǎn)移
MOVAH,4CH
;停止
INT21H
;返回DOSCODEENDS;代碼段結(jié)束
ENDSTART
;源程序結(jié)束,指定起始地址標號匯編語言格式第2節(jié)匯編語言源程序的格式3匯編語言源程序標準格式DATASEGMENT…...DATAENDSSTACKSEGMENT…...STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AX ;初始化 …… MOVAH,4CH;返回DOS INT21HCODEENDSENDSTART第2節(jié)匯編語言源程序的格式分段結(jié)構(gòu)至少一個代碼段段分配:Assume設(shè)置DS、ES、SS返回DOS源代碼結(jié)束4匯編語言語句的類型和組成指令性語句:機器指令相對應,可以產(chǎn)生相應的機器碼第2節(jié)匯編語言源程序的格式語句格式—例:LOOPER:ADDAH,[SI];加法指示性語句(偽操作指令):不產(chǎn)生機器碼。無對應的機器指令,匯編時對偽指令進行處理,可完成數(shù)據(jù)定義、存儲區(qū)分配、段定義、段分配、指示程序結(jié)束等功能。格式——名字偽指令指示符操作數(shù),操作數(shù);注釋例:DATA1DB0F8H,60H,0ACH,74H語句格式—名字
偽指令操作符
操作數(shù),操作數(shù);注釋5助記符和偽操作指令助記符:MOV,ADD,….指示性(偽指令)操作符:DB,DW,SEGMENT,ENDS,ASSUME,END,….名字和標號:保留字第2節(jié)匯編語言源程序的格式6操作數(shù)匯編語言中的操作數(shù),可以是常數(shù)、變量、標號、寄存器、存儲器或表達式。常數(shù)是固定值,沒有屬性,是確定的數(shù)據(jù)。二進制:字母“B”結(jié)尾,例00110100B;八進制:字母“Q”或“O”結(jié)尾,例1037O、2370Q;十進制:字母“D”結(jié)尾或省略,或科學表示法,例1234D、5678、2.735E-2;十六進制:字母“H”結(jié)尾,“A~F”開頭時,前面加0,例56H、0A7F2H;字符串:用單引號‘’括起來,機內(nèi)存放的是各字符的ASCII碼。例‘ABC’。第2節(jié)匯編語言源程序的格式7操作數(shù)變量第2節(jié)匯編語言源程序的格式變量通常指存放在存儲單元中的值,程序運行中可以修改。所有的變量都具有三個屬性。⑴段值(SEGMENT)⑵段內(nèi)偏移地址(OFFSET)⑶類型(TYPE)8操作數(shù)標號第2節(jié)匯編語言源程序的格式
標號是可執(zhí)行指令語句的地址的符號表示,可作為程序轉(zhuǎn)向的目標地址。具有三個屬性。(1)段值(SEGMENT)(2)段內(nèi)偏移地址(OFFSET)(3)類型(TYPE)
類型NEAR,表示近標號,只能實現(xiàn)段內(nèi)轉(zhuǎn)移或調(diào)用;類型FAR,表示遠標號,可以實現(xiàn)段間轉(zhuǎn)移或調(diào)用。注意:若標號后面緊跟冒號,表示隱含此標號距離屬性為NEAR,也可用偽指令將此屬性改為FAR。9操作數(shù)表達式表達式:運算對象+運算符。在匯編時進行運算,運算結(jié)果作為語句中的操作數(shù)。運算對象:常數(shù)、變量、標號。得到的運算結(jié)果可以是一個常數(shù)字,也可以是一個存儲器的地址。MASM中6類運算符:算術(shù)運算符邏輯運算符關(guān)系運算符分析運算符合成運算符其它運算符
第2節(jié)匯編語言源程序的格式10操作數(shù)MASM的表達式中的運算符(1)11操作數(shù)MASM的表達式中的運算符(2)12操作數(shù)MASM的表達式中的運算符(3)13運算符之一:算術(shù)運算符+、-、*、/(除,只取除法運算結(jié)果之商)、MOD(模,只取除法運算結(jié)果之余數(shù))注意:所有的算術(shù)運算符均可以進行數(shù)據(jù)運算,運算對象與運算結(jié)果都是整數(shù)。若對地址運算,通常是在標號上加/減某一個數(shù)字量。第2節(jié)匯編語言源程序的格式例:數(shù)組ARRAY定義如下
ARRAYDB1,2,3,4,5,6,7,8TRYDB20指令為:MOVAX,30*5MOVCX,(TRY-ARRAY)匯編時,計算表達式形成如下指令:MOVAX,MOVCX,150814運算符之一:算術(shù)運算符第2節(jié)匯編語言源程序的格式例匯編程序指令格式如下:
DAEQU300MOVAX,DA-80MOVBX,DAMOD100MOVCX,DA/100MOVDH,01100100BSHR2
匯編時,計算表達式形成指令為:
DAEQU300MOVAX,
MOVBX,
MOVCX,
MOVDH,2200319H15運算符之二:邏輯運算符第2節(jié)匯編語言源程序的格式包括4種:AND(與)、OR(或)、NOT(非)、XOR(異或)注意:按位運算,只能對常數(shù)進行運算,得到結(jié)果也是常數(shù)。例MOVAL,NOT0FFHMOVBL,8CHAND73HMOVAH,8CHOR73H
匯編時,計算表達式形成指令為:
MOVAL,
MOVBL,
MOVAH,
000FFH16運算符之三:關(guān)系運算符第2節(jié)匯編語言源程序的格式包括6種:EQ(相等)、NE(不等)、LT(小于)、GT(大于)、LE(小于或等于)、GE(大于或等于)。注意:關(guān)系運算符的兩個操作數(shù)必須是數(shù)據(jù),或是同一段內(nèi)的兩個存儲單元的地址;若結(jié)果為真,輸出全是1,即0FFH或0FFFFH;若結(jié)果為假,輸出全是0。例MOVAX,10HGT16ADDBL,6EQ0110BMOVCX,((PORTLT5)AND100)OR((PORTGE5)AND200)匯編時,計算表達式形成指令為:
MOVAX,
ADDBL,
MOVCX,;當端口<5時00FFH100172.SEG【格式】SEG變量或標號
【功能】取變量或標號的段基值。例
MOVAX,SEGM1MOVDS,AX設(shè):M1是段名為DATA的數(shù)據(jù)段中的一個變量名;如DATA段從0500H開始,上述指令把0500H作為立即數(shù)在連接時插入指令,匯編后指令變?yōu)?MOVAX,MOVDX,AX運算符之四:分析運算符第2節(jié)匯編語言源程序的格式0500H183.TYPE【格式】TYPE變量或標號
【功能】加在變量前,返回變量的類型屬性;加在標號前,返回標號的距離屬性。運算符之四:分析運算符第2節(jié)匯編語言源程序的格式TYPE運算符返回值19運算符之四:分析運算符第2節(jié)匯編語言源程序的格式例A1DB20H,30HA2DW0438HA3DD?L1:MOVAH,TYPEA1MOVBH,TYPEA2ADDAL,TYPEA3MOVBL,TYPEL1
匯編時,計算表達式形成指令為:
MOVAH,MOVBH,ADDAL,MOVBL,1240FFH204.LENGTH【格式】LENGTH變量
【功能】當變量中使用DUP時,LENGTH返回此變量數(shù),對其它變量則返回1。運算符之四:分析運算符第2節(jié)匯編語言源程序的格式例M1DW100DUP(?)M2DW1,2,3M3DB‘A,B,C,D‘MOVCX,LENGTHM1MOVBL,LENGTHM2MOVAL,LENGTHM3
匯編時,計算表達式形成指令為:
MOVCX,
;返回變量所包含的100個字單元
MOVBL,MOVAL,0FFH11215.SIZE【格式】SIZE變量
【功能】加在變量前,返回該變量分配的總字節(jié)數(shù)。SIZE=LENGTH*TYPE。運算符之四:分析運算符第2節(jié)匯編語言源程序的格式例對上例定義的M1,M2,M3MOVCX,SIZEM1MOVBL,SIZEM2MOVAL,SIZEM3
匯編時,計算表達式形成指令為:
MOVCX,;返回變量所包含的200個字單元MOVBL,MOVBL,2002122運算符之五:合成運算符1.PTR第2節(jié)匯編語言源程序的格式【格式】類型/距離PTR變量或標號【功能】將PTR左邊的類型屬性賦給右邊的變量或標號。注意:PTR本身不分配存儲單元,僅對已分配的存儲單元賦予新的屬性;常與類BYTE、WORD、NEAR、FAR等連用。23運算符之五:合成運算符第2節(jié)匯編語言源程序的格式例N1DB15H,36HN2DW1122H,3344HLO:MOVAX,WORDPTRN1;使N1轉(zhuǎn)換成AX類型
MOVBL,N2;使N2轉(zhuǎn)換成BL類型例MOV[BX],10H
分析:將立即數(shù)送入BX間址指定的存儲單元,可以通過PTR指明是存入字節(jié)單元還是字單元。
MOVBYTEPTR[BX],10H;MOVWORDPTR[BX],10H;也可用PTR來改變距離屬性,
JMPFARPTRLOP
在JMP語句中將標號LOP改為FAR,使JMP指令在其它代碼段中也可以用,實現(xiàn)段間轉(zhuǎn)移。BYTEPTR
242.THIS第2節(jié)匯編語言源程序的格式【格式】變量/標號EQUTHIS類型/距離【功能】將EQUTHIS右邊的類型/距離屬性,賦給左邊的變量/標號,該變量或標號的段地址和偏移地址與下一個存儲單元的地址相同。(同一段存儲空間)【例】FIRSTEQUTHISBYTETABLEDW200DUP(?)FIRST的偏移地址值與TABLE的偏移地址值相同,區(qū)別在于FIRST變量為字節(jié)類型,TABLE為字類型。運算符之五:合成運算符25運算符之五:合成運算符3.SHORT第2節(jié)匯編語言源程序的格式【格式】SHORT
標號【功能】說明轉(zhuǎn)移類指令中轉(zhuǎn)向地址的屬性為短轉(zhuǎn)移:-128~+127之間例L1:JMPSHORTL2………L2:MOVAX,026運算符之六:其它運算符超越運算符“:”【格式】段前綴:變量或地址表達式【功能】表示某個變量或地址被修改。例:MOVAX,ES:[BX]HIGH和LOW【格式】HIGH/LOW變量或標號【功能】HIGH和LOW稱為字節(jié)分離運算符。例K1EQU0ABCDHK2EQU1234HMOVAH,HIGHK1MOVBL,LOWK2匯編時,計算表達式形成指令為:MOVAH,MOVBL,第2節(jié)匯編語言源程序的格式0ABH34H27
圓括號():
()中的運算符具有最高優(yōu)先權(quán)。方括號[]:方括號主要用來表示地址表達式或多重變量的下標值。尖括號<>,及圓點·
在結(jié)構(gòu)中專用。
MASK和WIDTH
在記錄中專用。運算符之六:其它運算符第2節(jié)匯編語言源程序的格式28數(shù)據(jù)定義偽指令【格式1】變量名助記符操作數(shù),操作數(shù)…;注釋【格式2】變量名助記符nDUP(操作數(shù),操作數(shù)…);注釋【功能】指定的存儲單元,以分配存儲空間或存入操作數(shù)。
變量名——用符號表示,可以省略,后面不跟冒號。匯編時將變量助記符后的第一個字節(jié)的偏移地址作為它的符號地址。
助記符——所用偽指令助記符主要有:
DB:用來定義字節(jié);DW:用來定義字;DD:用來定義雙字;DQ:用來定義四個字;DT:用來定義十個字節(jié);
操作數(shù)——操作數(shù)可以是常數(shù),字符串,變量,表達式等。多個操作數(shù)之間必須用逗號分開;格式2中,n必須是正整數(shù)。
注釋——說明偽指令的功能,注釋前必須帶分號“;”。第3節(jié)偽操作命令29數(shù)據(jù)定義偽指令第3節(jié)偽操作命令例操作數(shù)是常數(shù)或表達式:
DA1DB10H,52H
;變量DA1中裝入10H,52HDA2DW1122H,34H
;變量DA2中裝入22H,11H,34H,00HDA3DD0A0H,0FFEEH
;變量DA3中裝入A0H,00H,00H,;00H,EEH,FFH,00H,00H30數(shù)據(jù)定義偽指令第3節(jié)偽操作命令例操作數(shù)是字符串
FIRSTDB‘HELLO’;字符串‘HELLO’的ASCII碼裝入FIRST;開始的存儲單元SECONDDW‘OK’;字符串‘OK’的ASCII碼裝入SECOND開始的;存儲單元;只能定義兩個字符,即多于2字
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年上海建橋?qū)W院單招職業(yè)技能測試題庫含答案詳解
- 2026年上饒職業(yè)技術(shù)學院單招綜合素質(zhì)考試題庫附答案詳解
- 2026年海南職業(yè)技術(shù)學院單招職業(yè)技能測試題庫及參考答案詳解1套
- 2026年泉州工程職業(yè)技術(shù)學院單招職業(yè)傾向性考試題庫附答案詳解
- 煙臺醫(yī)院面試題目及答案
- 三甲醫(yī)院醫(yī)生面試題目及答案
- 2025年招聘天津津彩城投投資管理有限公司面向社會公開選聘備考題庫含答案詳解
- 2025安全生產(chǎn)環(huán)保工作總結(jié)(2篇)
- 2025年廣州醫(yī)科大學附屬第五醫(yī)院人才招聘計劃備考題庫完整參考答案詳解
- 2025年復旦大學附屬婦產(chǎn)科醫(yī)院招聘超聲科主任備考題庫及一套答案詳解
- 消防清包工勞務合同范本
- 畢業(yè)設(shè)計(論文)-轎車盤式制動器設(shè)計
- 中醫(yī)護理技術(shù)推拿
- 2025年人教版(2024)小學信息科技三年級(全一冊)教學設(shè)計及反思(附目錄P206)
- 6061鋁合金與CFRP回填式攪拌摩擦點焊:工藝解析與接頭性能探究
- 校油泵維修協(xié)議書
- 中小學食堂管理規(guī)范
- 零基礎(chǔ)電腦知識課件下載
- 煤礦重大災害治理頂層設(shè)計方案
- 車輛加水協(xié)議書范本
- 2021年重慶市高等職業(yè)教育分類考試文化素質(zhì)真題(中職類)
評論
0/150
提交評論