微机原理8086指令系统表
西安邮电大学 8086指令系统表
指令助记符 数
据
传
送数据传送MOV MOV Dest, Src← (Src)
Imm、CS、IP不能位数必须一致XCHGXCHG Dest,Src(Src) ←→ (Dest)
Opr不能为Imm,Sreg
Opr位数必须一致CS(或IP)PUSHPUSH Src
(SP) ← (SP)-2
((SP) +1, (SP)) ← (Src)Opr只能16位一般配对使用POPPOP Dest
(Dest)←((SP) +1,(SP))
(SP) ← (SP) +2XLATXLAT(AL) ← ((BX) + (AL))BX=首地址
AL=偏移量地址传送LEA LEA DES,Src← EA(Src)Dest为16位LDSLDS DES,Src←EA (Src)
(DS) ← EA(Src+2)LESLES DES,Src(Dest) ←EA (Src)
(ES) ← EA(Src+2)标志传送LAHF LAHF←(FLAGSL)相反操作一般配对使用SAHFSAHF(FLAGSL)← (AH)PUSHFPUSHF(SP) ← (SP)-2
((SP) +1, (SP)) ← (PSW)相反操作一般配对使用POPFPOPF
(Dest)←((SP) +1,(SP))
(SP) ← (SP) +2输入输出IN Ac,Port← (Port)
Ac←((DX))最多64K个8位或32K个16位端口地址256时,应采用OUTOUT Port,Ac
OUT DX,Ac(Port) ←Ac
((DX))←Ac算
术
运
算加法ADD ADD EST,Src←(Src)+(Dest)ODITSZAPC=x---xxxxxADCADC EST,Src←(Src)+ Dest)+CFODITSZAPC= x---xxxxxINCINC Dest(Dest) ← (Dest) +1ODITSZAPC= x---xxxx-减法SUB SUB EST,Src←(Dest)- (Src)ODITSZAPC= x---xxxxxSBB SBB EST,Src←(Dest)- (Src)-CFODITSZAPC= x---xxxxxDECDEC Dest(Dest) ← (Dest) -1ODITSZAPC= x---xxxx-NEGNEG Dest(Dest) ←0 - (Dest)求相反数
ODITSZAPC= x---xxxxxCMPCMP DES,Src (结果不回送
后边一般跟乘法MUL MUL Src(AX) ← (AL) *(Src)
(DX, AX← (AX) *(Src)单操作数指令
Src为乘数
Opr不能为Imm
Ac为隐含的被乘数IMULIMUL Src(AX) ← (AL) *(Src)
(DX, AX← (AX) *(Src)除法DIV DIV Src(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX, AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数单操作数指令
Src为除数
Src不能为Imm
AX(DX,AX)IDIVIDIV Src
(AL) ← (AX)/ (Src)的商
(AH) ← (AX)/ (Src)的余数
(AX) ← (DX, AX)/ (Src)的商
(DX) ← (DX,AX)/ (Src)的余数CBWCBWAL ( AX正数前补0
负数前补1
无符号数不能扩展CWDCWD AX ( (DX,AX)DAA DAA(AL) ( (AL)组合BCD紧接在加减指令后
ODITSZAPC= u---xxxxxDASDAS(AL) ( (AL)组合BCDAAA AAA (AL) ( (AL)非组合BCD紧接在加减指令后
ODITSZAPC= u---uuxuxAASAAS(AL) ( (AL)非组合BCDAAMAAM(AL) ( (AL)非组合BCD紧接在MUL后
ODITSZAPC= u---uuxuxAADAAD(AL) ( (AL)非组合BCDDIV指令之前AAD
DIV之后用AAM
ODITSZAPC= u