4.1 数据
- 常量
通过EQU伪指令定义的符号名一般称为符号常量 标识符(变量名)
- 要求
- 不能以数字开头
- 不能仅使用特殊字符
- 不能是保留字
- 要求
操作符和表达式
- $
- ?
- DUP
注:一定要注意$和EQU一起出现的情况
4.3 运算符和表达式
算术运算符
- 注意点
- 参加运算的数和结果都是整数
- 除法只保留商
- 注意点
逻辑运算符
- 注意点
- 按位操作
- 与逻辑运算指令不同,在编译时进行计算
- 注意点
数值回送操作符
- SEG:段基址
- OFFSET:偏移地址
- TYPE:类型值
- LENGTH:取长度(不用DUP定义的变量,值为1)
- SIZE:LENGTH * TYPE
属性操作符
- PTR:改变类型
- HIGH/LOW:取高位/低位字节
移位运算符
- SHL/SHR:左移右移运算符
- ROL/ROR:循环左移右移运算符,第二个操作数为计数器
4.4 伪指令
SEGMENT/ENDS:表示某个逻辑段的开始与结束
- 对齐类型(对段的起始地址做要求)
- PAGE
- PARA
- WORD
- BYTE
- DWORD
- 组合类型
- 缺省
- PUBLIC
- COMMMON
- STACK
- MEMORY
- AT表达式
- 对齐类型(对段的起始地址做要求)
ASSUME
用来指明通过哪一个段寄存器可以找到对应段段寄存器的装入
- DS/ES:通常方法
- SS:通常对其类型为PARA
- CS
- 装入方式:利用END后的标号(解释了为什么END START在 CODE ENDS之后)
- 注意点:不能用数据传送指令修改,但运行中有多种修改方式
注:对齐类型和组合类型的确常用,不过应该不考吧。
处理器选择伪指令和简化段定义伪指令
定位伪指令
注:上述两个倒是应该不考
赋值伪指令:= 可以重复定义,但EQU不行
LABLE伪指令
- 若声明类型为DW,则声明字变量顺序不变。例如:X DW ‘AB’,则结果为4142H
- 若声明类型为DB,则声明两个字节变量后访问一个子单元,顺序改变。例如:X DB ‘AB’,结果为4241H