第二十八節(jié):偽指令分析
偽指令是告訴匯編程序,如何匯編源程序的指令。
偽指令既不控制機器的操作,也不能被匯編成機器代碼,故稱為偽指令。
1、 設置起始地址ORG( 用于規(guī)定目標程序段或數(shù)據(jù)塊的起始地址,設置在程序開始處。)
格式: ORG nn ;nn是16位二進制數(shù)
;nn給出了存放的超始地址值
給程序起始地直或數(shù)據(jù)塊的起始地址賦值。它總是出現(xiàn)在每段源程序或數(shù)據(jù)塊的開始。在一個源程序中可以多次使用ORG命令,以規(guī)定不同程序段或數(shù)據(jù)塊的起始位置,所規(guī)定的地址從小到大,不允許重疊。
例如: ORG 0000H
MAIN:NOV SP,#6FH
。。。。。。。。。。。。
ORG 1000H
SUB1:MOV A,#74H
2、定義字節(jié)命令 DB
告訴匯編程序從指定的地址單元開始,定義若干字節(jié)存儲單元并賦初值。
格式: 標號:DB <字節(jié)常數(shù)或字符>
例: ORG 1000H
TABLE1:DB 00,01,04,09,10H,19H
匯編后則(1000H)=00H
(1001H)=01H
(1002H)=04H
(1003)=09H
(1004)=10H
(1005)=19H
3、定義字命令 DW
從指定地址開始,定義若干個16個位數(shù)據(jù),高八位存入低地址;低八位存入高地址。
例、 ORG 1000H
PIOI: DW 7654H,40H、12、‘AB’
例: ORG 2000H
ABC: DB 1234H,2468H,1357H,。。。。。。。
匯編后則(2000H)=12H
(2001H)=34H
(2002H)=24H
(2003H)=68H
(2004H)=13H
(2005H)=57H
4、賦值命令 EQU
告訴匯編程序,將匯編語句操作數(shù)的值賦予本語句的標號。
格式: 標號名稱 EQU 數(shù)值或匯編符號
“標號名稱”在源程序中可以作數(shù)值使用,也可以作數(shù)據(jù)地址、位地址使用。
先定義后使用,放在程序開頭。
格式: 標號: EQU nn或匯編符號
例: BLCK EQU #1000H
TEST EQU 28H(直接地址單元)
TEST1 EQU #28H(立即數(shù))
NMB EQU #10
MOV A,TEST(=direct) 執(zhí)行后,A=(28H)
若28H中存放著56H,則A=56H
MOV A,TEST1(=#data) A=28H
MOV R2,NMB (R2)=10
MOV DPTR,BLOCK
5、源程序結束 END (告訴匯編程序,對源程序的匯編到此結束。一個程序中只出現(xiàn)一次,在末尾。)
格式: 標號: END
6、數(shù)據(jù)地址賦值偽指令 DATA
將表達式指定的數(shù)據(jù)地址賦予規(guī)定的字符名稱
格式: 字符名稱 DATA 表達式
注:該指令與EQU 指令相似,只是,可先使用后定義,放于程序開頭、結尾均可。
7、定義空間偽指令 DS
從指定地址開始,保留由表達式指定的若干字節(jié)空間作為備用空間。
格式: [標號:] DS 表達式
例2、 ORG 1000H
DS 0AH
DB 71H,11H,11H ;從100BH開始存放71H、11H、11H。
注:DB、DW、DS 只能用于程序存儲器;而不能用于數(shù)據(jù)存儲器。
8、位地址賦值偽指令 BIT
將位地址賦予規(guī)定的字符名稱。
格式: 字符名稱 BIT 位地址
例3、 X1 BIT P12
相當于 X1 EQU 92H
偽指令是告訴匯編程序,如何匯編源程序的指令。
偽指令既不控制機器的操作,也不能被匯編成機器代碼,故稱為偽指令。
1、 設置起始地址ORG( 用于規(guī)定目標程序段或數(shù)據(jù)塊的起始地址,設置在程序開始處。)
格式: ORG nn ;nn是16位二進制數(shù)
;nn給出了存放的超始地址值
給程序起始地直或數(shù)據(jù)塊的起始地址賦值。它總是出現(xiàn)在每段源程序或數(shù)據(jù)塊的開始。在一個源程序中可以多次使用ORG命令,以規(guī)定不同程序段或數(shù)據(jù)塊的起始位置,所規(guī)定的地址從小到大,不允許重疊。
例如: ORG 0000H
MAIN:NOV SP,#6FH
。。。。。。。。。。。。
ORG 1000H
SUB1:MOV A,#74H
2、定義字節(jié)命令 DB
告訴匯編程序從指定的地址單元開始,定義若干字節(jié)存儲單元并賦初值。
格式: 標號:DB <字節(jié)常數(shù)或字符>
例: ORG 1000H
TABLE1:DB 00,01,04,09,10H,19H
匯編后則(1000H)=00H
(1001H)=01H
(1002H)=04H
(1003)=09H
(1004)=10H
(1005)=19H
3、定義字命令 DW
從指定地址開始,定義若干個16個位數(shù)據(jù),高八位存入低地址;低八位存入高地址。
例、 ORG 1000H
PIOI: DW 7654H,40H、12、‘AB’
例: ORG 2000H
ABC: DB 1234H,2468H,1357H,。。。。。。。
匯編后則(2000H)=12H
(2001H)=34H
(2002H)=24H
(2003H)=68H
(2004H)=13H
(2005H)=57H
4、賦值命令 EQU
告訴匯編程序,將匯編語句操作數(shù)的值賦予本語句的標號。
格式: 標號名稱 EQU 數(shù)值或匯編符號
“標號名稱”在源程序中可以作數(shù)值使用,也可以作數(shù)據(jù)地址、位地址使用。
先定義后使用,放在程序開頭。
格式: 標號: EQU nn或匯編符號
例: BLCK EQU #1000H
TEST EQU 28H(直接地址單元)
TEST1 EQU #28H(立即數(shù))
NMB EQU #10
MOV A,TEST(=direct) 執(zhí)行后,A=(28H)
若28H中存放著56H,則A=56H
MOV A,TEST1(=#data) A=28H
MOV R2,NMB (R2)=10
MOV DPTR,BLOCK
5、源程序結束 END (告訴匯編程序,對源程序的匯編到此結束。一個程序中只出現(xiàn)一次,在末尾。)
格式: 標號: END
6、數(shù)據(jù)地址賦值偽指令 DATA
將表達式指定的數(shù)據(jù)地址賦予規(guī)定的字符名稱
格式: 字符名稱 DATA 表達式
注:該指令與EQU 指令相似,只是,可先使用后定義,放于程序開頭、結尾均可。
7、定義空間偽指令 DS
從指定地址開始,保留由表達式指定的若干字節(jié)空間作為備用空間。
格式: [標號:] DS 表達式
例2、 ORG 1000H
DS 0AH
DB 71H,11H,11H ;從100BH開始存放71H、11H、11H。
注:DB、DW、DS 只能用于程序存儲器;而不能用于數(shù)據(jù)存儲器。
8、位地址賦值偽指令 BIT
將位地址賦予規(guī)定的字符名稱。
格式: 字符名稱 BIT 位地址
例3、 X1 BIT P12
相當于 X1 EQU 92H