8086 8088指令系统记忆表.docx
《8086 8088指令系统记忆表.docx》由会员分享,可在线阅读,更多相关《8086 8088指令系统记忆表.docx(9页珍藏版)》请在冰豆网上搜索。
![8086 8088指令系统记忆表.docx](https://file1.bdocx.com/fileroot1/2023-1/3/07a0e5cc-bfa1-4481-ad96-f7edae3e6a32/07a0e5cc-bfa1-4481-ad96-f7edae3e6a321.gif)
80868088指令系统记忆表
8086/8088指令系统记忆表
来自:
[已注销]2011-10-2122:
44:
12
在这之前,先说一下寄存器:
数据寄存器分为:
AH&AL=AX(accumulator):
累加寄存器,常用于运算;在乘除等指令中指定用来存放操作数,另外,所有的I/O指令都使用这一寄存器与外界设备传送数据.
BH&BL=BX(base):
基址寄存器,常用于地址索引;
CH&CL=CX(count):
计数寄存器,常用于计数;常用于保存计算值,如在移位指令,循环(loop)和串处理指令中用作隐含的计数器.
DH&DL=DX(data):
数据寄存器,常用于数据传递。
他们的特点是,这4个16位的寄存器可以分为高8位:
AH,BH,CH,DH.以及低八位:
AL,BL,CL,DL。
这2组8位寄存器可以分别寻址,并单独使用。
另一组是指针寄存器和变址寄存器,包括:
SP(StackPointer):
堆栈指针,与SS配合使用,可指向目前的堆栈位置;
BP(BasePointer):
基址指针寄存器,可用作SS的一个相对基址位置;
SI(SourceIndex):
源变址寄存器可用来存放相对于DS段之源变址指针;
DI(DestinationIndex):
目的变址寄存器,可用来存放相对于ES段之目的变址指针。
指令指针IP(InstructionPointer)
标志寄存器FR(FlagRegister)
OF(overflowflag)
DF(directionflag)
CF(carrierflag)
PF(parityflag)
AF(auxiliaryflag)
ZF(zeroflag)
SF(signflag)
IF(interruptflag)
TF(trapflag)
段寄存器(SegmentRegister)
为了运用所有的内存空间,8086设定了四个段寄存器,专门用来保存段地址:
CS(CodeSegment):
代码段寄存器;
DS(DataSegment):
数据段寄存器;
SS(StackSegment):
堆栈段寄存器;
ES(ExtraSegment):
附加段寄存器。
第一部分:
指令助记符:
一、数据传送指令
1.通用数据传送指令
MOV(Move)传送
PUSH(Pushontothestack)进栈
POP(Popfromthestack)出栈
XCHG(Exchange)交换
2.累加器专用传送指令
IN(Input)输入
OUT(Output)输出
XLAT(Translate)换码
3.有效地址送寄存器指令
LEA(Loadeffectiveaddress)有效地址送寄存器
LDS(LoadDSwithPointer)指针送寄存器和DS
LES(LoadESwithPointer)指针送寄存器和ES
4.标志寄存器传送指令
LAHF(LoadAHwithflags)标志送AH
SAHF(storeAHintoflags)AH送标志寄存器
PUSHF(pushtheflags)标志进栈
POPF(poptheflags)标志出栈
二、算术指令
1.加法指令
ADD(add)加法
ADC(addwithcarry)带进位加法
INC(increment)加1
2.减法指令
SUB(subtract)减法
SBB(subtractwithborrow)带借位减法
DEC(Decrement)减1
NEG(Negate)求补
CMP(Compare)比较
3.乘法指令
MUL(UnsignedMultiple)无符号数乘法
IMUL(SignedMultiple)带符号数乘法
4.除法指令
DIV(Unsigneddivide)无符号数除法
IDIV(Signeddivide)带符号数除法
CBW(Convertbytetoword)字节转换为字
CWD(Contertwordtodoubleword)字转换为双字
三、逻辑指令
1.逻辑运算指令
AND(and)逻辑与
OR(or)逻辑或
NOT(not)逻辑非
XOR(exclusiveor)异或
TEST(test)测试
2.移位指令
SHL(shiftlogicalleft)逻辑左移
SAL(shiftarithmeticleft)算术左移
SHR(shiftlogicalright)逻辑右移
SAR(shiftarithmeticright)算术右移
ROL(Rotateleft)循环左移
ROR(Rotateright)循环右移
RCL(Rotateleftthroughcarry)带进位循环左移
RCR(Rotaterightthroughcarry)带进位循环右移
四、串处理指令
1.重复前端指令
REP(Repeat)重复串操作直到(CX)=0为上
REPE(Repeatwhenempty)若(CX)=0,则退出,否则CX=CX+1;
REPZ(Repeatwhenflag)若ZF=0,则退出,否则CX=CX+1;
REPC(Repeatwhencarryflag)
REPNE(Repeatwhennotempty)
REPNZ(Repeatwhennotzeroflag)
REPNC(Repeatwhennotcarryflag)
2.串操作指令
MOVSB(Movestringofbyte)串传送指令
MOVSW(Movestringofword)串传送指令
CMPSB(Comparestringofbyte)串比较指令
CMPSW(Comparestringofword)串比较指令
SCASB(Scanstringofbyte)串搜索指令
SCASW(Scanstringofword)串搜索指令
STOSB(Storestringofbyte)存串指令
STOSW(Storestringofword)存串指令
LODSB(Loadstringofbyte)取串指令
LODSW(Loadstringofword)取串指令
CLD(Cleardirectionflag)该指令使DF=0,在执行串操作指令时可使地址自动增量;
STD(Setdirectionflag)该指令使DF=1,在执行串操作指令时可使地址自动减量.
DAA(Decimaladjustafteraddition)组合BCD码的加法调整指令
DAS(Decimaladjustaftersubstract)组合BCD码的减法调整指令
AAA(ASCIIadjustafteraddition)非压缩BCD码加法调成指令
AAS(ASCIIadjustaftersubstract)非压缩BCD码减法调成指令
AAM(ASCIIadjustaftermultiple)非压缩BCD码乘法调成指令
AAD(ASCIIadjustafterdivid)非压缩BCD码除法调成指令
五、控制转移指令
1.无条件转移指令
JMP(jmp)跳转指令
2.条件转移指令
(1)根据单个条件标志的设置情况转移
JZ(或JE)(Jumpifzero,orequal)结果为零(或相等)则转移
JS(Jumpifsign)结果为负则转移
JNS(Jumpifnotsign)结果为正则转移
JO(Jumpifoverflow)溢出则转移
JNO(Jumpifnotoverflow)不溢出则转移
JNP(或JPO)(Jumpifnotparity,orparityodd)奇偶位为0则转移
JP(或JPE)(Jumpifparity,orparityeven)奇偶位为1则转移
JB(或JNAE,JC)(Jumpifbelow,ornotaboveorequal,orcarry)低于,或者不高于或等于,或进位位为1则转移
JNB(或JAE,JNC)(Jumpifnotbelow,oraboveorequal,ornotcarry)不低于,或者高于或者等于,或进位位为0则转移
(2)比较两个无符号数,并根据比较的结果转移
JB(或JNAE,JC)
JNB(或JAE,JNC)
JBE(或JNA)(Jumpifbeloworequal,ornotabove)低于或等于,或不高于则转移
JNBE(或JA)(Jumpifnotbeloworequal,orabove)不低于或等于,或者高于则转移
(3)比较两个带符号数,并根据比较的结果转移
JL(或LNGE)(Jumpifless,ornotgreaterorequal)小于,或者不大于或者等于则转移
JNL(或JGE)(Jumpifnotless,orgreaterorequal)不小于,或者大于或者等于则转移
JLE(或JNG)(Jumpiflessorequal,ornotgreater)小于或等于,或者不大于则转移
JNLE(或JG)(Jumpifnotlessorequal,orgreater)不小于或等于,或者大于则转移
(4)测试CX的值为0则转移指令
JCXZ(JumpifCXregisteriszero)CX寄存器
3.循环指令
LOOP(loop)循环指令
4.子程序
CALL(call)调用指令
RET(return)返回指令
5.中断
INT(interrupt)指令
IRET(interruptreturn)从中断返回指令
INTO(interruptifoverflow)若溢出则中断
六、处理机控制指令
1.标志处理指令
CLC(Clearcarry)进位位置0指令CF<-0
CMC(Complementcarry)进位位求反指令CF<-CF
STC(Setcarry)进位位置1指令CF<-1
CLD(Cleardirection)方向标志置0指令DF<-0
STD(Setdirection)方向标志置1指令DF<-1
CLI(Clearinterrupt)中断标志置0指令IF<-0
STI(Setinterrupt)中断标志置1指令IF<-0
2.其他处理机控制指令
NOP(NoOpreation)无操作
HLT(Halt)停机
WAIT(Wait)等待
ESC(Escape)换码
LOCK(Lock)封锁
第二部分:
伪指令
1.符号定义伪指令:
EQU
.2.数据定义伪指令:
DB(DefineByte):
定义字节
DW(DefineWord):
定义字
DD(DefineDouble):
定义双字
DUP(duplication):
重复;复制,复写
3.过程定义伪指令:
PROC(Process):
4.定位伪指令:
ORG(Origin):
.5.常数、变量及标号
OFFSET(Offset):
偏移量
6.表达式和运算符:
①算术运算符:
SHL(shiftlogicalleft):
逻辑左移
SHR(shiftlogicalright):
逻辑右移
②关系运算符:
EQ(Equal):
相等
NE(NotEqual):
不等于
LT(LessThan):
小于
LE(LessThanorEqual):
小于等于
GT(GreaterThan):
大于
GE(GreaterThanorEqual)
③取值运算符:
SEG(Segment)
OFFSET(Offset)
④属性运算符:
PTR(Pointer):
指针