一、汇编语言指令格式
1.组成
标号:指令助记符 目的操作数,源操作数 ; 注释
2.数据传送类指令
(1)概念:传送指令把数据从一个位置传送到另一个位置
注意:除标志寄存器传送指令外,均不影响标志位
(2)重点掌握
- MOV XHCG
- PUSH POP
- LEA
提高方便灵活的通用传送操作
- MOV
- XCHG
- XLAT
(4)传送指令MOV
- 存储器传送:不存在存储器向存储器的传送指令
- 寄存器传送:也分为字节传送和字传送
- 立即数传送:
注意立即数是字节量还是字量
明确指令是字节操作还是字操作
byte ptr说明是字节操作
word ptr说明是字操作
以下是非法传送类型:
- 两个操作数的类型不一致,例如源操作数 是字节,而目的操作数是字;绝大多数的双操作数指令,除非特殊说明,目的操作数与源操作数必须类型一致,否则为非法指令
- 两个操作数不能都是存储器
- 对于存储器单元与立即数同时作为操作数的情况,必须显式指明:byte ptr指示字节类型,word ptr指示字类型
- 8086指令系统不允许两个操作数都是存储单元(除串操作指令),要实现这种传送,可以通过寄存器间接实现
- 不允许立即数传送给段寄存器
- 不允许直接改变CS值
- 不允许段寄存器之间的直接数据传送
(5)交换指令XCHG
作用:把两个地方的数据进行互换
形式:
- 寄存器与寄存器之间对换数据
- 寄存器与存储器之间对换数据
- 不能在存储器与存储器之家对换数据
(6)换码指令XLAT
换码指令没有显式的操作数
堆栈操作指令
堆栈:位于堆栈段;SS段寄存器记录其段地址
堆栈只有一个出口,即当前栈顶用堆栈指针寄存器SP指定
PUSH :进栈指令先使堆栈指令SP减2,然后把一个字操作数存入堆栈顶部
POP: 出栈指令把栈顶的一个字传送至指定的目的操作数,然后堆栈指针SP加2
堆栈的特点:
堆栈操作的单位是字,进栈和出栈只对字量
字量数据从栈顶压入和弹出时,都是低地址字节送低字节,高地址字节送高字节
堆栈操作遵循先进后出原则,但可用存储器寻址方式随机存取堆栈中的数据
标志传送指令
标志寄存器传送指令用来传送标志寄存器FLAGS的内容
标志位操作指令直接对CF,DF,IF标志进行复位或置位
有2对4条指令
3.标志位操作
概念:标志位操作直接对CF、DF、IF标志进行复位或置位
对标志位进行设置的指令:
- CLC STC CMC
- CLD STD
- CLI STI