汇编语言的结构形式
- 顺序
- 分支
- 循环
- 子程序
- 补充:汇编语言程序必须由伪指令和汇编指令组成
从源程序到可执行程序
伪指令
- 伪指令作用:在汇编程序对源程序进行编译的时候起到说明作用
- 段定义伪指令
- SEGMENT.......ENDS:表示段的开始和结束
- 类型参数
-
- ASSUME:表明段寄存器和段的关系
- 数据定义伪指令
- DB:定义字节单元
- DW:定义字单元
- DD:定义双字单元
- DQ:定义四字单元
- DT:定义十字节单元
- 操作数是常数或者表达式
- DUP():重复定义相同的操作数,3DUP(2)表示三个2
- 定义字母打头的十六进制数要在前面加0
- ?表示空单元
- 操作数是字符串
- 定义字符及字符串,字符串要用引号括起来
- 其他伪指令
- 赋值伪指令EQU可以给表达式赋值,=允许对一个符号多次重复定义
- 模块定义伪指令
- 地址计数器$:表示当前偏移地址的值,定义的时候必须为DW
- 操作符
- 补充
- 当操作数属性未知的时候,就用PTR来定义一下
- 段寄存器CS不能用MOV指令赋值
- 段地址(段名)不能直接传送给段寄存器,要用另外的寄存器作为中介转存
基本的汇编指令
- 一些注意事项:
- 数据交换指令XCHG要求两个操作数至少有一个是寄存器,操作数不能为立即数
- 两个操作数的属性必须一致
- PUSH进栈指令要求操作数必须为字
- 立即数只能作为源操作数
- 两个操作数不能同时为内存单元