我现将指令系统中各种助记符的英文全名写出来,各种助记符的记忆就会变得很简单o(∩_∩)o...在这之前,先说一下寄存器:数据寄存器分为: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)指针送寄存器和DSLES(LoadESwithPointer)指针送寄存器和ES4.标志寄存器传送指令LAHF(LoadAHwithflags)标志送AHSAHF(storeAHintoflags)AH送标志寄存器PUSHF(pushtheflags)标志进栈POPF(poptheflags)标志出栈二、算术指令1.加法指令ADD(add)加法ADC(addwithcarry)带进位加法INC(increment)加12.减法指令SUB(subtract)减法SBB(subtractwithborrow)带借位减法DEC(Decrement)减1NEG(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-0CMC(Complementcarry)进位位求反指令CF-CFSTC(Setcarry)进位位置1指令CF-1CLD(Cleardirection)方向标志置0指令DF-0STD(Setdirection)方向标志置1指令DF-1CLI(Clearinterrupt)中断标志置0指令IF-0STI(Setinterrupt)中断标志置1指令IF-02.其他处理机控制指令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):指针