汇编语言程序指令知多少
附表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
换码指令
汇编语言有哪些
1,简单的汇编程序。它的特点是目标机器翻译的机器语言的地址是绝对的,可以直接在内存中执行,也称为“加载并执行”汇编程序。这种工作方式在存储空间的组织方面非常有限。
2,模块组装器。它提供了设计,编码和调试不同程序模块的能力。每个汇编程序模块都称为对象模块。他们的地址是相对的。您可以使用连接汇编程序将多个可执行模块形成一个可执行程序。
3,有条件的汇编程序。有能力选择组装某些模块。这种汇编程序通常具有伪指令,例如“条件转移”,以允许用户编写选择条件。
4,宏汇编程序。具有宏处理功能的汇编程序。您可以使用它来定义带有参数的块,并在您使用的位置调用它们。在汇编过程中执行宏(指令)扩展,并在该位置插入由宏定义预定义的指令目标代码。
5,高级汇编器。具有控制结构(例如条件语句,循环语句,甚至函数和过程)的汇编程序。它可以保持目标程序的高质量。吸收高级语言的优势并提高可读性。
扩展资料:
总体特点:
1,机器关联:
这是一种面向机器的低级语言,通常是为特定计算机或一系列计算机设计的。因为它是机器指令的符号表示,所以不同的机器具有不同的汇编语言。使用汇编语言可以针对机器,更好地利用机器的特性来获得更高质量的程序。
2,高速高效:
汇编语言保持了机器语言的优势,具有直接和简单的功能,可以有效地访问和控制计算机的各种硬件设备,例如磁盘,内存,CPU,I / O端口等,并且占用更少的内存并执行快点。是一种有效的编程语言。
3,编写和调试的复杂性:
因为它是对硬件的直接控制,并且简单的任务还需要大量的汇编语言语句,所以它在程序设计中必须是全面的,需要考虑所有可能的问题,合理分配和使用各种软硬件资源。这样,不可避免地会增加程序员的负担。同样,在调试程序时,很难确定程序的运行是否存在问题。-汇编语言指令表
参考资料:百度百科--汇编语言
参考资料:百度百科--汇编语言列表
什么是汇编程序什么是汇编语言
最初,程序只能用机器语言编写。用机器语言编写程序是早期经过严格训练的专业技术人员的工作,普通的程序员一般难以胜任,而且用机器语言编写的程序不易阅读、出错率高、难以维护,也不能直观地反映用计算机解决问题的基本思路。但也有优点,用机器语言编写出来的程序执行效率高,CPU严格按照程序员的要求去做,没有多余的额外操作。所以,在以保留“程序执行效率高”为前提下,人们就开始着手研究一种能大大改善程序可读性的编程方法。为了改善机器指令的可读性,选用了一些能反映机器指令功能的单词或词组来代表该机器指令,而不再关心机器指令的具体二进制编码。与此同时,也把CPU内部的各种资源符号化,使用该符号名也等于引用了该具体的物理资源。
如此一来,令人难懂的二进制机器指令就可以用通俗易懂的、具有一定含义的符号指令来表示了,于是,汇编语言就有了雏型。现在,我们称这些具有一定含义的符号为助记符,用指令助记符、符号地址等组成的符号指令称为汇编格式指令(或汇编指令)。汇编语言是汇编指令集、伪指令集和使用它们规则的统称。伪指令是在程序设计时所需要的一些辅助性说明指令,它不对应具体的机器指令。
用汇编语言编写的程序称为汇编语言程序,或汇编语言源程序。
-汇编语言