汇编语言程序指令知多少
发布网友
发布时间:2022-04-23 02:33
我来回答
共1个回答
热心网友
时间:2023-06-22 23:47
附表5.2
指令汇编格式
指令类型
指令汇编格式
指令功能简介
传送指令
MOV
reg/mem,imm
;dest←src
MOV
reg/mem/seg,reg
MOV
reg/seg,mem
MOV
reg/mem,seg
交换指令
XCHG
reg,
reg←→reg/mem
XCHG
reg/mem,reg
转换指令
XLAT
label
;AL←[BX+AL]
XLAT
堆栈指令
PUSH
r16/m16/seg
;入栈
POP
r16/m16/seg
;出栈
CS除外
标志传送
CLC
;CF←0
STC
;CF←1
CMC
;CF←
CLD
;DF←0
STD
;DF←1
CLI
;IF←0
STI
;IF←1
LAHF
;AH←标志寄存器低字节
SAHF
;标志寄存器低字节←AH
PUSHF
;标志寄存器入栈
POPF
;出栈到标志寄存器
地址传送
LEA
r16,mem
;r16←16位有效地址
LDS
r16,mem
;DS:r16←32位远指针
LES
r16,mem
;ES:r16←32位远指针
输入
IN
AL/AX,i8/DX
;AL/AX←I/O端口i8/DX
输出
OUT
i8/DX
,AL/AX
;I/O端口i8/DX←AL/AX
加法运算
ADD
reg,imm/reg/mem
;dest←dest+src
ADD
mem,imm/reg
ADC
reg,imm/reg/mem
;dest←dest+src+CF
ADC
mem,imm/reg
INC
reg/mem
;reg/mem←reg/mem+1
减法运算
SUB
reg,imm/reg/mem
;dest←dest-src
SUB
mem,imm/reg
SBB
reg,imm/reg/mem
;dest←dest-src-CF
SBB
mem,imm/reg
DEC
reg/mem
;reg/mem←reg/mem-1
NEG
reg/mem
;reg/mem←
+1
CMP
reg,imm/reg/mem
;dest-src
CMP
mem,imm/reg
;
乘法运算
MUL
reg/mem
;无符号数乘法
IMUL
reg/mem
;有符号数乘法
除法运算
DIV
reg/mem
;无符号数除法
IDIV
reg/mem
;有符号数除法
符号扩展
CBW
;将AL符号扩展为AX
CWD
;将AX符号扩展为DX.AX
十进制调整
DAA
;将AL中的加和调整为压缩BCD码
DAS
;将AL中的减差调整为压缩BCD码
AAA
;将AL中的加和调整为非压缩BCD码
AAS
;将AL中的减差调整为非压缩BCD码
AAM
;将AX中的乘积调整为非压缩BCD码
AAD
;将AX中的非压缩BCD码转成二进制
逻辑运算
AND
reg,imm/reg/mem
;dest←dest
AND
src
AND
mem,imm/reg
OR
reg,imm/reg/mem
;dest←dest
OR
src
OR
mem,imm/reg
XOR
reg,imm/reg/mem
;dest←dest
XOR
src
XOR
mem,imm/reg
TEST
reg,imm/reg/mem
;dest
AND
src
TEST
mem,imm/reg
NOT
reg/mem
;reg/mem←
移位
SAL
reg/mem,1/CL
;算术左移1位/CL指定的位数
SAR
reg/mem,1/CL
;算术右移1位/CL指定的位数
SHL
reg/mem,1/CL
;逻辑左移1位/CL指定的位数
SHR
reg/mem,1/CL
;逻辑右移1位/CL指定的位数
ROL
reg/mem,1/CL
;循环左移1位/CL指定的位数
ROR
reg/mem,1/CL
;循环右移1位/CL指定的位数
RCL
reg/mem,1/CL
;带进位循环左移1位/CL指定的位数
RCR
reg/mem,1/CL
;带进位循环右移1位/CL指定的位数
串操作
MOVS[B/W]
;串传送
LODS[B/W];
串读取
STOS[B/W];
串存储
CMPS[B/W]
;串比较
SCAS[B/W]
;串扫描
REP
;重复前缀
REPZ/REPE
相等重复前缀
REPNZ/REPNE
不等重复前缀
控制转移
JMP
label
无条件直接转移
JMP
r16/m16
无条件间接转移
Jcc
label
条件转移
cc可为C/NC/Z/NZ/S/NS/O/NO/B/NB/BE/NBE/L/NL/LE/NLE
循环
LOOP
label
CX←CX-1;若CX≠0,则循环
LOOPZ/LOOPE
label
CX←CX-1;若CX≠0且ZF=1,则循环
LOOPNZ/LOOPNE
label
CX←CX-1;若CX≠0且ZF=0,则循环
JCXZ
label
若CX=0,则循环
子程序
CALL
label
直接调用
CALL
r16/m16
间接调用
RET
无参数返回
RET
i16
有参数返回
指令类型
指令汇编格式
指令功能简介
备
注
中断
INT
i8
中断调用
INTO
溢出中断调用
IRET
中断返回
处理器控制
NOP
空操作指令
seg:
段跨越前缀
除CS
HLT
停机指令
LOCK
封锁前缀
WAIT
等待指令
ESC
mem
换码指令