下载

1下载券

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 汇编指令大全+很全的汇编指令

汇编指令大全+很全的汇编指令.pdf

汇编指令大全+很全的汇编指令

小平
2011-07-06 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《汇编指令大全+很全的汇编指令pdf》,可适用于高等教育领域

汇编汇编汇编汇编指令大全指令大全指令大全指令大全零零零零、、、、状状状状态态态态寄存器寄存器寄存器寄存器MOVE数据传送指令MOV格式:MOVOPRD,OPRD功能:本指令将一个源操作数送到目的操作数中,即OPRD<OPRD说明:OPRD为目的操作数,可以是寄存器、存储器、累加器OPRD为源操作数,可以是寄存器、存储器、累加器和立即数MOV指令以分为以下四种情况:<>寄存器与寄存器之间的数据传送指令<>立即数到通用寄存器数据传送指令<>寄存器与存储器之间的数据传送指令<>立即数到存储器的数据传送本指令不影响状态标志位PUSH堆栈操作指令PUSH和POP格式:PUSHOPRDPOPOPRD功能:实现压入操作的指令是PUSH指令实现弹出操作的指令是POP指令说明:OPRD为位(字)操作数,可以是寄存器或存储器操作数PUSH的操作过程是:(SP)<(SP),((sp))<OPRD即先修改堆栈指针SP(压入时为自动减),然后,将指定的操作数送入新的栈顶位置此处的((SP))<OPRD,也可以理解为:(SS)*(SP)<OPRD或SS:SP<OPRDPOPPOPPOPPOP堆栈操作指令PUSH和POP格式:PUSHOPRDPOPOPRD功能:实现压入操作的指令是PUSH指令实现弹出操作的指令是POP指令说明:OPRD为位(字)操作数,可以是寄存器或存储器操作数POP指令的操作过程是:POPOPRD:OPRD<((SP)),(SP)<(SP)它与压入操作相反,是先弹出栈顶的数顶,然后再修改指针SP的内容示例:POPAXPOPDSPOPDATAPOPALFABXDIPUSH和POP指令对状态标志位没有影响XCHGXCHGXCHGXCHG数据交换指令XCHG格式:XCHGOPRD,OPRD其中的OPRD为目的操作数,OPRD为源操作数功能:将两个操作数相互交换位置,该指令把源操作数OPRD与目的操数OPRD交换说明:OPRD及OPRD可为通用寄存器或存储器,但是两个存储器之间是不能用XCHG指令实现的段寄存器内容不能用XCHG指令来交换若要实现两个存储器操作数DATA及DATA的交换,可用以下指令实现:示例:PUSHDATA星尘易尘页码PUSHDATAPOPDATAPOPDATA本指令不影响状态标志位XLATXLATXLATXLAT查表指令XLAT格式:XLATTABLE其中TABLE为一待查表格的首地址功能:把待查表格的一个字节内容送到AL累加器中说明:在执行该指令前,应将TABLE先送至BX寄存器中,然后将待查字节与在表格中距表首地址位移量送AL,即(AL)<((BX)(AL))本指令不影响状态标位,表格长度不超过字节LAHFLAHFLAHFLAHF标志传送指令LAHF格式:LAHF功能:取FLAG标志寄存器低位至AH寄存器(AH)<(FLAG)~说明:该指令不影响FLAG的原来内容,AH只是复制了原FLAG的低位内容SAHFSAHFSAHFSAHF标志传送指令SAHF格式:SAHF功能:将AH存至FLAG低位说明:本指令将用AH的内容改写FLAG标志寄存器中的SF、ZF、AF、PF、和CF标志,从而改变原来的标志位PUSHFPUSHFPUSHFPUSHF标志传送指令PUSHF格式:PUSHF功能:本指令可以把标志寄存器的内容保存到堆栈中去POPFPOPFPOPFPOPF标志传送指令POPF格式:POPF功能:本指令的功能与PUSHF相反,在子程序调用和中断服务程序中,往往用PUSHF指令保护FLAG的内容,用POPF指令将保护的FLAG内容恢复说明:如果对堆栈中的原FLAG内容进行修改,如对TF等标志位进行修改,然后再弹回标志位寄存器FLAG这是通过指令修改TF标志的唯一方法LEALEALEALEA有效地址传送指令LEA格式:LEAOPRD,OPRD功能:将源操作数给出的有效地址传送到指定的的寄存器中说明:OPRD为目的操作数,可为任意一个位的通用寄存器OPRD为源操作数,可为变量名、标号或地址表达式示例:LEABX,DATALEADX,BETABXSILEABXBX,BP,DI本指令对标志位无影响。LDSLDSLDSLDS从存储器取出位地址的指令LDS格式:LDSOPRD,OPRD功能:从存储器取出位地址的指令说明:OPRD为任意一个位的寄存器OPRD为位的存储器地址示例:LDSSI,ABCDLDSBX,FASTSILDSDI,BX注意:上面LDSDI,BX指令的功能是把BX所指的位地址指针的段地址送入DS,偏移地址送入星尘易尘页码DILESLESLESLES从存储器取出位地址的指令LES格式:LESOPRD,OPRD功能:从存储器取出位地址的指令说明:OPRD为任意一个位的寄存器OPRD为位的存储器地址示例:LESSI,ABCDLESBX,FASTSILESDI,BX注意:上面LESDI,BX指令的功能是把BX所指的位地址指针的段地址送入ES,偏移地址送入DIADDADDADDADD加法指令ADD(Addition)格式:ADDOPRD,OPRD功能:两数相加说明:OPRD为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数OPRD为立即数,也可以是任意一个通用寄存器操作数立即数只能用于源操作数OPRD和OPRD均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响以上标志也称为结果标志加法指令适用于无符号数或有符号数的加法运算ADCADCADCADC带进位加法指令ADC(AdditionCarry)格式:ADCOPRD,OPRD功能:OPRD<OPRDOPRDCF说明:OPRD为任一通用寄存器或存储器操作数,可以是任意一个通用寄存器,而且还可以是任意一个存储器操作数OPRD为立即数,也可以是任意一个通用寄存器操作数立即数只能用于源操作数OPRD和OPRD均为寄存器是允许的,一个为寄存器而另一个为存储器也是允许的,但不允许两个都是存储器操作数加法指令运算的结果对CF、SF、OF、PF、ZF、AF都会有影响以上标志也称为结果标志该指令对标志位的影响同ADD指令INCINCINCINC加指令INC(INCrementby)格式:INCOPRD功能:OPRD<OPRD说明:OPRD为寄存器或存储器操作数这条指令执行结果影响AF、OF、PF、SF、ZF标志位,但不影响CF标志位星尘易尘页码示例:INCSI(SI)<(SI)INCWORDPTRBXINCBYTEPTRBXDIINCCL(CL)<(CL)注意:上述第二,三两条指令,是对存储字及存储字节的内容加以替代原来的内容AAAAAAAAAAAA未组合的十进制加法调整指令AAA(ASCIIAdgustforAddition)格式:AAA功能:对两个组合的十进制数相加运算(存在AL中)的结果进行调整,产生一个未组合的十进制数放在AX中说明:组合的十进制数和未组合的十进制数:在计算中,十进制数可用四位二进制数编码,称为BCD码当一个节(位)中存放一位BCD码,且放在字节的低位,高位为时称为未组合的BCD码AAA的调整操作若(AL)andFH>或AF=,则调整如下:(AL)<(AL),(AH)<(AH),AF=,CF<AF,(AL)<(AL)andFHDAADAADAADAA组合的十进制加法调整指令DAA(DecimalAdjustforAddition)格式:DAA功能:对AL中的两个组合进制数相加的结果进行调整,调整结果仍放在AL中,进位标志放在CF中说明:调整操作如下()若(AL)andFH>或AF=,则(AL)<(AL),AF<,对低四位的调整()若(AL)andFH>H或CF=,则(AL)<(AL)H,CF<示例:(AL)=H,(BL)=HADDAL,BL(AL)<(AL)(BL)(AL)=EHDAA(AL)SUBSUBSUBSUB减法指令SUB(SUBtract)格式:SUBOPRD,OPRD功能:两个操作数的相减,即从OPRD中减去OPRD,其结果放在OPDR中说明:示例SUBDX,CXSUBBX,AXSUBDI,ALFASISUBCL,SUBDATADIBX,AHSBBSBBSBBSBB带借位减去指令SBB(SuBtractionwithBorrow)格式:SBBOPRD,OPRD功能:是进行两个操作数的相减再减去CF进位标志位,即从OPRD<OPRDOPRDCF,其结果放在OPDR中说明:示例SBBDX,CXSBBAX,DATASBBBX,HSBBALFABXSI,SISBBBETAPDI,AHDECDECDECDEC减一指令DEC(Decrementby)格式:DECOPRD功能:OPRD<OPRD说明:OPRD为寄存器或存储器操作数这条指令执行结果影响AF、OF、PF、SF、ZF标志位但不影响CF标志位星尘易尘页码示例DECAXDECCLDECWORDPTRDIDECALFADIBXNEGNEGNEGNEG取补指令NEG(NEGate)格式:NEGOPRD功能:对操作数OPRD进行取补操作,然后将结果送回OPRD取补操作也叫作求补操作,就是求一个数的相反数的补码说明:OPRD为任意通用寄存器或存储器操作数示例:(AL)=H,取补后,(AL)=BCH(H)本指令影响标志位CF、OF、SF、PF、ZF及AFCMPCMPCMPCMP比效指令CMP(CoMPare)格式:CMPOPRD,OPRD功能:对两数进行相减,进行比较说明:OPRD为任意通用寄存器或存储器操作数OPRD为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRDOPRD的结果送回OPRD,而只是比较在指令系统中,专门提供了一组根据带符号数比较大小后,实现条件转移的指令AASAASAASAAS未组合十进制减法调整指令AAS(ASCIIAdjustforSubtraction)格式:AAS功能:对两个未组合十进制数相减后存于AL中的结果进行调整,调整后产生一个未组合的十进制数数且仍存于AL中说明:本指令影响标志位CF及AF调整操作若(AL)andFH>或AF=则(AL)<(AL),(AH)<(AH),CF<AF,(AL)<(AL)andFH,否则(AL)<(AL)andFHDASDASDASDAS组合十进制减法调整指令DAS(DecimalAdjustforSubtraction)格式:DAS功能:对两个组合十进制数相减后存于AL中的结果进行调整,调整后产生一个组合的十进制数且仍存于AL中说明:调整操作若(AL)andFH>或AF=,则(AL)<(AL),AF=若(AL)andFH>H或CF=,则(AL)<(AL),CF=MULMULMULMUL无符号数乘法指令MUL(MULtiply)格式:MULOPRD功能:乘法操作说明:OPRD为通用寄存器或存储器操作数OPRD为源操作数,即作乘数目的操作数是隐含的,即被乘数总是指定为累加器AX或AL的内容位乘法时,AX中为被乘数位乘法时,AL为被乘数当位乘法时,位的乘积存于DX及AX中星尘易尘页码位乘法的位乘积存于AX中操作过程:字节相乘:(AX)<(AL)*OPRD,当结果的高位字节(AH)不等于时,则CF=、OF=IMULIMULIMULIMUL带符号数乘法指令IMUL(IntegerMULtiply)格式:IMULOPRD功能:完成两个带符号数的相乘说明:其中OPRD为任一通用寄存器或存储器操作数MUL指令对带符号相乘时,不能得到正确的结果例如:(AL)=(CL)=MULCL(AX)=注意:这对无符号数讲,结果是正确的,但对带符号数讲,相当于()*()结果应为,而对应的带符号数为,显然是不正确的AAMAAMAAMAAM未组合十进制数乘法调整指令AAM(ASCIIAdjustMULtiply)格式:AAM功能:对两个未组合的十进制数相乘后存于AX中的结果进行调整,产生一个未组合的十进制数存在AL中说明:实际上是两个未组合的十进制数字节相乘,一个~的数与另一个~的数相乘其积最大为为了得到正确的结果,应进行如下调整:乘积:(AH)<(AL)(AL)<(AL)MOD本指令应跟在MUL指令后使用,乘积的两位十进制结果,高位放在AH中,低位放在AL中AH内容是MUL指令的结果被除的商,即(AL),而最后的AL内容是乘积被整除的余数(即个位数)DIVDIVDIVDIV无符号数除法指令DIV(DIVision)格式:DIVOPRD功能:实现两个无符号二进制数除法运算说明:其中OPRD为任一个通用寄存器或存储器操作数字节相除,被除数在AX中字相除,被除数在DX,AX中,除数在OPRD中字节除法:(AL)<(AX)OPRD,(AH)<(AX)MODOPRD字除法:(AX)<(DX)(AX)OPRD,(DX)<(DX)(AX)MODOPRDIDIVIDIVIDIVIDIV带符号数除法指定IDIV(IntergerDIVision)格式:IDIVOPRD功能:这实现两个带符号数的二进制除法运算说明:其中OPRD为任一通用寄存器或存储器操作数理由与IMUL相同,只有IDIV指令,才能得到符号数相除的正确结果当被除数为位,在进行字节除法前,应把AL的符号位扩充至星尘易尘页码AH中在位除法时,若被除数为位,则应将AX中的符号位扩到DX中CBWCBWCBWCBW字节扩展指令CBW(ConvertBytetoWord)格式:CBW功能:将字节扩展为字,即把AL寄存器的符号位扩展到AH中说明:两个字节相除时,先使用本指令形成一个双字节长的被除数本指令不影响标志位示例:MOVAL,CBWIDIVBYTEPTRDATACWDCWDCWDCWD字扩展指令CWD(ConvertWordtoDoubleWord)格式:CWD功能:将字扩展为双字长,即把AX寄存器的符号位扩展到DX中说明:两个字或字节相除时,先用本指令形成一个双字长的的被除数本指令不影响标志位示例:在B、B、B字节类型变量中,分别存有们带符号数a、b、c,实现(a*bc)a运算。AADAADAADAAD未组合十进制数除法调整指令AAD(ASCIIAdjustforDivision)格式:AAD功能:在除法指令前对AX中的两个未组合十进制数进行调整,以便能用DIV指令实现两个未组合的十进制数的除法运算,其结果为未组合的十进制数,商(在AL中)和余数(在AH中)说明:AAD指令是在执行除法DIV之前使用的,以便得到二进制结果存于AL中,然后除以OPRD,得到的商在AL中,余数在AH中示例:MOVBL,MOVAX,HAAD(AL)<EHH=H,(AH)<DIVBL商=H>(AL),余数=H>(AH)ANDANDANDAND逻辑与运算指令AND格式:ANDOPRD,OPRD功能:对两个操作数实现按位逻辑与运算,结果送至目的操作数本指令可以进行字节或字的‘与’运算,OPRD<OPRDandOPRD说明:目的操作数OPRD为任一通用寄存器或存储器操作数源操作数OPRD为立即数,任一通用寄存器或存储器操作数示例:ANDAL,FH(AL)<(AL)ANDFHANDAX,BX(AX)<(AX)AND(BX)ANDDX,BUFFERSIBXANDBETABX,FFH注意:两数相与有一个数假则值为假OROROROR逻辑或指令OR格式:OROPRD,OPRD功能:OR指令完成对两个操作数按位的‘或’运算,结果送至目的操作数中,本指令可以进行字节或字的‘或’运算OPRD<OPRDOROPRD说明:其中OPRD,OPRD含义与AND指令相同,对标志位的影响也与AND指令相同两数相或,有一个数为真则值为真NOTNOTNOTNOT逻辑非运算指令NOT格式:NOTOPRD功能:完成对操作数按位求反运算(即变,变),说明:其中OPRD可为任一通用寄存器或存储器操作数星尘易尘页码结果关回原操作数本指梳令可以进行字或字节‘非’运算本指令不影响标志位XORXORXORXOR逻辑异或运算指令XOR格式:XOROPRD,OPRD功能:实现两个操作数按位‘异或’运算,结果送至目的操作数中OPRD<OPRDXOROPRD说明:其在OPRD、OPRD的含义与AND指令相同,对标志位的影响与与AND指令相同相异为真,相同为假TESTTESTTESTTEST测试指令TEST格式:TESTOPRD,OPRD功能:其中OPRD、OPRD的含义同AND指令一样,也是对两个操作数进行按位的'与'运算,唯一不同之处是不将'与'的结果送目的操作数,即本指令对两个操作数的内容均不进行修改,仅是在逻辑与操作后,对标志位重新置位说明:TEST与AND指令的关系,有点类似于CMP与SUB指令之间的关系SHLSHLSHLSHL逻辑左移指令SHL(Shiftlogicalleft)格式:SHLOPRD,COUNT功能:对给定的目的操作数左移COUNT次,每次移位时最高位移入标志位CF中,最低位补零说明:其中OPRD为目的操作数,可以是通用寄存器或存储器操作数COUNT代表移位的次数(或位数)移位一次,COUNT=移位多于次时,COUNT=(CL),(CL)中为移位的次数例如:SHLAL,SHLCX,SHLALFADI或者:MOVCL,SHLDX,CLSHLALFADI,CLSHRSHRSHRSHR逻辑右移指令SHR格式:SHROPRD,COUNT功能:本指令实现由COUNT决定次数的逻辑右移操作,每次移位时,最高位补,最低位移至标志位CF中说明:其中OPRD为目的操作数,可以是通用寄存器或存储器操作数COUNT代表移位的次数(或位数)移位一次,COUNT=移位多于次时,COUNT=(CL),(CL)中为移位的次数影响标志位OF,PF,SF,ZF,CFSALSALSALSAL算术左移指令SAL(ShiftArithmeticLeft)格式:SALOPRD,COUNT功能:其中OPRD,COUNT与指令SHL相同本指令与SHL的功能也完全相同,这是因为逻辑左移指令与算术左移指令所要完成的操作是一样的说明:其中OPRD为目的操作数,可以是通用寄存器或存储器操作数COUNT代表移位的次数(或位数)移位一次,COUNT=移位多于次时,COUNT=(CL),(CL)中为移位的次数SARSARSARSAR算术右移指令SAR格式:SAROPRD,COUNT说明:其中OPRD为目的操作数,可以是通用寄存器或存储器操作星尘易尘页码功能:本指令通常用于对带符号数减半的运算中,因而在每次右移时,保持最高位(符号位)不变,最低位右移至CF中数COUNT代表移位的次数(或位数)移位一次,COUNT=移位多于次时,COUNT=(CL),(CL)中为移位的次数ROLROLROLROL循环移位指令格式:ROLOPRD,COUNT不含进位标志位CF在循环中的左循环移位指令ROROPRD,COUNT不含进位示志位CF在循环中的右循环移位指令RCLOPRD,COUNT带进位的左循环移位指令RCROPRD,COUNT带进位的右循环移位指令说明:本指令组只影响标志CF、OFOF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=由于是循环移位,所以对字节移位次对字移位次,就可恢复为原操作数由于带CF的循环移位,可以将CF的内容移入,所以可以利用它实现多字节的循环RORRORRORROR循环移位指令格式:ROLOPRD,COUNT不含进位标志位CF在循环中的左循环移位指令ROROPRD,COUNT不含进位示志位CF在循环中的右循环移位指令RCLOPRD,COUNT带进位的左循环移位指令RCROPRD,COUNT带进位的右循环移位指令说明:本指令组只影响标志CF、OFOF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=由于循环移位,所以对字节移位次对字移位次,可恢复为原操作数RCLRCLRCLRCL循环移位指令格式:ROLOPRD,COUNT不含进位标志位CF在循环中的左循环移位指令ROROPRD,COUNT不含进位示志位CF在循环中的右循环移位指令RCLOPRD,COUNT带进位的左循环移位指令RCROPRD,COUNT带进位的右循环移位指令说明:本指令组只影响标志CF、OFOF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=由于是循环移位,所以对字节移位次对字移位次,就可恢复为原操作数由于带CF的循环移位,可以将CF的内容移入,所以可以利用它实现多字节的循环RCRRCRRCRRCR循环移位指令格式:ROLOPRD,COUNT不含进位标志位CF在循环中的左循环移位指令ROROPRD,COUNT不含进位示志位CF在循环中的右循环移位指令RCLOPRD,COUNT带进位的左循环移位指令RCROPRD,COUNT带进位的右循环移位指令说明:本指令组只影响标志CF、OFOF由移入CF的内容决定,OF取决于移位一次后符号位是否改变,如改变,则OF=由于是循环移位,所以对字节移位次对字移位次,就可恢复为原操作数由于带CF的循环移位,可以将CF的内容移入,所以可以利用它实现多字节的循环注意:以上程序中的指令SHRAL,CL如改为SARAL,CL,虽然最高位可移入低位,但最高位不为,故应加入一条指令ANDAL,FH否则,若最高位不为时,将得到错误结果JMPJMPJMPJMP无条件转移指令JMP格式:JMPOPRD说明:其中OPRD为转移的目的地址程序转移到目的地址所指向的指星尘易尘页码功能:JMP指令将无条件地控制程序转移到目的地址去执行当目的地址仍在同一个代码段内,称为段内转移当目标地址不在同一个代码段内,则称为段间转移这两种情况都将产生不同的指令代码,以便能正确地生成目的地址,在段内转移时,指令只要能提供目的地址的段内偏移量即够了而在段间转移时,指令应能提供目的地址的段地址及段内偏移地址值令继续往下执行本组指令对标志位无影响<>段内直接转移指令:JMPNEAR标号<>段内间接转移指令:JMPOPRD<>段间直接转移指令:JMPFAR标号<>段间间接转移指令:JMPOPRD其中的OPRD为存储器双字操作数段间间接转移只能通过存储器操作数来实现JCJCJCJC条件转移指令JC格式:JC标号功能:CF=,转至标号处执行说明:JC为根据标志位CF进行转移的指令JNCJNCJNCJNC条件转移指令JNC格式:JNC标号功能:CF=,转至标号处执行说明:JNC为根据标志位CF进行转移的指令JEJEJEJE条件转移指令JEJZ格式:JEJZ标号功能:ZF=,转至标号处执说明:指令JE与JZ等价,它们是根据标志位ZF进行转移的指令JE,JZ均为一条指令的两种助记符表示方法JZJZJZJZ条件转移指令JEJZ格式:JEJZ标号功能:ZF=,转至标号处执说明:指令JE与JZ等价,它们是根据标志位ZF进行转移的指令JE,JZ均为一条指令的两种助记符表示方法JNEJNEJNEJNE条件转移指令JNEJNZ格式:JNEJNZ标号功能:ZF=,转至标号处执行说明:指令JNE与JNZ等价,它们是根据标志位ZF进行转移的指令JNE,JNZ均为一条指令的两种助记符表示方法JNZJNZJNZJNZ条件转移指令JNEJNZ格式:JNEJNZ标号功能:ZF=,转至标号处执行说明:指令JNE与JNZ等价,它们是根据标志位ZF进行转移的指令JNE,JNZ均为一条指令的两种助记符表示方法JSJSJSJS条件转移指令JS格式:JS标号功能:SF=,转至标号处执行说明:JS是根据符号标志位SF进行转移的指令JNSJNSJNSJNS条件转移指令JNS格式:JNS标号功能:SF=,转至标号处执行说明:JNS是根据符号标志位SF进行转移的指令星尘易尘页码JOJOJOJO条件转移指令JO格式:JO标号功能:OF=,转至标号处执行说明:JO是根椐溢出标志位OF进行转移的指令JNOJNOJNOJNO条件转移指令JNO格式:JNO标号功能:OF=,转至标号处执行说明:JNO是根椐溢出标志位OF进行转移的指令JPJPJPJP条件转移指令JPJPE格式:JPJPE标号功能:PF=,转至标号处执行说明:指令JP与JPE,它们是根据奇偶标志位PF进行转移的指令JP,JPE均为一条指令的两种助记符表示方法JPEJPEJPEJPE条件转移指令JPJPE格式:JPJPE标号功能:PF=,转至标号处执行说明:指令JP与JPE,它们是根据奇偶标志位PF进行转移的指令JP,JPE均为一条指令的两种助记符表示方法JNPJNPJNPJNP条件转移指令JNPJPO格式:JNPJPO标号功能:PF=,转至标号处执行说明:指令JNP与JPO,它们是根据奇偶标志位PF进行转移的指令JNP,JPO均为一条指令的两种助记符表示方法JPOJPOJPOJPO条件转移指令JNPJPO格式:JNPJPO标号功能:PF=,转至标号处执行说明:指令JNP与JPO,它们是根据奇偶标志位PF进行转移的指令JNP,JPO均为一条指令的两种助记符表示方法JAJAJAJA条件转移指令JAJNBE格式:JAJNBE标号功能:为高于不低于等于的转移指令说明:例如两个符号数a,b比较时,a>b(即CF=,ZF=)时转移因为单一标志位CF=,只表示a>=bJAJNBE是同一条指令的两种不同的助记符该指令用于无符号数进行条件转移JNBEJNBEJNBEJNBE条件转移指令JAJNBE格式:JAJNBE标号功能:为高于不低于等于的转移指令说明:例如两个符号数a,b比较时,a>b(即CF=,ZF=)时转移因为单一标志位CF=,只表示a>=bJAJNBE是同一条指令的两种不同的助记符该指令用于无符号数进行条件转移JAEJAEJAEJAE条件转移指令JAEJNB格式:JAEJNB标号说明:JAEJNB是同一条指令的两种不同的助记符星尘易尘页码功能:为高于等于不低于的转移指令该指令用于无符号数进行条件转移JNBJNBJNBJNB条件转移指令JAEJNB格式:JAEJNB标号功能:为高于等于不低于的转移指令说明:JAEJNB是同一条指令的两种不同的助记符该指令用于无符号数进行条件转移JBJBJBJB条件转移指令JBJNAE格式:JBJNAE标号功能:低于不高于等于时转移说明:该指令用于无符号数的条件转移JNAEJNAEJNAEJNAE条件转移指令JBJNAE格式:JBJNAE标号功能:低于不高于等于时转移说明:该指令用于无符号数的条件转移JBEJBEJBEJBE条件转移指令JBEJNA格式:JBEJNA标号功能:低于等于不高于时转移说明:该指令用于无符号数的条件转移JNAJNAJNAJNA条件转移指令JBEJNA格式:JBEJNA标号功能:低于等于不高于时转移说明:该指令用于无符号数的条件转移JGJGJGJG条件转移指令JGJNLE格式:JGJNLE标号功能:大于不小于等于时转移说明:用于带符号数的条件转移指令JNLEJNLEJNLEJNLE条件转移指令JGJNLE格式:JGJNLE标号功能:大于不小于等于时转移说明:用于带符号数的条件转移指令JGEJGEJGEJGE条件转移指令JGEJNL格式:JGEJNL标号功能:大于等于不小于时转移说明:用于带符号数的条件转移指令JNLJNLJNLJNL条件转移指令JGEJNL格式:JGEJNL标号功能:大于等于不小于时转移说明:用于带符号数的条件转移指令JLJLJLJL条件转移指令JLJNGE格式:JLJNGE标号功能:小于不大于等于时转移说明:用于带符号数的条件转移指令JNGEJNGEJNGEJNGE条件转移指令JLJNGE格式:JLJNGE标号功能:小于不大于等于时转移说明:用于带符号数的条件转移指令JLEJLEJLEJLE条件转移指令JLEJNG格式:JLEJNG标号功能:小于等于不大于时转移说明:用于带符号数的条件转移指令星尘易尘页码JNGJNGJNGJNG条件转移指令JLEJNG格式:JLEJNG标号功能:小于等于不大于时转移说明:用于带符号数的条件转移指令LOOPLOOPLOOPLOOP循环控制指令LOOP格式:LOOP标号功能:(CX)<(CX),(CX)<>,则转移至标号处循环执行,直至(CX)=,继续执行后继指令说明:本指令是用CX寄存器作为计数器,来控制程序的循环它属于段内SHORT短类型转移,目的地址必须距本指令在到个字节的范围内LOOPZLOOPZLOOPZLOOPZ循环控制指令LOOPZLOOPE格式:LOOPZLOOPE标号功能:(CX)<(CX),(CX)<>且ZF=时,转至标号处循环说明:本指令是用CX寄存器作为计数器,来控制程序的循环它属于段内SHORT短类型转移,目的地址必须距本指令在到个字节的范围内以上两种助记符等价LOOPELOOPELOOPELOOPE循环控制指令LOOPZLOOPE格式:LOOPZLOOPE标号功能:(CX)<(CX),(CX)<>且ZF=时,转至标号处循环说明:本指令是用CX寄存器作为计数器,来控制程序的循环它属于段内SHORT短类型转移,目的地址必须距本指令在到个字节的范围内以上两种助记符等价LOOPNZLOOPNZLOOPNZLOOPNZ循环控制指令LOOPNZLOOPNE格式:LOOPNZLOOPNE标号功能:(CX)<(CX),(CX)<>且ZF=时,转至标号处循环说明:本指令是用CX寄存器作为计数器,来控制程序的循环它属于段内SHORT短类型转移,目的地址必须距本指令在到个字节的范围内以上两种助记符等价LOOPNELOOPNELOOPNELOOPNE循环控制指令LOOPNZLOOPNE格式:LOOPNZLOOPNE标号功能:(CX)<(CX),(CX)<>且ZF=时,转至标号处循环说明:本指令是用CX寄存器作为计数器,来控制程序的循环它属于段内SHORT短类型转移,目的地址必须距本指令在到个字节的范围内以上两种助记符等价CALLCALLCALLCALL过程调用指令CALL格式:CALLOPRD功能:过程调用指令说明:其中OPRD为过程的目的地址过程调用可分为段内调用和段间调用两种寻址方式也可以分为直接寻址和间接寻址两种本指令不影响标志位RETRETRETRET返回指令RET格式:RET说明:由于在过程定义时,已指明其近星尘易尘页码功能:当调用的过程结束后实现从过程返回至原调用程序的下一条指令,本指令不影响标志位(NEAR)或远(FAR)的属性,所以RET指令根据段内调用与段间调用,执行不同的操作对段内调用:返回时,由堆栈弹出一个字的返回地址的段内偏移量至IP对段外调用:返回时,由堆栈弹出的第一个字为返回地址的段内偏移量,将其送入IP中,由堆栈弹出第二个字为返回地址的段基址,将其送入CS中MOVSMOVSMOVSMOVS字符串传送指令MOVS格式:MOVSOPRD,OPRDMOVSBMOVSW功能:OPRD<OPRD说明:其中OPRD为源串符号地址,OPRD为目的串符号地址字节串操作:若DF=,则作加,若DF=,则作减对字串操作时:若DF=,则作加,若DF=,则作减,在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送格式为MOVSW本指令不影响标志位MOVSBMOVSBMOVSBMOVSB字符串传送指令MOVS格式:MOVSOPRD,OPRDMOVSBMOVSW功能:OPRD<OPRD说明:其中OPRD为源串符号地址,OPRD为目的串符号地址字节串操作:若DF=,则作加,若DF=,则作减对字串操作时:若DF=,则作加,若DF=,则作减,在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送格式为MOVSW本指令不影响标志位MOVSWMOVSWMOVSWMOVSW字符串传送指令MOVS格式:MOVSOPRD,OPRDMOVSBMOVSW功能:OPRD<OPRD说明:其中OPRD为源串符号地址,OPRD为目的串符号地址字节串操作:若DF=,则作加,若DF=,则作减对字串操作时:若DF=,则作加,若DF=,则作减,在指令中不出现操作数时,字节串传送格式为MOVSB、字串传送格式为MOVSW本指令不影响标志位CMPSCMPSCMPSCMPS字符串比较指令格式:CMPSOPRD,OPRDCMPSBCMPSW说明:其中OPRD为源串符号地址,OPRD为目的串符号地址星尘易尘页码功能:由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身同时SI,DI将自动调整本指令影响标志位AF、CF、OF、SF、PF、ZF本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较CMPSBCMPSBCMPSBCMPSB字符串比较指令格式:CMPSOPRD,OPRDCMPSBCMPSW功能:由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身同时SI,DI将自动调整说明:其中OPRD为源串符号地址,OPRD为目的串符号地址本指令影响标志位AF、CF、OF、SF、PF、ZF本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较CMPSWCMPSWCMPSWCMPSW字符串比较指令格式:CMPSOPRD,OPRDCMPSBCMPSW功能:由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,比较结果送标志位,而不改变操作数本身同时SI,DI将自动调整说明:其中OPRD为源串符号地址,OPRD为目的串符号地址本指令影响标志位AF、CF、OF、SF、PF、ZF本指令可用来检查二个字符串是否相同,可以使用循环控制方法对整串进行比较与MOVS相似,CMPS指令也可以不使用操作数,此时可用指令CMPSB或CMPSW分别表示字节串比较或字串比较SCASSCASSCASSCAS字符串搜索指令SCAS格式:SCASOPRDSCASBSCASW功能:把AL(字节串)或AX(字串)的内容与由DI寄存器寻址的目的串中的数据相减,结果置标志位,但不改变任一操作数本身地址指针DI自动调整说明:

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/22

VIP

意见
反馈

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利