| 类型 | 占用空间大小 |
|---|---|
| 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 | 更改默认基数 |