匯編語(yǔ)言對(duì)源程序有嚴(yán)格的格式要求,格式正確,匯編程序才能確切翻譯源程序,形成等價(jià)的機(jī)器指令.匯編語(yǔ)言程序格式就是匯編語(yǔ)言必須遵守的語(yǔ)法規(guī)則.
匯編語(yǔ)言有兩種書(shū)寫(xiě)形式:簡(jiǎn)化段定義格 式和完整段定義格式 .......
一、簡(jiǎn)化段定義格式的匯編源程序如下:
;filename.asm
.model small ;定義程序的存儲(chǔ)模式(一般采用small)
.stack ;定義堆棧段
.data ;定義數(shù)據(jù)段
....... ;定義數(shù)據(jù)
.code ;定義代碼段
.startup ;程序起始點(diǎn),并建立DS,SS內(nèi)容
........... ;程序代碼
.exit 0 ;程序結(jié)束點(diǎn),返回DOS
........... ;子程序代碼
end ;匯編結(jié)束
因?yàn)镸ASM5.0/5.1不支持.startup和.exit 0,需要將.startup和.exit 0修改為以下形式,同時(shí)要修改end
.startup————〉 start: mov ax,@data
mov ds,ax
.exit 0————〉 mov ax,4c00h ;返回DOS
int 21h
end ————〉 end start ;匯編結(jié)束,程序起始點(diǎn)為標(biāo)號(hào)start處
二、完整段定義格式的匯編源程序如下:
;filename.asm
stack segment ;定義堆棧段stack
............ ;分配堆棧段的大小
stack ends ;堆棧段結(jié)束
data segment ;定義數(shù)據(jù)段data
............ ;定義數(shù)據(jù)
data ends ;數(shù)據(jù)段結(jié)束
code segment 'code' ;定義代碼段
asuume cs:code,ds:data,ss:stack ;確定CS/DS/SS指向的邏輯段
start: mov ax,data ;設(shè)置數(shù)據(jù)段的段地址DS
mov ds,ax
.............. ;程序代碼
mov ax,4c00h ;返回DOS
int 21h
code ends ;代碼段結(jié)束
............ ;子程序代碼
end start ;匯編結(jié)束,程序起始點(diǎn)為start
上海意泓電子科技有限責(zé)任公司 版權(quán)所有 未經(jīng)授權(quán)禁止復(fù)制或鏡像
CopyRight 2020-2025 www.toastedesign.com All rights reserved 滬ICP備2021005866號(hào)