1. 什么是常量(Constant)?
常量是程序中使用的一个确定数值,在汇编阶段就可以确定,直接编码于指令代码中,不是保存在存储器中可变的变量
,因为是编码在指令中的量,和指令一起存储了,所以不用单独开辟主存空间,所以也就没法动态改变它了,这也正是高级语言常量无法修改的原因。
2. 汇编语言支持的常量表达形式
- 常数,直接给出数值本身
- 字符和字符串,使用ASCII码的值
- 符号常量,用标识符替代数值
- 数值表达式,经过运算得到的数值
3. MASM常量表达
3.1 常数
可以以10、16、2进制来表达数值,分别以后缀字母D、H、B区分,十进制可以不加D,以字母A-F开头的16进制数,要加前导0,以便和字母开头的标识符区别,例如AH是寄存器,0AH表示16进制常数。
const1 byte 100,100d,01100100b,64h,0ah
3.2 字符和字符串
单引号或双引号括起来的单个或多个字符,每个字符的数值是对应的ASCII码值,例如:`x`,“hello”。
const2 byte 'd','hello','word'
3.3 符号常量
使用一个标识符来表达一个数值
- 符号名 = 数值表达式
- 符号名 equ 数值表达式
- 符号名 equ <字符串>
例如:P = 3,N equ 0,info euq <hello>
m = 10
n equ 20
const3 byte m,n
3.4 数值表达式
用运算符连接各种常量构成的算式,常用的算术符号+,-,*,/,用作地址表达式的时候,只能使用加减
const4 byte 4*4,2+3