常量(Constant)是程序中使用的一个确定数值,在汇编语言中有多种表达形式。
常数指由十、十六和二进制形式表达的数值,各种进制的数据以后缀字母区分:
在实际应用中,通常使用十进制表达数值,使用十六进制表达存储器地址、BCD码数值、数值的内部编码或者指令代码等,使用二进制表达需要进行位操作的数值(例如逻辑量)等。
字符或字符串常量是用双括号或单括号括起来的单个或多个字符。其数值是每个字符对应的ASCII码值。
如果字符串中有单引号本身,可以用双引号;反之亦然,例如:
“Let’s have a try.”
‘Say “Hello”, my baby.’
也可以直接用单引号或者双引号的ASCII值(单引号:27H,双引号:22H)。
符号常量使用一个符号表达数值。
MASM提供的符号定义伪指令有“等价EQU”和“等号=”。它们用来为常量定义符号名,格式为:
符号名 equ 数值表达式
符号名 equ<字符串>
符号名 =数值表达式
EQU伪指令定义后的符号名是不能重复再定义的:
NULL equ 0 正确 count equ count + 64H 错误
“=”伪指令中定义的符号名可重复定义:
count = 100 count = count + 64h
注意:数值表达式也是常量所构成的算式,汇编主要包含+(加)、-(减)、*(乘)、/(除)和MOD (取余数)。
.model small .stack .data ;数据段 const1 db 100,100d,01100100b,64h,'d' const2 db 1,+127,128,-128,255,-1 const3 db 105,-105,32,-32,32h,-32h const4 db '0123456789','abcxyz','ABCXYZ' crlf db 0dh,0ah,'$' minint = 10 maxint equ 0ffh const5 db minint,minint+5,maxint-5,maxint-minint const6 db 4*4,34h+34,67h-52h,52h-67h CallDOS equ<int 21h> .code ;代码段 .startup mov dx,offset const4 ;从Const4开始显示 mov ah,09h CallDOS .exit end