汇编指令集Word文档格式.docx
《汇编指令集Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编指令集Word文档格式.docx(7页珍藏版)》请在冰豆网上搜索。
PUSHrPUSHMPUSHdataPOPrPOPmPUSHF,POPF,PUSHA,POPA
堆栈指令群
PUSHFPOPFPUSHAPOPALEA,LDS,LES
取地址至寄存器
LEAr,mLDSr,mLESr,m
XLAT(XLATB
查表指令
XLATXLATm
算数运算指令
ADD,ADC
加法指令
ADDOP1,OP2ADCOP1,OP2
ADDr1,r2ADDr,mADDm,rADDr,data影响标志:
C,P,A,Z,S,O
SUB,SBB
减法指令
SUBOP1,OP2SBBOP1,OP2
SUBr1,r2SUBr,mSUBm,rSUBr,dataSUBm,data
影响标志:
INC,DEC
把OP的值加一或减一
INCOPDECOP
INCr/mDECr/m
P,A,Z,S,O
NEG
将OP的符号反相(取二进制补码
NEGOP
NEGr/m
MUL,IMUL
乘法指令
MULOPIMULOP
MULr/mIMULr/m
C,P,A,Z,S,O(仅IMUL会影响S标志
DIV,IDIV
除法指令
DIVOPIDIVOP
DIVr/mIDIVr/m
CBW,CWD
有符号数扩展指令
CBWCWD
AAA,AAS,AAM,AAD
非压BCD码运算调整指令
AAAAASAAMAAD
A,C(AAA,AASS,Z,P(AAM,AAD
DAA,DAS
压缩BCD码调整指令
DAADAS
C,P,A,Z,S
位运算指令集
AND,OR,XOR,NOT,TEST
执行BIT与BIT之间的逻辑运算
ANDr/m,r/m/dataORr/m,r/m/dataXORr/m,r/m/dataTESTr/m,r/m/dataNOTr/m
C,O,P,Z,S(其中C与O两个标志会被设为0NOT指令不影响任何标志位
SHR,SHL,SAR,SAL
移位指令
SHRr/m,data/CLSHLr/m,data/CLSARr/m,data/CLSALr/m,data/CL影响标志:
C,P,Z,S,O
ROR,ROL,RCR,RCL
循环移位指令
RORr/m,data/CLROLr/m,data/CLRCRr/m,data/CLRCLr/m,data/CL影响标志:
程序流程控制指令集
CLC,STC,CMC
设定进位标志
CLCSTCCMC
标志位:
C
CLD,STD
设定方向标志
CLDSTD
D
CLI,STI
设定中断标志
CLISTI
I
CMP
比较OP1与OP2的值
CMPr/m,r/m/data
C,P,A,Z,O
JMP
跳往指定地址执行
JMP地址
JXX
当特定条件成立则跳往指定地址执行
JXX地址
注:
A:
ABOVE,当C=0,Z=0时成立
B:
BELOW,当C=1时成立
C:
CARRY,当弁时成立CXZ:
CX寄存器的值为0(ZERO时成立
E:
EQUAL,当Z=1时成立
G:
GREATER(大于,当Z=0且S=0时成立
L:
LESS(小于,当S不为零时成立
N:
NOT(相反条件,需和其它符号配合使用
O:
OVERFLOW,O=1时成立
P:
PARITY,P=1时成立
PE:
PARITYEVEN,P=1时成立
PO:
PARITYODD,P=0时成立
S:
SIGN,S=1时成立
Z:
ZERO,Z=1时成立
LOOP
循环指令集
LOOP地址
LOOPE(Z
地址LOOPNE(Z地址
无
CALL,RET
子程序调用,返回指令
CALL地址RETRETn
INT,IRET
中断调用及返回指令
INTnIRET
在执行INT时,CPU会自动将标志寄存器的值入栈,在执行IRET时则会将堆栈中的标志值弹回寄存器
字符串操作指令集
MOVSB,MOVSW,MOVSD
字符串传送指令
MOVSBMOVSWMOVSD
CMPSB,CMPSW,CMPSD
字符串比较指令
CMPSBCMPSWCMPSD
SCASB,SCASW
字符串搜索指令
SCASBSCASW
LODSB,LODSW,STOSB,STOSW
字符串载入或存贮指令
LODSBLODSWSTOSBSTOSW
REP,REPE,REPNE
重复前缀指令集
REP指令SREPE指令SREPNE指令S
依指令S而定
对于IBMPC机它有它的指令系统,其中包括:
数据传送指令、串处理指令、算术指令、控制移动指令、逻辑指令、处理机控制指令。
这里将简单介绍其指令类型及指令说明,如有要求给具体的指令格式及应用,请与amay联系,amay加以更新。
1数据传送指令:
负责把数据、地址或立即数传送到寄存器或存储单元中。
数据传送指令类型指令说明
通用数据传送指令MOV(传送、PUSH(进栈、POP(出栈、XCHG(交换
累加器专用传送指令IN(输入指令、OUT(输入指令
地址传送指令LEA(有效地址送寄存器、LDS(指针送寄存器和DS、LES(指针送寄存器和ES
标志寄存器传送指令LAHF(标志送AH、SAHF(AH送标志寄存器、PUSHF(标志进栈、POPF(标志出栈
2算术指令:
用来执行算术运算。
算术指令类型指令说明
加法指令ADD(加法、ADC(带进位加法、INC(加1
减法指令SUB(减法、SBB(带借位减法、DEC(减1、NEG(求补、CMP(比较
乘法指令MUL(无符号数乘法、IMUL(带符号数乘法
除法指令DIV(无符号数除法、IDIV(带符号数除法、CBW(字节转换为字、CWD(字转换为双字
3逻辑指令:
对字或字节执行逻辑运算。
逻辑指令类型指令说明
逻辑运算指令AND(逻辑与、OR(逻辑或、NOT(逻辑非、XOR(异或、TEST(测试
移动指令SHL(逻辑左移、SAL(算术左移、SHR(逻辑右移、SAR(算术右移、ROL(循环左移、ROR(循环右移、RCL(带进位循环左移、RCR(带进位右移
4串处理指令:
处理存放存储器里的数据串。
串处理指令类型指令说明
指令MOVS(串传送、CMPS(串比较、SCAS(串扫描、LODS(从串取、STOS(存入串
5控制转移指令:
用来控制程序的执行流程。
控制转移指令类型指令说明
无条件转移指令JMP(段间和段内转移)条件转移指令JZ(结果为0(或相等)则转移)、JS(结果为负则转移)、JNS(结果为正则转移)、JO(溢出则转移)、JNO(不溢出则转移)、JP(奇偶位为1则转移)、JNP(奇偶位为0则转移)循环指令LOOP(循环指令)LOOPPZ/LOOPE、(当为0或相等时循环指令)、LOOPNZ/LOOPNE(当不为0或不相等时循环指令)子程序指令CALL(调用指令)、RET(返回指令)中断指令INT(中断)、INTO(如溢出则中断)、RIET(从中断返回)