1.通常为整数表达式或者文本指定标识符来创建符号常量。符号不预留存储空间,只在汇编器扫描程序的时候使用,并且运行时不会被改变
2.等号伪指令
语法
name = expression
COUNT = 500
3.当前地址计数器 $
selfPtr DOWRD $
定义了一个变量,并把当前该变量的地址赋给这个变量
4.利用DUP来定义数组
MaxSize = 500
MyArr DWORD MaxSize DUP(0)
5.利用$来计算数组大小
注意 汇编和C不同 两个地址相减 他不会自动去除sizeof(元素类型)
MyArr DWORD 1,2,3,4,5,...
Size = ($ - MyArr)/4
6.EQU伪指令把一个符号名称和一个整数表达式或一个任意文本连接起来,有三种格式
name EQU expression
name EQU symbol
name EQU <text>
①第一种格式 expression必须是一个有效整数表达式
PI EQU 10*10
②第二种格式 symbol是一个已存在的符号名称,或者已经用=或者EQU定义过了
③第三种格式 任何文本都可以出现在<…>中
MyString EQU <"Hello World", 0>
PI EQU <3.14159>
一个示例
nNum1 EQU 10*10
nNum2 EQU <10*10>
.data
M1 WORD nNum1 ; 100
M2 WORD nNum2 ; 10*10 这里是直接复制文本的
7.TEXTEQU伪指令,类似于EQU,创建了文本宏。有三种格式
name TEXTEQU <text> ;文本
name TEXTEQU textmacro ;已有文本宏的内容
name TEXTEQU %constExpr ;整数常量表达式
①
MyMsg TEXTEQU <"Hello World">
文本宏的相互构建
rowSize = 5
count TEXTEQU %(rowSize * 2)
move TEXTEQU <mov>
setupAl TEXTEQU <move al, count>
会被翻译成以下语句
mov al, 10