ASM16-13 --数据传送类指令
ASM16
数据传送类指令
- 数据传送是计算机中最基本、最重要的一种操作
- 传送指令也是最常使用的一类指令
- 传送指令把数据从一个位置传送到另一个位置
- 除标志寄存器传送指令外,均不影响标志位
- 重点掌握 MOV XCHG XLAT PUSH POP LEA
通用数据传送指令
- 提供方便灵活的通用传送操作
- 有3条指令 MOV XCHG XLAT
传送指令MOV
- 把一个字节或字的操作数从源地址传送至目的地址
1 | MOV reg/mem,imm ;立即数送寄存器或主存 |
非法传送
- 两个操作数的类型不一致
- 例如源操作数是字节,而目的操作数是字;或相反
- 两个操作数不能都是存储器
- 传送指令很灵活,但主存之间的直接传送却不允许
- 段寄存器的操作有一些限制
- 段寄存器属专用寄存器,对他们的操作能力有限
两个操作数的类型要一致
绝大多数双操作数指令,除非特别说明,目的操作数与源操作数必须一致,否则为非法指令
1
MOV AL,050AH ;非法指令:050Ah为字,而AL为字节
寄存器有明确的字节或字节或字类型,有寄存器参与的指令其操作数类型就是寄存器的类型
对于存储器单元与立即数同时作为操作数的情况,必须显式指明;byte ptr指示字节类型,word ptr指示字类型
两个操作数不能都是存储器
- 8086指令系统不允许两个操作数都是存储单元(除串操作指令),要实现这种操作,可通过寄存器间接实现
要小心段寄存器的操作
不允许立即数传送给段寄存器
1
MOV DS,100H ;非法指令:立即数不能传送段寄存器
不允许直接改变CS值
1
MOV CS,[SI] ;不允许使用的指令
不允许段寄存器之间的直接数据传送
1
MOV DS,ES ;非法指令:不允许段寄存器间传送
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 翻斗花园!