汇编指令实例资料
时间:2025-05-13
时间:2025-05-13
汇编指令实例资料
汇编指令大全
零、状态寄存器
1 MOVE 数据传送指令 MOV
格式: MOV OPRD1,OPRD2
功能: 本指令将一个源操作数送到目的操作数
中,即OPRD1<--OPRD2.
说明:
1. OPRD1 为目的操作数,可以是
寄存器、存储器、累加器.
OPRD2 为源操作数,可以是寄存
器、存储器、累加器和立即数.
2. MOV 指令以分为以下四种情
况:
<1> 寄存器与寄存器之间的数据
传送指令
<2> 立即数到通用寄存器数据传
送指令
<3> 寄存器与存储器之间的数据
传送指令
<4> 立即数到存储器的数据传送
3. 本指令不影响状态标志位
2 PUSH 堆栈操作指令 PUSH和POP
格式: PUSH OPRD
汇编指令实例资料
功能: 实现压入操作的指令是PUSH指令;实现弹出
操作的指令是POP指令.
说明:
1. OPRD为16位(字)操作数,可以
是寄存器或存储器操作数.
2. PUSH的操作过程是: (SP)<--
(SP)-2,((sp))<--OPRD 即先修
改堆栈指针SP(压入时为自动减
2),然后,将指定的操作数送入新
的栈顶位置.
此处的((SP))<--OPRD,也可以理
解为: [(SS)*16+(SP)]<--OPRD
或 [SS:SP]<--OPRD
3 POP 堆栈操作指令 PUSH和POP
格式: PUSH OPRD
POP OPRD
功能: 实现压入操作的指令是PUSH指令;实现弹出
操作的指令是POP指令.
说明:
1. OPRD为16位(字)操作数,可以
是寄存器或存储器操作数.
2. POP指令的操作过程是: POP
OPRD:OPRD<--((SP)),(SP)<--
汇编指令实例资料
它与压入操作相反,是先弹出栈
顶的数顶,然后再修改指针SP的
内容.
3. 示例: POP AX
POP DS
POP DATA1 POP ALFA[BX][DI]
4. PUSH和POP指令对状态标志位
没有影响.
4 XCHG 数据交换指令 XCHG
格式: XCHG OPRD1,OPRD2 其中的OPRD1为目的操作
数,OPRD2为源操作数
功能: 将两个操作数相互交换位置,该指令把源操
作数OPRD2与目的操数OPRD1交换.
说明:
1. OPRD1及OPRD2可为通用寄存
器或存储器,但是两个存储器之
间是不能用XCHG指令实现的.
2. 段寄存器内容不能用XCHG指
令来交换.
3. 若要实现两个存储器操作数
DATA1及DATA2的交换,可用以下
指令实现:
示例: PUSH DATA1
星尘-易尘
汇编指令实例资料
PUSH DATA2
POP DATA1
POP DATA2
4. 本指令不影响状态标志位.
5 XLAT 查表指令 XLAT
格式: XLAT TABLE其中TABLE为一待查表格的首地
址.
功能: 把待查表格的一个字节内容送到AL累加器
中.
说明:
1. 在执行该指令前,应将TABLE
先送至BX寄存器中,然后将待查
字节与在表格中距表首地址位移
量送AL,即 (AL)<--((BX)+
(AL)).
2. 本指令不影响状态标位,表格
长度不超过256字节.
6 LAHF 标志传送指令 LAHF
格式: LAHF
功能: 取FLAG标志寄存器低8位至AH寄存器.(AH)<-
-(FLAG)7~0
说明: 该指令不影响FLAG的原来
内容,AH只是复制了原FLAG的低8
汇编指令实例资料
7 SAHF 标志传送指令 SAHF
格式: SAHF
功能: 将AH存至FLAG低8位
说明: 本指令将用AH的内容改写
FLAG标志寄存器中的SF、ZF、
AF、PF、和CF标志,从而改变原
来的标志位.
8 PUSHF 标志传送指令 PUSHF
格式: PUSHF
功能: 本指令可以把标志寄存器的内容保存到堆栈
中去
9 POPF 标志传送指令 POPF
格式: POPF
功能: 本指令的功能与PUSHF相反,在子程序调用和
中断服务程序中,往往用PUSHF指令保护FLAG的内
容,用POPF指令将保护的FLAG内容恢复.
说明: 如果对堆栈中的原FLAG内
容进行修改,如对TF等标志位进
行修改,然后再弹回标志位寄存
器FLAG.这是通过指令修改TF标
志的唯一方法.
10 LEA 有效地址传送指令 LEA
格式: LEA OPRD1,OPRD2
汇编指令实例资料
寄存器中.
说明:
1. OPRD1 为目的操作数,可为任
意一个16位的通用寄存器.
OPRD2 为源操作数,可为变量
名、标号或地址表达式.
示例: LEA BX,DATA1
LEA DX,BETA[BX+SI]
LEA BX BX,[BP],[DI]
2. 本指令对标志位无影响。
11 LDS 从存储器取出32位地址的指令 LDS
格式: LDS OPRD1,OPRD2
功能: 从存储器取出32位地址的指令.
说明:
OPRD1 为任意一个16位的寄存
器.
OPRD2 为32位的存储器地址.
示例: LDS SI,ABCD
LDS BX,FAST[SI]
LDS DI,[BX]
注意: 上面LDS DI,[BX]指令的
功能是把BX所指的32位地址指针
的段地址送入DS,偏移地址送入
星尘-易尘
汇编指令实例资料
DI.
12 LES 从存储器取出32位地址的指令 LES
格式: LES OPRD1,OPRD2
功能: 从存储器取出32位地址的指令.
说明:
OPRD1 为任意一个16位的寄存
器.
OPRD2 为32位的存储器地址.
示例: LES SI,ABCD
LES BX,FAST[SI]
LES DI,[BX]
注意: 上面LES DI,[BX]指令的
功能是把BX所指的32位地址指针
的段地址送入ES,偏移地址送入
DI.
13 ADD 加法指令 ADD(Addition)
格式: ADD OPRD1,OPRD2
功能: 两数相加
说明:
1. OPRD1为任一通用寄存器或存
储器操作数,可以是任意一个通
上一篇:(机械制图)补画第三视图试题76
下一篇:赶集网产品方案(招聘)