以下为我以前整理的指令简单解释。可能有些地方有错误。这些在以后学习中再找啦。
MOV复制
PUSH入栈
POP出栈
XCHG交换
XLAT换码:AL=DS:[BX+AL]
IN读端口
OUT写端口
LEA装有效地址
LDS装DS远指针
LES装ES远指针
LAHF读标志至AH
SAHF写标志为AH
PUSHF标志入栈
POPF出栈为标志
CBW符号字节扩展为字
CWD符号字扩展为双字
ADD加
INC自加
ADC带进位加
SUB减
SBB带借位减
DEC自减
NEG求补:OP=0-OP
CMP减比较
MUL无符乘
IMUL符乘
DIV无符除
IDIV符除
DAA加后BCD
DSS减后BCD
AAA加后ASCII
AAS减后ASCII
AAM乘后ASCII
AAD除前BCD2BIN
AND按位与
OR按位或
XOR按位异或
NOT按位反
TEST与比较
SHL逻辑左
SHR逻辑右
SAR算术右//算术左SAL等同逻辑左
ROL循环左
ROR循环右
RCL带进位循环左
RCR带进位循环右
MOVSB源至目_计数传送_按字节
MOVSW源至目_计数传送_按字
MOVS按字节_计数传送seg:[SI]至ES:[DI]
REP重复
REPZ为零则重复
REPNZ不为零则重复
CMPSB源减目比较_按字节
CMPSW源减目比较_按字
CMPS按字节比较seg:[SI]减ES:[DI]
REPNE
REPE
SCASB查找_AL/AX按字节减比较ES:[DI]
SCASW查找_AL/AX按字减比较ES:[DI]
STOSB写目的为AL值
STOSW写目的为AX值
LODSB写源为AL
LODSW写源为AX
LODS写seg:[si]为AL或AX
LOOP
LOOPZ
LOOPE
LOOPNZ
LOOPNE
CALL过程调用
RETN (RET)近过程返回
RETF远过程返回
INT调用中断处理例程
INTO溢出则中断
IRET中断返回
CLC清除进位
STC设置进位
CMC进位反
CLD方向正
STD方向反
CLI禁中断
STI允许中断
NOP无操作
HLT停止
JA(Above大于,c'*z')
JAE(c')
JB(Below小于,c)
JBE(c+z)
JG(s'*z')
JGE(s'+z)
JL(s*z')
JLE(s+z)
JE(z)
JMP
JCXZ(cx')
JZ(z)
JNZ(z')
JC(c)
JNC(c')
JS(s)
JNS(s')
JO(o)
JNO(o')
JP(p)
JNP(p')