汇编(Asm)编程语句指令大全:
MOV (MOVE) 传送指令
PUSH 入栈指令
POP 出栈指令
XCHG (eXCHanG) 交换指令
XLAT (TRANSLATE) 换码指令
LEA (Load Effective Address) 有效地址送寄存器指令
LDS (Load DS with pointer) 指针送寄存器和DS指令
LES (Load ES with pointer) 指针送寄存器和ES指令
LAHF (Load AH with Flags) 标志位送AH指令
SAHF (Store AH into Flgs) AH送标志寄存器指令
PUSHF (PUSH the Flags) 标志进栈指令
POPF (POP the Flags) 标志出栈指令
ADD 加法指令
ADC 带进位加法指令
INC 加1指令
SUB (SUBtract) 不带借位的减法指令
SBB (SuVtrach with borrow) 带借位的减法指令
DEC (DECrement) 减1指领
NEG (NEGate) 求补指令
CMP (CoMPare) 比较指令
MUL (unsinged MULtiple) 无符号数乘法指令
IMUL (sIgned MUL tiple) 有符号数乘法指令
DIV (unsigned DIVide) 无符号数除法指令
IDIV (sIgned DIVide) 有符号数除法指令
CBW (Count Byte to Word) 字节转换为字指令
CWD (Count Word to Doble word) 字转换为双字指令
DAA 压缩的BCD码加法十进制调整指令
DAS 压缩的BCD码减法十进制调整指令
AAA 非压缩的BCD码加法十进制调整指令
AAS 非压缩的BCD码加法十进制调整指令
AND 逻辑与指令
OR 逻辑或指令
XOR 逻辑异或指令
NOT 逻辑非指令
TEST 测试指令
SHL (SHift logical Letf) 逻辑左移指令
SHR (SHift logical Right) 逻辑右移指令
ROL (Rotate Left ) 循环左移指令P58
ROR (Rotate Right) 循环右移指令P58
RCL (Rotate Left through Carry) 带进位循环左移
RCR (Rotate Right through Carry) 带进位循环左移
MOVS (MOVe String) 串传送指令
STOS (STOre into String) 存入串指令
LODS (LOad from string) 从串取指令
REP (REPeat) 重复操作前
CLD (CLear Direction flag) 清除方向标志指令
STD (SeT Direction flag) 设置方向标志指令
CMPS (CoMPare String) 串比较指令
SCAS (SCAn String) 串扫描指令
REPE/REPZ (REPeat while Equal/Zero) 相等/为零时重复操作前缀
REPNE/REPNZ (REPeat while Not Equal/Zero)不相等/不为零进重复前缀
IN (INput) 输入指令
OUT (OUTput) 输出指令
LOOP 循环指令P70
LOOPZ/LOOPE 为零/相等时循环指令
LOOPNZ/LOOPNE 不为零/不相等时循环指令
CALL 子程序调用指令
RET (RETun) 子程序返回指令
CLC (CLear Carry) 进位位置0指令
CMC (CoMplement Carry) 进位位求反指令
SRC (SeT Carry) 进位位置1指令
NOP (No OPeretion) 无操作指令
HLT (HaLT) 停机指令
OFFSET 返回偏移地址
SEG 返回段地址
EQU(=) 等值语句
PURGE 解除语句
DUP 操作数字段用复制操作符
SEGMENT,ENDS 段定义指令
ASSUME 段地址分配指令
ORG 起始偏移地址设置指令
$ 地址计数器的当前值
PROC,ENDP 过程定义语句
NAME,TITLE,END 程序开始结束语句
MACRO,ENDM 宏定义指令
条件转移指令:
JMP,JZ,JNZ,JS,JNS,JO,JNO,JP,JNP,JB,JNB,JBE,JNBE,JL,JNL,JLE,JNLE,JCXZ
JMP (JuMP) 无条件转移指令
JZ OPR 结果为零转移
JNZ OPR 结果不为零转移
JS OPR 结果为负转移
JNS OPR 结果为正转移
JO OPR 溢出转移
JNO OPR 不溢出转移
JP OPR 结果为偶转移
JNP OPR 结果为奇转移
JC OPR 有进位转移
JNC OPR 无进位转移
JE的功能不是比较2个数,而是看ZF标志以决定转移与否。比较是CMP指令。
名称 功能 操作数 操作码 模数 寄存器1 寄存器2
内存 位移量 立即数 符号 方向 芯片 型号 16位 32位
JO 溢出跳转 短 $70 无 无 无 无 10 无 无 8086 无 无
JNO 不溢出跳转 短 $71 无 无 无 无 10 无 无 8086 无 无
JB 低于跳转 短 $72 无 无 无 无 10 无 无 8086 无 无
JNB 不低于跳转 短 $73 无 无 无 无 10 无 无 8086 无 无
JE 相等跳转 短 $74 无 无 无 无 10 无 无 8086 无 无
JNE 不等跳转 短 $75 无 无 无 无 10 无 无 8086 无 无
JBE 不高于跳转 短 $76 无 无 无 无 10 无 无 8086 无 无
JA 高于跳转 短 $77 无 无 无 无 10 无 无 8086 无 无
JS 负号跳转 短 $78 无 无 无 无 10 无 无 8086 无 无
JNS 非负跳转 短 $79 无 无 无 无 10 无 无 8086 无 无
JP 奇偶跳转 短 $7A 无 无 无 无 10 无 无 8086 无 无
JNP 非奇偶跳转 短 $7B 无 无 无 无 10 无 无 8086 无 无
JL 小于跳转 短 $7C 无 无 无 无 10 无 无 8086 无 无
JNL 不小于跳转 短 $7D 无 无 无 无 10 无 无 8086 无 无
JNG 不大于跳转 短 $7E 无 无 无 无 10 无 无 8086 无 无
JG 大于跳转 短 $7F 无 无 无 无 10 无 无 8086 无 无
JO 溢出跳转 近 $0F80 无 无 无 无 10 无 无 386 无 $66
JNO 不溢出跳转 近 $0F81 无 无 无 无 10 无 无 386 无 $66
JB 低于跳转 近 $0F82 无 无 无 无 10 无 无 386 无 $66
JNB 不低于跳转 近 $0F83 无 无 无 无 10 无 无 386 无 $66
JE 相等跳转 近 $0F84 无 无 无 无 10 无 无 386 无 $66
JNE 不等跳转 近 $0F85 无 无 无 无 10 无 无 386 无 $66
JBE 不高于跳转 近 $0F86 无 无 无 无 10 无 无 386 无 $66
JA 高于跳转 近 $0F87 无 无 无 无 10 无 无 386 无 $66
JS 负号跳转 近 $0F88 无 无 无 无 10 无 无 386 无 $66
JNS 非负跳转 近 $0F89 无 无 无 无 10 无 无 386 无 $66
JP 奇偶跳转 近 $0F8A 无 无 无 无 10 无 无 386 无 $66
JNP 非奇偶跳转 近 $0F8B 无 无 无 无 10 无 无 386 无 $66
JL 小于跳转 近 $0F8C 无 无 无 无 10 无 无 386 无 $66
JNL 不小于跳转 近 $0F8D 无 无 无 无 10 无 无 386 无 $66
JNG 不大于跳转 近 $0F8E 无 无 无 无 10 无 无 386 无 $66
JG 大于跳转 近 $0F8F 无 无 无 无 10 无 无 386 无 $66
JO 溢出跳转 近 $0F80 无 无 无 无 10 无 无 386 $66 无
JNO 不溢出跳转 近 $0F81 无 无 无 无 10 无 无 386 $66 无
JB 低于跳转 近 $0F82 无 无 无 无 10 无 无 386 $66 无
JNB 不低于跳转 近 $0F83 无 无 无 无 10 无 无 386 $66 无
JE 相等跳转 近 $0F84 无 无 无 无 10 无 无 386 $66 无
JNE 不等跳转 近 $0F85 无 无 无 无 10 无 无 386 $66 无
JBE 不高于跳转 近 $0F86 无 无 无 无 10 无 无 386 $66 无
JA 高于跳转 近 $0F87 无 无 无 无 10 无 无 386 $66 无
JS 负号跳转 近 $0F88 无 无 无 无 10 无 无 386 $66 无
JNS 非负跳转 近 $0F89 无 无 无 无 10 无 无 386 $66 无
JP 奇偶跳转 近 $0F8A 无 无 无 无 10 无 无 386 $66 无
JNP 非奇偶跳转 近 $0F8B 无 无 无 无 10 无 无 386 $66 无
JL 小于跳转 近 $0F8C 无 无 无 无 10 无 无 386 $66 无
JNL 不小于跳转 近 $0F8D 无 无 无 无 10 无 无 386 $66 无
JNG 不大于跳转 近 $0F8E 无 无 无 无 10 无 无 386 $66 无
JG 大于跳转 近 $0F8F 无 无 无 无 10 无 无 386 $66 无
JCXZ 计数一六零跳转 位移8 $E3 无 无 无 无 10 无 无 8086 无 $67
JECXZ 计数三二零跳转 位移8 $E3 无 无 无 无 10 无 无 386 $67 无
JMP 跳转 寄16 $FF 11 100 3 无 无 无 无 8086 无 $66
JMP 跳转 寄32 $FF 11 100 3 无 无 无 无 386 $66 无
JMP 跳转 16[寄16] $FF 00 100 5 无 无 无 无 8086 无 $6766
JMP 跳转 32[寄16] $FF 00 100 5 无 无 无 无 386 $66 $67
JMP 跳转 16[寄32] $FF 00 100 5 无 无 无 无 386 $67 $66
JMP 跳转 32[寄32] $FF 00 100 5 无 无 无 无 386 $6766 无
JMP 跳转 16[寄16+位移8] $FF 01 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 32[寄16+位移8] $FF 01 100 5 9 无 无 无 386 $66 $67
JMP 跳转 16[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $67 $66
JMP 跳转 32[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $6766 无
JMP 跳转 16[寄16+位移16] $FF 10 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 32[寄16+位移16] $FF 10 100 5 9 无 无 无 386 $66 $67
JMP 跳转 16[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $67 $66
JMP 跳转 32[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $6766 无
JMP 跳转 近16[寄16] $FF 00 100 5 无 无 无 无 8086 无 $6766
JMP 跳转 近32[寄16] $FF 00 100 5 无 无 无 无 386 $66 $67
JMP 跳转 近16[寄32] $FF 00 100 5 无 无 无 无 386 $67 $66
JMP 跳转 近32[寄32] $FF 00 100 5 无 无 无 无 386 $6766 无
JMP 跳转 近16[寄16+位移8] $FF 01 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 近32[寄16+位移8] $FF 01 100 5 9 无 无 无 386 $66 $67
JMP 跳转 近16[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $67 $66
JMP 跳转 近32[寄32+位移8] $FF 01 100 5 9 无 无 无 386 $6766 无
JMP 跳转 近16[寄16+位移16] $FF 10 100 5 9 无 无 无 8086 无 $6766
JMP 跳转 近32[寄16+位移16] $FF 10 100 5 9 无 无 无 386 $66 $67
JMP 跳转 近16[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $67 $66
JMP 跳转 近32[寄32+位移32] $FF 10 100 5 9 无 无 无 386 $6766 无
JMP 跳转 远16[寄16] $FF 00 101 5 无 无 无 无 8086 无 $6766
JMP 跳转 远32[寄16] $FF 00 101 5 无 无 无 无 386 $66 $67
JMP 跳转 远16[寄32] $FF 00 101 5 无 无 无 无 386 $67 $66
JMP 跳转 远32[寄32] $FF 00 101 5 无 无 无 无 386 $6766 无
JMP 跳转 远16[寄16+位移8] $FF 01 101 5 9 无 无 无 8086 无 $6766
JMP 跳转 远32[寄16+位移8] $FF 01 101 5 9 无 无 无 386 $66 $67
JMP 跳转 远16[寄32+位移8] $FF 01 101 5 9 无 无 无 386 $67 $66
JMP 跳转 远32[寄32+位移8] $FF 01 101 5 9 无 无 无 386 $6766 无
JMP 跳转 远16[寄16+位移16] $FF 10 101 5 9 无 无 无 8086 无 $6766
JMP 跳转 远32[寄16+位移16] $FF 10 101 5 9 无 无 无 386 $66 $67
JMP 跳转 远16[寄32+位移32] $FF 10 101 5 9 无 无 无 386 $67 $66
JMP 跳转 远32[寄32+位移32] $FF 10 101 5 9 无 无 无 386 $6766 无
JMP 跳转 短 $EB 无 无 无 无 10 无 无 8086 无 无
JMP 跳转 位移16 $E9 无 无 无 无 10 无 无 8086 无 $66
JMP 跳转 位移32 $E9 无 无 无 无 10 无 无 386 $66 无
JMP 跳转 近 $E9 无 无 无 无 10 无 无 8086 无 $66
JMP 跳转 近 $E9 无 无 无 无 10 无 无 386 $66 无
JMP 跳转 远(数段址:)偏移16 $EA 无 无 无 无 10 无 无 8086 无 $66
JMP 跳转 远(数段址:)偏移32 $EA 无 无 无 无 10 无 无 386 $66 无
JMP 跳转 数段址:偏移16 $EA 无 无 无 无 12 无 无 8086 无 $66
JMP 跳转 数段址:偏移32 $EA 无 无 无 无 12 无 无 386 $66 无
JMPE 跳转扩展 寄16 $0F00 11 110 3 无 无 无 无 IA64 无 $66
JMPE 跳转扩展 寄32 $0F00 11 110 3 无 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄16] $0F00 00 110 5 无 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄16] $0F00 00 110 5 无 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄32] $0F00 00 110 5 无 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄32] $0F00 00 110 5 无 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄16+位移8] $0F00 01 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄16+位移8] $0F00 01 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄32+位移8] $0F00 01 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄32+位移8] $0F00 01 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄16+位移16] $0F00 10 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄16+位移16] $0F00 10 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 16[寄32+位移32] $0F00 10 110 5 9 无 无 无 IA64 无 $66
JMPE 跳转扩展 32[寄32+位移32] $0F00 10 110 5 9 无 无 无 IA64 $66 无
JMPE 跳转扩展 位移16 $0FB8 无 无 无 无 10 无 无 IA64 无 $66
JMPE 跳转扩展 位移32 $0FB8 无 无 无 无 10 无 无 IA64 $66 无 |