汇编语句格式
- 硬指令——CPU执行,对应机器指令;构成执行性语句
- 伪指令——CPU不执行,指示汇编程序如何进行汇编;构成说明性语句
伪指令 | 功能 |
---|---|
变量名 伪指令助记符 初值表 | BUFFER DB 1,2,3,4,5,6,7,8 |
定义字节单元伪指令DB | 分配一个/多个字节单元,并将其初始化为指定值 |
定义字单元伪指令DW | 分配一个/多个字单元,并将其初始化为指定值 |
定义双字单元伪指令DD | 分配一个/多个双字单元 |
基本汇编程序设计
顺序程序设计
- 求两数之和
- 数据循环左移
- 代码转换
分支程序设计
- 二分支程序设计,条件成立则跳转
- 三分支程序设计,两个跳转分支
- 多分支程序设计,可采用跳跃表法使程序根据不同条件转移到多个分支
循环程序设计
- 单重循环
- 多重循环
//多重循环的冒泡排序
mov cx,count//元素个数
dec cx//元素个数减1为循环次数
outlp:mov dx,cx//内循环
mov bx,offset array
inlp:mov al,[bx]//前一个元素
cmp al,[bx+1]//后一个元素比较
jna next//不大于则跳转到next
xchg al,[bx+1]//大于则前后元素交换
mov [bx],al
next:inc bx//继续向后比较
dec dx
jnz inlp//内循环结束
loop outlp//外循环结束
子程序设计
子程序格式:
subname proc
…
ret
subname endp
参数传递
- 入口参数:主程序传递给子程序
- 出口参数:子程序返回给主程序
参数传递方式有以下几种
- 寄存器传递:对有出口参数的寄存器不能保护和恢复
- 变量传递:主程序与子程序公用变量
- 堆栈传递:主程序将入口参数压入堆栈,子程序从堆栈中取出参数;出口参数相反