类型 | 占用空间大小 |
---|---|
DB | 1 字节 |
DW | 2 字节,字 |
DD | 4 字节,双字 |
DQ | 8 字节,四字 |
DT | 10 字节 |
例:
DATA_TYTE DB 10, 4, 10H
DATA_WORD DW 100, 100H, -5 DATA_DW DD 3*20, 0FFFDH MESSAGE DB 'HELLO' ABC DB 0, ?, ?, ?, 0 ; 问号为保留空间,不定义初值 ARRAY1 DB 2 DUP(0, 1, 2, ?) ; DUP 为重复产生括号内的数 N 次,可以嵌套使用 PARA_TAB1 DW PAR1 + 100H ; 此处存入 PAR1 的偏移地址,可以使用表达式 PARA_TAB2 DD PAR2 ; 此处存入 PAR2 的偏移地址及段地址 ARRAY DW $+4, $+4 ; 若此处首地址为 1000H, 则数据为 1004H、1006H |
CONSTANT EQU 256
DATA EQU HEIGHT + 12 ALPHA EQU 7 BETA EQU ALPHA - 2 ADDR EQU VAR + BETA B EQU [BP +8] P8 EQU DS:[BP + 8] ALPHA1 = 7 ALPHA1 = 8 ; 等于操作可重复使用 |
段名 SEGEMENT [定位类型] [组合类型]
['类']
ASSUME CS:段名1, DS: 段名2, ES:段名3, SS:段名4 ASSUME NOTHING ... 段名 ENDS |
定位类型 | PARA | 段的起始地址必须从小边界开始, |
BYTE | 段的起始地址任意 | |
WORD | 段的起始地址为偶数 | |
PAGE | 段的起始地址为 256 的倍数 | |
组合类型 | PUBLIC | 段连接时与有相同名字的分段连接在一起 |
COMMON | 段在连接时与其他同名分段地址相同,产生覆盖 | |
AT expression | 段地址是表达式计算结果,代码段除外 | |
STACK | 段连接时为堆栈段的一部分 | |
MEMORY | 段连接时该段地址值最大,仅第一个有效,其他成为 COMMON | |
类 | '名称' | 连接时用于组成段组的名称 |
NAME 模块名
TITLE 模块名 ; 功能同上,如果都不用,默认为文件名 ... title: ... END title ; title 一般为开始运行处标号 |
EVEN | 使下一地址为 2 的倍数 |
ORG expression | 使下一地址为表达式值 |
ORG $ + 8 | 使下一地址跳过 8 字节,$ 为当前地址 |
1000 | 使用默认进制,一般为 10 进制 |
00101100B | 二进制 |
178D | 十进制 |
0FFFFH | 十六进制 |
1777O | 八进制 |
RADIX expression | 更改默认基数 |