1.变量和标号
1.1标识符
以字母和特殊字符(_, $, ?, @)开头的字母数字和特殊符号串
1.2保留字
具有特定用途的标识符,用户不能改变其含义
1.3变量
1.3.1四种属性
- 偏移量 是相对于段起始地址(0)的字节距离
- 类型 有字节(BYTE)、字(WORD)和双字(DWORD)等基本类型,还有结构(struct)等复合类型
- 段地址 是在程序装入给定的基址
- 值 为实际表示的
内容,可以改变
1.3.2定义
-
[变量名] DB/DW/DD 表达式
例: msg DB "How are you?",0 ;//共13个字节,DB表示以byte类型(1个字节)定义变量 magic DB 50 dup('1','2','3') DB '1','2','3'; 共占53字节,并初始化为字符串"123123…";50表示容量;dup重复数据 DATA7 DB ? ; 占1字节;‘?’,表示该变量的值不确定,即:该变量所表示的内存单元中的内容是不确定的,或者说是,当表达式为问号时,变量所对应的内存区中并没有存入新的值,而只是预留出了相应的存储空间; num dw 1,2,3,4,5,6,7,8,9,10 ;共20字节 ;相当于C风格的 WORD num[10]={1,2,3,4,5,6,7,8,9,10};
1.4标号
1.4.1属性
- 段地址 是指该标号所对应的指令所在段的段地址
- 偏移地址 段内偏移地址
- 类型有两种:NEAR和FAR
- NEAR 类型,表示该标号在段内使用
- FAR 类型则表示该标号可以在段间使用
1.4.2定义:在指令码前面加上标识符和冒号":";
例如 :START: PUSH DS
2.常量
2.1伪指令EQU
PI EQU 31415926 ; 类似C语言#define PI 31415926
2.2伪指令 name = expression
PIX = PI+2 //编译器在预处理阶段将出现name换成expression
2.3伪指令ORG
规定程序的起始地址
默认从0000H开始
ORG 2000H;规定程序指令从地址2000H开始存放
2.4数制
二进制: 11101011B
八进制: 345Q
十进制: 8097D, 8097
十六进制: 1234H, 0EFDAH