MCS-51匯編語(yǔ)言程序的一般格式
與8086不同,沒(méi)有代碼段、數(shù)據(jù)段等區(qū)分,統(tǒng)一編址。
程序由指令行或注釋行組成,指令行每行只能寫(xiě)一條指令。
指令前可用“標(biāo)號(hào):”表示指令地址,以便在指令中引用;標(biāo)號(hào)是符號(hào)名,以字母開(kāi)頭。
注釋行應(yīng)以“;”號(hào)開(kāi)頭;指令后也可用“;”號(hào)分隔,附加注釋。
程序由偽指令ORG XXXXH定位,ORG中的16位地址就是將來(lái)寫(xiě)入程序存儲(chǔ)器的絕對(duì)地址。程序中的ORG應(yīng)按地址從小到大排列。由ORG定位的程序段可以不連續(xù),匯編程序?qū)?huì)在段間的空地址上填00H,即NOP。因此,每個(gè)ORG段的最后一條指令一般應(yīng)是轉(zhuǎn)移指令。
數(shù)據(jù)由偽指令DB(字節(jié))或DW(雙字節(jié))說(shuō)明。數(shù)值應(yīng)以數(shù)碼0-9開(kāi)頭;尾綴說(shuō)明:B-二進(jìn)制,D-十進(jìn)制,H-十六進(jìn)制。十進(jìn)制D可缺省。
偽指令EQU可定義等價(jià)字段,以便用符號(hào)名代表某個(gè)操作數(shù),例如:
aa EQU 30H
bb EQU #30H
MOV A,aa; aa等價(jià)于“30H”,該指令即MOV A, 30H
MOV R0,bb ; bb等價(jià)于“#30H”,該指令即MOV R0,#30H