




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章匯編語(yǔ)言程序設(shè)計(jì)m_DATA SEGMENTm_DAT1DB
0F7H,
060H,
0ACH,
074H,
03BHm_DAT2 DB
0C1H,
036H,
09EH,0D5H,
020Hm_DATA ENDS
m_CODE SEGMENT
ASSUME
CS:m_CODE
,DS:m_DATA
Start:
MOV
AX, m_DATA
MOV
DS,
AX
MOV
CX,
5
MOV
SI,
0
CLCLOOPER:MOV
AL, m_DAT2[SI]
ADC m_DAT1[SI],AL
INC
SI
LOOP LOOPER
HLT
m_CODE ENDS
END數(shù)據(jù)段代碼段10000 m_DATA SEGMENT20000F760AC743B m_DAT1DB 0F7H,060H,0ACH, 074H,03BH30005C1369ED520 m_DAT2 DB 0C1H, 036H,09EH, 0D5H,020H4000AD00F4940C3F5 m_Float DD 3.14159,3.14,1.0548400000803F 60016 m_DATA ENDS7 80000 m_CODE SEGMENT9 ASSUME CS:m_CODE,DS:m_DATA
100000B8R Start: MOV AX, m_DATA
1100038ED8 MOV DS, AX120005B90005 MOV CX, 5130008BE0000 MOV SI, 014000BF8 CLC15000C8A840005R LOOPER: MOV AL, m_DAT2[SI]16001010840000R ADC m_DAT1[SI], AL 17001446 INC SI180015E2F5 LOOP LOOPER190017F4 HLT 200018 m_CODE ENDS21 ENDSegmentsandGroups:Name Length Align CombineClassM_CODE............. 0018 PARA NONE M_DATA............. 0016 PARA NONE Symbols:Name Type Value AttrLOOPER............. LNEAR 000C M_CODEM_DAT1............. LBYTE 0000 M_DATAM_DAT2............. LBYTE 0005 M_DATAM_FLOAT............ LDWORD 000A M_DATASTART............. LNEAR 0000 M_CODE@FILENAME........... TEXTaddb5 20SourceLines20TotalLines9Symbols0WarningErrors0SevereErrors機(jī)器語(yǔ)言001C:8A840500
MOVAL,[SI+0005]匯編語(yǔ)言Start:
MOV
AX, m_DATA高級(jí)語(yǔ)言Sum=Sum+X[i];匯編過(guò)程myfile.asm編輯程序匯編程序連接程序myfile.crfotherfiles.objmyfile.lstmyfile.objmyfile.mapmyfile.exe建立及匯編過(guò)程C>MASMMYFILE.ASMMicrosoft(R)MacroAssemblerVersion5.10Copyright(C)MicrosoftCorp1981,1988.Allrightsreserved.Objectfilename[MYFILE.OBJ]:Sourcelisting[NUL.LST]:MYFILE.LSTCross-reference[NUL.CRF]:47962+413345Bytessymbolspacefree0WarningErrors0SevereErrorsC>LINKMYFILE.OBJMicrosoft(R)OverlayLinkerVersion3.64Copyright(C)MicrosoftCorp1983-1988.Allrightsreserved.RunFile[MYFILE.EXE]:ListFile[NUL.MAP]:
Libraries[.LIB]:LINK:warningL4021:nostacksegment第1節(jié)匯編程序基礎(chǔ)6.1.1分段結(jié)構(gòu)data_seg1
SEGMENT
data_seg1
ENDS;data_seg2
SEGMENT
data_seg2
ENDS;code_seg
SEGMENT
ASSUME
CS:code_seg,
DS:data_seg1,
ES:data_seg2start:
MOV
AX,
data_seg1
MOV
DS,
AX
MOV
AX,
data_seg2
MOV
ES,
AX
code_seg
ENDS;
END
start
1.指令性語(yǔ)句
也稱可執(zhí)行性語(yǔ)句,表示為CPU指令系統(tǒng)中各種用助記符形式的機(jī)器指令。這些指令在匯編過(guò)程中最終轉(zhuǎn)換為目標(biāo)程序的機(jī)器代碼,在運(yùn)行該程序時(shí)被執(zhí)行。(機(jī)器執(zhí)行)
MOV
AX, data_seg2
2.指示性語(yǔ)句
常稱為偽指令,這些指令在匯編過(guò)程中被執(zhí)行,指示相應(yīng)的匯編操作,其自身并不產(chǎn)生任何目標(biāo)代碼。(匯編器識(shí)別)
m_DAT1 DB
0F7H,060H,
0ACH,
074H,
03BH6.1.2語(yǔ)句類型start:
MOV
AX, b
a DW
?;定義變量a6.1.3語(yǔ)句格式;OUTPUT: returnpositive16-bitquotientinACC6.1.3.1
名字可分為變量和標(biāo)號(hào)兩種,具有段基址、段內(nèi)偏移地址及類型等三種屬性。段基址與段內(nèi)偏移地址可通稱為該名字所在位置的地址屬性。
命名規(guī)則:字母 A-Z,a-z
數(shù)字 0-9
特殊字符 ?_$@.
Start:
MOV
AX, b m_Volt03
DW
?;定義變量aSymbols:
Name TYPE Value AttrLOOPER............. L NEAR
000C M_CODEM_DAT1............. L BYTE
0000 M_DATAM_DAT2............. L BYTE
0005 M_DATASTART............. L NEAR
0000 M_CODE變量的類型屬性為所定義的數(shù)據(jù)類型
(如,字節(jié)BYTE、字WORD、雙字DWORD等)標(biāo)號(hào)為可執(zhí)行語(yǔ)句的符號(hào)地址,其類型屬性表示可指向的距離 (如,近程N(yùn)EAR、遠(yuǎn)程FAR等)6.1.3.2
助記符項(xiàng)(1)指令性語(yǔ)句
MOV, ADD,CALL, JZ…(2)指示性語(yǔ)句(偽指令)
SEGMENT, DB,EQU…
6.1.3.3
操作數(shù)項(xiàng)(1)
常數(shù)
給出具體的數(shù)據(jù),可以是數(shù)字常量或字符常量。
數(shù)字默認(rèn)十進(jìn)制, 如
1234D或1234;
數(shù)字后加B表示二進(jìn)制數(shù), 如
1010B;
數(shù)字后加H表示十六進(jìn)制數(shù), 如0ab00H;
字符常量,用單引號(hào)表示。 如‘1234’ 操作數(shù)可以是常數(shù)、寄存器、存儲(chǔ)器操作數(shù)、標(biāo)號(hào)名、過(guò)程名或表達(dá)式等。data1DB12,34,56 ;十進(jìn)制data2DB12H,0afH,56H ;十六進(jìn)制
string DB‘Badcommand’ ;字符串
SubAL,‘A’ ;字符
add bx, 2(2)表達(dá)式匯編程序?qū)Ρ磉_(dá)式進(jìn)行運(yùn)算后,得到一個(gè)確定的數(shù)值,再把這個(gè)數(shù)值匯編到指令中VIDEO_BUFDB80*2DUP(?)ADDAX,VIDEO_BUF+2表達(dá)式中的操作符算術(shù)運(yùn)算符(+、-、*、/、MOD)邏輯運(yùn)算符(AND、OR、NOT、XOR)關(guān)系運(yùn)算符(EQ、NE、GT、GE、LT、LE)數(shù)值返回操作符(SEG、OFFSET)MOVAL,
(OFFSETY-OFFSETX)LE1286.1.3.4注釋項(xiàng)
注釋由分號(hào)引出,用來(lái)說(shuō)明語(yǔ)句或程序的功能。匯編程序?qū)Ψ痔?hào)后的內(nèi)容不做處理。(1)注釋程序,增強(qiáng)程序可讀性;(2)可放在語(yǔ)句最前面,暫時(shí)注釋某語(yǔ)句,供程序調(diào)試用。;**********************************************************************;FunctionName: divu;Description: PROGRAMtounsigneddivision; positive31-bit(unsignedlong)dividend; positive16-bit(unsignedint)divisor;INPUT: (dividend,divisor);OUTPUT: returnpositive16-bitquotientinACCL ;TIME: 6.2us ;**********************************************************************
sub al,‘a(chǎn)’-10 ;‘a(chǎn)’~‘f’cmpal,0ahjlexit ;<‘a(chǎn)’退出cmpal,10hjge exit ;>’f’退出6.1.4偽指令處理器選擇偽操作段定義偽操作數(shù)據(jù)定義及存儲(chǔ)器分配偽操作地址計(jì)數(shù)器與對(duì)準(zhǔn)偽操作表達(dá)式賦值偽操作6.1.4.1處理器選擇偽指令
.8086選擇8086指令系統(tǒng)
.286選擇80286指令系統(tǒng)
.286P選擇保護(hù)模式下的80286指令系統(tǒng)
.386選擇80386指令系統(tǒng)
.386P選擇保護(hù)模式下的80386指令系統(tǒng)
.486選擇80486指令系統(tǒng)
.486P選擇保護(hù)模式下的80486指令系統(tǒng)
.586選擇Pentium指令系統(tǒng)
.586P選擇保護(hù)模式下的Pentium指令系統(tǒng)6.1.4.2段定義偽指令段名
SEGMENT[定位][組合][類別][屬性] …………段名
ENDS定位類型align_type
PARABYTEWORDDWORDPAGE組合類型combine_type
PRIVATEPUBLICCOMMONSTACKATexp使用類型use_type
USE16USE32(4)類別‘class’mY_Data
SEGMENTa DW
?b DW
3c DW
5mY_Data
ENDS
;——————————————————————
ASSUME
CS:mY_Code,
DS:
mY_DatamY_Code
SEGMENTStart:
MOV
AX, b
ADD
AX, c
MOV
BX,
OFFSETa MOV
[BX],
AX
mY_Code
ENDS
;————————————6.1.4.3數(shù)據(jù)定義偽指令[變量] DB操作數(shù)[,操作數(shù),…][;注釋] DW DDDATA_BYTEDB10,4,10H,?DATA_WORDDW100,100H,-5,?
-
0AH
04H
10H
-
64H
00H
00H01H
FBH
FFH
-DATA_BYTE
DATA_WORD
ARRAYDB‘HELLO’DB‘AB’DW‘AB’
48H
45H
4CH
4CH
4FH
41H
42H
42H41H
ARRAY
變量名偏移地址(H)內(nèi)容(H)說(shuō)明
DATA_BYTE00000A100001044000210160003?預(yù)留
DATA_WORD000464256000500000600-50007010008FB‘Y’0009FF000A79‘X’000B78000C74‘Z’000D00空
DATA_BYTE DB 10,4,10H,?DATA_WORD DW 100,100H,-5,’XY’,’Z’nouse
DW
8
DUP
(12)s_dat
DW
0F7H,
060H,
0ACH,
0,
-8
DW
10,
036H,
-8,
'
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 股份制企業(yè)合同文書(shū)撰寫要點(diǎn)
- 科技創(chuàng)新園區(qū)建設(shè)投資合同
- 物聯(lián)網(wǎng)項(xiàng)目戰(zhàn)略合作協(xié)議
- 商業(yè)價(jià)格保密協(xié)議
- 醫(yī)院與社區(qū)健康服務(wù)合作協(xié)議書(shū)
- 農(nóng)業(yè)產(chǎn)業(yè)集群發(fā)展運(yùn)營(yíng)方案
- 委托中介出售房屋協(xié)議
- 綠化場(chǎng)地租賃合同
- 媒體廣告代理協(xié)議書(shū)
- 高端消費(fèi)品設(shè)計(jì)合作協(xié)議
- 山東省德州市2024-2025學(xué)年高三上學(xué)期1月期末生物試題(有答案)
- 本人報(bào)廢車輛委托書(shū)
- 雙減政策與五項(xiàng)管理解讀
- 2025年道德與法治小學(xué)六年級(jí)下冊(cè)教學(xué)計(jì)劃(含進(jìn)度表)
- 過(guò)橋資金操作流程
- 貨物學(xué) 課件1.2貨物的特性
- 新時(shí)代中國(guó)特色社會(huì)主義理論與實(shí)踐2024版研究生教材課件全集2章
- 色彩發(fā)展的歷史課件
- 學(xué)生成長(zhǎng)導(dǎo)師制工作手冊(cè)
- (2023年最新版)醫(yī)師執(zhí)業(yè)、變更執(zhí)業(yè)、多機(jī)構(gòu)備案申請(qǐng)審核表
- 醫(yī)療器械臨床試驗(yàn)質(zhì)量管理規(guī)范培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論