80X86学习笔记--数据传送指令
来源:互联网 发布:淘宝秋季外套女装新款 编辑:程序博客网 时间:2024/05/22 13:30
一.传送指令
格式:mov dst, src
源操作数可以使累加器,寄存器,存储单元,立即数。
目的操作数不能为立即数。
注意问题:
源和目的操作数不能同时是段寄存器;代码段寄存器cs不能作为目的寄存器;ip既不能作为源,也不能作为目的。
源操作数与目的操作数类型要一致16对16位, 8位对8位。
两个操作数不能都为存储器,必须有一寄存器。
数据传送指令能实现下列传输功能:
1.cpu内部寄存器间数据传送
mov ah, al
mov dl, dh
mov bp, sp
mov as, cs
2.立即数送通用寄存器或存储单元(立即数不能直接送到段寄存器)
mov al, 2
mov si, –5
mov varb, –1
mov varw, 1234h
mov [si], 1234h
mov al, ‘D’
3.寄存器与存储器间数据传送
mov a, varw
mov bh, [di]
mov dl, es:[si+3]
mov varb, dl
mov ds:[bp], dl
mov varw, ds
mov es, varw
--------------------------------
mov ax, offset table
offset为属性操作符,把table偏移地址送至ax。
二.交换指令
通用寄存器与通用寄存器或存储单元数据的交换,但不包括段寄存器,也不能同时是存储单元,还不能有立即数。
格式:
xchg oprd1, oprd2
三.地址传送指令
(1)lea
传送有效地址指令
格式:
lea reg, oprd
oprd必须是一个存储器操作数
reg必须是一个16位通用寄存器
lea ax, buffer
lea ds, [bs+s]
lea sl, [bx+si+2]
(2)lds
段值和段内偏移构成一个32位地址指针,该指令传送这个32位指针
格式:
lds reg, oprd
reg<-[src]
ds<-[src+2]
段值送到ds
偏移送到reg
(3)指令les(load point into es)
les也是传送32位地址指针
les reg, oprd
reg<-[src]
es<-[src+2]
四.堆栈操作指令
堆栈操作以字为单位。
(1)进栈push
格式:
push src
执行操作:sp<-sp – 2
先把堆栈指针寄存器sp的值减2,然后把源操作数src送入由sp所指的栈顶,源操作数src可以是通用寄存器喝段寄存器,也可是字存储单元。
(2)出栈pop
格式:
pop dst
dst可以是通用寄存器喝段寄存器(cs例外),也可是字存储单元。
例子1:
临时保存寄存器内容
push ax
push bx
pop bx
pop ax
例子2:
push si pop si
push ds pop ds
push varw pop varw
push[si] pop [si]
数据交换的三种方式:
用mov,利用寄存器过度方法
mov bx, ax
mov ax, si
mov si, bx
用交换指令xchg
xchg ax, si
用堆栈指令
push si
push ax
pop ax
pop si
五.标志操作指令
(1)标志传送指令
LAHF(load ah with flags)
该指令把标志寄存器的低8位(包括sf,zf,af,pf,cf)传送到寄存器ah的指定位。
SAHF
与LAHF相反
PUSHF
该指令把标志寄存器内容压入堆栈
POPF
(2) 标志位操作指令
CLC清进位标志
STC置进位标志,进位标志位1.
CMC进位标志取反指令
CLD清方向标志指令,使方向标志DF为0.
STD置方向标志
CLI清中断允许标志指令,该指令使中断允许标志IF为0,cpu不再响应来自外部装置的可屏蔽中断,但对不可屏蔽中断和内部中断都没有影响。
STI置中断允许标志允许指令,该指令使IF为1,cpu可以响应可屏蔽中断。
- 80X86学习笔记--数据传送指令
- 32位汇编语言学习笔记(2)--数据传送指令
- 汇编语言学习笔记 第二节:数据传送指令
- 汇编--学习笔记(七)-数据传送指令
- 80X86学习笔记--算术运算指令
- X86汇编指令学习笔记
- 80X86学习笔记--逻辑运算与移位指令
- 80X86学习笔记--常用伪指令语句
- 数据传送指令
- 数据传送指令
- 3.数据传送指令
- 数据传送指令MOV
- 数据传送指令
- 数据传送指令详解
- NASM 数据传送指令
- 32位汇编语言学习笔记(11)--条件传送指令
- 西门子PLC学习笔记十一-(装入与传送指令)
- 8086汇编 数据传送指令
- [排序]SORT QSORT
- spring bean标签,及其子标签使用
- 初中英语基本句型45例 !你忘木忘!小试牛刀,一起翻译!! TBD
- log4j配置
- Type-safe comparision between "operator new/delete" and "allocator"
- 80X86学习笔记--数据传送指令
- C#下ref和out关键字使用
- Unity3D 判断鼠标向左还是向右滑动
- 指向常量的指针和指针常量
- error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)...
- 80X86学习笔记--算术运算指令
- java中Statement对象和PreparedStatement对象
- 拾人牙慧 StringBuilder.toString()的问题
- Ajax弹出层操作代码