版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、星尘易尘汇编指令大全零、状态奇存器1MOVE数据传送指令MOV格式:MOV OPRD1, OPRD2功能:本指令将一个源操作数送到日的操作数 中即 OPRDKOPRD2.说明:1. 0PRD1为冃的操作数,可以是 寄存器、存储器.累加器.OPRD2为源操作数,町以是寄存 器、存储器、累加器和立即数.2. MOV指令以分为以下四种情 况:1寄存器与寄存器Z间的数据 传送指令立即数到通用寄存器数据传 送指令,3寄存器与存储器之间的数据 传送指令立即数到存储器的数据传送3. 本折令不影响状态标志位2PUSH堆栈操作指令PUSH和POP格式:PUSH OPRDPOP OPRD功能:实现压入操作的指令足
2、PUSH指令;实现弹出 操作的指令是POP指令.W1. OPRD为16位(字)操作数,可以 足寄存器或存储器操作数.2. PUSH的操作过程是:(SPX (SP)-2, (sp)OPRD 即先修 改堆栈指针SP(压入时为fl动减2),然后,将指定的操作数送入新 的栈顶位置.此处的(SP)OPRD,也可以理 解为:(SS)*16-(SP)一OPRD 或SS:SP一OPRD3POP堆栈操作指令PUSH和POP格式:PUSH OPRDPOP OPRD功能:实现压入操作的抬令足PUSII指令;实现弹出 操作的指令是POP指令.说明:1. OPRD为16位(字)操作数,可以 足寄存器或存储器操作数.2.
3、 POP指令的操作过程是:POP OPRD:OPRD(SP), (SP) - (SP)+2它与压入操作相反,是先弹出栈 顶的数顶,然后再修改指针SP的 内容.3. 示例:POP AXPOP DSPOP DATA1 POP ALFABXDI4. PUSH和POP指令对状态标志位 没有影响.4XCHG数拥交换指令XCHG格式:XCHG OPRD1, OPRD2其中的OPRD1为目的操作 数,0PRD2为源操作数功能:将两个操作数相W交换位置,该指令把源操 作数OPRD2与目的操数OPRD1交换.说明:1. 0PRD1及OPRD2nf为通用寄存 器或存储器,但足两个存储器Z 间是不能用XCHG指令实
4、现的.2. 段寄存器内容不能用XCHG指 令來交换.3. 若要实现两个存储器操作数 DATA1及DATA2的交换,可用以下 指令实现示例:PUSH DATA1PUSH DATA2POP DATA1POP DATA24.本指令不影响状态标志位.5XLAT査表指令XLAT格式:XLAT TABLEH中TABLE为一待査表格的首地 址.功能:把待査表格的一个字节内容送到AL累加器 中.说明:1. 在执行该指令询,应将TABLE 先送至BX寄存器中.然后将待* 字节与在表格中距表首地址位移 吐送AL,即(AL) (BX) +(AL).2. 本指令不影响状态标位,表格 长度不超过256字节.6LAHF标
5、志传送指令LAHF格式:LAHF功能:取FLAG标志寄存器低8位至AH寄存器.(AHX-(FLAG) 70说明:该指令不影响FLAG的原来 内容,AH只是U制了原FLAG的低8 位内容.7SAHF标志传送指令SAHF格式:SAHF功能:将AH存至FLAG低8位说明:*指令将用AH的内容妇 FLAG标志寄存器中的SF. ZF、 AF. PF、和CF标志从而改变原 来的标志位.8PUSHF标念传送指令PUSHF格式:PUSHF功能:本指令可以把标志寄存器的内容保存到堆栈 中去9P0PF标志传送指令POPF格式:POPF功能:本指令的功能9PUSHF相反,在了程序调用和 中断服务程序4,往往用PUS
6、HF指令保护FLAG的内 容,用P0PF指令将保护的FLAG内容恢复.说明:如果对堆栈中的原FLAG内 容进行修改,如对TF等标志位进 行修改,然后再弹回标志位寄存 器FLAG 这是通过指令修改TF标 志的唯一方法10LEA有效地址传送指令LEA格式:LEA 0PRD1,0PRD2功能:将源操作数给出的仃效地址传送到指定的的 寄存器中.说明:1. 0PRD1为目的操作数,可为任 意一个16位的通用寄存器.0PRD2为源操作数,叮为变戢 爼、标号或地址表达式.示例:LEA BX, DATA1LEA DX, BETABX+SILEA BX BX, BP, DI2. 本指令对标志位无影响。11LDS
7、从存储器取出32位地址的指令LDS格式:LDS OPRD1, OPRD2功能:从存储器取出32位地址的指令.说明:0PRD1为任意一个16位的寄存 器.0PRD2为32位的存储器地址.示例:LDS SI, ABCDLDS BX, FAST LSILDS DI, BX注意:上面LDS DI, BX指令的 功能足把BX所指的32位地址指针 的段地址送入DS,偏移地址送入DI.12LES从存储器取出32位地址的指令LES格式:LES 0PRD1,0PRD2功能:从存储器取出32位地址的指令.说明:OPRD1为任意一个16位的寄存 器OPRD2为32位的存储器地址.示例:LES SI,ABCDLES
8、BX, FASTSILES DI, BX注意:上而LES DI, BX指令的 功能是把BX所指的32位地址指针 的段地址送入ES,偏移地址送入 DI.13ADD加法指令 ADD (Addition)格式:ADD 0PRD1, OPRD2功能:两数相加说明:1. 0PRD1为任-通用寄存器或存 储器操作数,町以是任意一个通 用寄存器,而11还可以足任意一 个存储器操作数.OPRD2为立即数也可以是任意一 个通用寄存器操作数立即数只 能用于源操作数.2. 0PRD1和OPRD2均为寄存器是 允许的,一个为寄存器而另一个 为存储器也是允许的,但不允许 两个都是存储器操作数.3加法折令运算的结果对CF
9、、 SF、OF、PF、ZF、AF都会有影 响次上标志也称为结果标志加 法指令适用于无符号数或冇符号 数的加法运算14ADC帶进位加法指令ADC (Addition Carry)格式:ADC 0PRD1, 0PRD2功能:OPRDKOPRD1 + OPRD2 + CF说明:1. 0PRD1为任i通用寄存器或存 储器操作数叮以是任意一个通 用寄存器,而且还町以是任意一 个存储器操作数.OPRD2为立即数,也町以圧任意一 个通用寄存器操作数立即数只 能用于源操作数.20PRD1和OPRD2均为寄存器是 允许的,一个为寄存器而另一个 为存储器也是允许的,但不允许 两个都是存储器操作数.3.加法指令运算
10、的结果对CF、 SF、OF、PF、ZF. AF都会有影 响以上标志也称为结果标志1.该指令对标志位的彩响同ADD 指令.15INC加 1 指令 INC(INCrement by 1)格式:INC OPRD功能:OPRDOPRD+1说明:1. 0PRD为寄存器或存储器操作 数.2. 这条指令执行结果影响AF、 OF、PF、SF、ZF标志位,但不影 响CF标志位.页码.4/22星尘易尘16 AAA未组介的I进制加法调整指令AAA (ASCII Adgust for Addition)恪式:AAA功能:对两个组合的十进制数相加运算(存在AL中) 的结果进行调整产生一个未组介的十进制数放在 AX中.1
11、7DAA组介的I进制加法调整描令DAA(Decimal Adjust for Addition)恪氏:DAA功能:对AL中的两个组介进制数相加的结果进行调 整,涮整结果仍放在AL中,进位标志放在CF屮.299 SUB减法指令 SUB(SUBtract)300 S3B格式:SUB 0PRD1, OPRD2功能:两个操作数的相减,即从OPRD1中减去0PRD2, 英结果放在OPDR1中.帶借位减去指令 SBB(SuBtraction with Borrow)格式:SBB OPRD1, OPRD2功能:是进行两个操作数的相减I:F位标志位,即从0PRDK-0PRD1-0PRD2-CF, K结果放在O
12、PDR301 DEC3.示例:INC SI;(SI)(SI)+1INC WORD PTRBXINC BYTE PTRBX+DIINC CL;(CL)9 或 AF=lt 则 调整如下:(ALX(AL)+6, (AHX(AH)+1.AF=1,CFAF, (AL) 9 或 AF=1 ,贝|J(AL)(AL)*6,AF90H 或 CF=1,则(AL) (AL) +60H, CF 1.2示例:(AL)二 18H, (BL)=06H ADD AL, BL ; (AL)(AL) + (BL) (AL)=1EHDAA ; (AL)示例 SUB DX, CXSUB BX*25,AXSUB DI,ALFASISU
13、B CL, 20SUB DATA1DIBX,2OA5H w;示例 SBB DX, CXSBB AX, DATA1SBB BX, 2000HSBB ALFABX+SIfSISBB BETAPDI, 030AH恪式:DEC OPRD功能:OPRD 9 或 AF二1则(ALX(AL)-6, (AH) (AH)-1,CF 9 或 AF=1, 则(ALX(AL)-6, AF=1若(AL) and OFOH 90H 或 CF二1,则(ALX(AL)-60, CF=1306MUL无符号数乘法指令MUL(MULtiply)格式:MIL 0PRD功能:乘法操作.说明:1. OPRD为通用寄存器或存储器 操作数.
14、2. OPRD为源操作数,即作乘数.LI的操作数圧隐含的,即被乘数 总绘指定为累加器AX或AL的内 容.3. 16位乘法时,AX中为被乘数8 位乘法时.AL为被乘数当16位乘 法时,32位的乘积存于DX及AX中;8位乘法的16位乘枳存于朋中1.操作过程:字节相乘:(AX) - -(AL)*OPRD,当结果的高位字IV (AH)不等于0时则CF=1. OF=1307IMUL带符号数乘法指令IMUL(Integer MULtiply)格式:IMUL OPRD功能:完成购个带符号数的相乘说明:1其中OPRD为任一通用寄存器 或存储器操作数.2. MUL指令对带符号相乘时,不 能得到正确的结果.例如:
15、(AL)二255(CL)=255MUL CL(AX)=65025注意:这对无符号数讲,结果是 正确的但对带符号数讲,相当于 (-1)*(-1)结果应为+1,而65025 对应的带符号数为-511,然是 不正确的.30SAAM未组合卜进制数乘法调整垢令AAM(ASCII Adjust MULtiply)格式:AAM功能:对两个未组合的1进制数和乘后存于AX中的 结果进行调整产生一个未组合的十进制数存在AL 中.说明:1. 实际上是两个未组合的十进 制数字节相乘,一个09的数与 另-个09的数相乘其枳垠大为 81 为了得到正确的结果应进行 如下调整:乘枳:(AH)一 (AL)/10(AL) (AL
16、) MOD 102. 本指令应跟在MUL指令后使 用,乘积的两位1进制结果価位 放在AH中,低位放在AL中 AH内容 是MUL指令的结果被10除的商即 (AL)/10,而最肓的AL内容是乘积 被10整除的余数(即个位数).309DIV无符号数除法指令DIV (DiVision)格式:DIV OPRD功能:实现两个无符号一进制数除法运算.说明:1.其中OPRD为任一个通川寄存 器或存储器操作数.2了节相除,被除数在AX中;7 相除,被除数徃DX,AX中,除数在 OPRD 中.宁节除法:(AL) (AX)/OPRD,(AH) (AX) MOD OPRD字除法:(AX) (DX)(AX)/OPRD,
17、 (DX) (DX) (AX)MOD OPRD310IDIV帶符号数除法指定IDIV仃nterger DiVision)格式:IDIV OPRD功能:这实现两个带符号数的一进制除法运算.说明:1. 其中OPRD为任一通用寄存器 或存储器操作数.2. 理由与IMUL相同,只冇IDIV播 令,才能得到符号数相除的正确 结果.3. 当被除数为8位,在进行孑节 除法询,血把AL的符号位扩充至AH中.在16位除法时,若被除数为 16位.则应将AX中的符号位扩到 DXU1-311CBW字节扩展指令 CBW(Convert Byte to Word)格式:CBW功能:将字节扩展为字,即1CAL寄存器的符号位
18、扩 展到AH中.说明:1. 两个字节相除时,先使用本指 令形成一个双字卩长的被除数.2. 本指令不影响标志位.3. 示例:MOV AL, 25CBWIDIV BYTE PTR DATA1312CWD字扩展指令 CWD (Convert Word to Double Word) 格式:CWD功能:将字扩展为双字长,即把AX寄存器的符号位 扩展到DX中.说明:1. 两个7或7节相除时,先用木 抬令形成-个双?长的的被除 数.2. 本折令不影响标志位.3. 示例:在Bl、B2、B3字节类 刘变量中,分别存有8们带符号数 a. b、c,实现(a*b+c)/a运算.313AAD未组合十进制数除法调整指令
19、AAD(ASCII Adjust for Division)格式:AAD功能:在除法指令前对AX中的两个未组介十进制数 进行调整,以便能JIJDIVffi令实现两个未组介的I进 制数的除法运算其结果为未组合的十进制数,商 (在AL中)和余数(在AH中).说明:1. AAD指令是在执行除法DIV之 询使用的,以便得到二进制结果 存于AL中,然后除以OPRD,得到的 商在AL中,余数在AH中.2. 示例:MOV BL, 5MOV AX, 0308HAAD ;(AL)1EH+O8H=26H, (AH) (AL)t 余数 =03HXAH).314AND逻辑与运算指令AND格式:AXD OPRDL OP
20、RD2功能:対两个操作数实现按位逻轲与込/结果送 至目的操作数本指令可以进行字节或字的ilj9 运算,OPRDK0PRD1 and 0PRD2.说明:1. H的操作数0PRD1为任一通用 寄存器或存储器操作数源操作 数0PRD2为立即数,任一通用寄存 器或存储器操作数.2. 示例:AND AL, OFH ; (AL) 一 (AL) AND OFHAND AX, BX ;(AX)(AX) AXD (BXAND DX, BUFFERSI+BXAND BETABX,OOFFH注意:两数相与,有一个数假则 值为假315OR逻笹或指令OR格式:OR OPRD1, 0PRD2功能:OR指令完成对两个操作数
21、按位的或运 算结果送至冃的操作数中本指令可以进行字节或 了的或运算.OPRDK0PRD1 OR OPRD2.说明:1其中0PRD1, 0PRD2含义与AND 指令柑同,对标忑位的影响也9 AND指令和同.2.两数相或,冇一个数为真则值 为真.316NOT逻辑非坛算指令NOT格式:NOT OPRD功能:完成对操作数按位求反运算(叩0变1,1变0),说明:1.其中OPRDuf为任一通用寄存 器或存储器操作数.结果关回原操作数.2. 本指梳令町以进行字或字卄 非运算.3. 本指令不影响标志位.317X0R逻辑耳或运算指令XOR格式:XOR OPRD1, OPRD2功能:实现两个操作数按位界或运算,结
22、果送 至目的操作数中.OPRDKOPRD1 XOR OPRD2说明:1. 其右2PRD1、OPRD2的含义号 AND指令相同,对标志位的影响与 与AND指令相同.2. 相异为真,相同为假.318TEST测试指令TEST格式:TEST OPRD1, OPRD2功能:其中OPRD1、0PRD2的含义同AND指令一样也 是对两个操作数进行按位的与运算唯一不同之 处是不将与的结果送LI的操作数即本指令对两个操作数的内容均 不进行修改仅是在逻碌打操作后对标志位眞新賈 位.说明:TEST与AND指令的关系,有 点类似FCMP与SUB指令Z间的关 系.319SHL逻辑左移指令 SHL (Shift logi
23、cal left)格式:SHL OPRD1, COUNT功能:对给定的11的操作数心移COUNT次,每次移位 时垠高位移入标志位CF中,最低位补零.说明:1其中0PRD1为冃的操作数,可 以足通用寄存器或存储器操作 数.2. COUNT代表移位的次数(或位 数)移位次,COUNT=1;移位多 于次时,COUNT=(CL), (CL)中为 移位的次数.3. 例如:SHL AL, 1SHL CX, 1SHL ALFADI或者:MOV CL, 3SHL DX, CLSHL ALFA DI, CL320SHR逻辑右移指令SHR格式:SHR OPRD1, COUNT功能:本指令实现山COUNT决怎次数的
24、逻侏右移操 作,每次移位时,显髙位补0,垃低位移至标志位CF 中.说明:1. 其中OPRD1为目的操作数,可 以是通用寄存器或存储器操作 数.2. COUNT代表移位的次数(或位 数)移位一次,COUNT二1;移位多 于次时,COUNT=(CL), (CL)中为 移位的次数.3. 影响标志位OF, PF, SF, ZF, CF.321SAL算术左移指令 SAL (Shift Arithmetic Left)格式:SAL OPRD1, COUNT功能:其中OPRDl, COUNTS指令SHL相同.本指令9SHL的功能也完全相同,这是因为逻轲左移指令与算 术左移折令所要完成的操作是一样的.说明:1
25、. 其中0PRD1为目的操作数,可 以足通用寄存器或存储器操作 数.2. COUNT代表移位的次数(或位 数)移位次,COUNT二1;移位多 J 1 次时,COUNT二(CL), (CL)屮为 移位的次数.322SAR算术右移指令SAR格式:SAR OPRD1, COUNT说明:1其中OPRD1为目的操作数可 以足通用寄存器或存储器操作功能:本指令通常用于对带符号数减半的运算中, 因而在每次右移时,保持最高位(符号位)不变,最低 位右移至。艮中数.2COUNT代农移位的次数(或位 数)移位一次,COUNT二1;移位多 于次时,COUNT=(CL), (CL)中为 移位的次数.323ROL循坏移
26、位指令格式:ROL 0PRD1, COUNT ;不禽进位标志位CF在循 环中的左循环移位折令.ROR OPRD1, COUNT ;不含进位示志位CF在循环中的 右循环移位指令.RCL OPRD1, COUNT ;帯进位的左循坏移位指令.RCR OPRD1, COUNT ;带进位的右循环移位指令.说明:1.本指令组只影响标志CF、 OF. OF 11移入CF的内容决定,OF1R 决于移位一次后符号位是否改 变.如改变,则OF=1.2由丁圧循环移位,所以对字节 移位8次;对字移位16次就可恢 复为原操作数由于带CF的循坏 移位,可以将CF的内容移入, 所以可以利用它实现多字卩的循 环.321ROR
27、循环移位指令格式:ROL OPRD1, COUNT ;不含进位标志位CF在循环中的 左循环移位指令.ROR OPRD1, COUNT ;不含进位示志位CF住循环屮的 右循环移位指令.RCL OPRD1. COUNT ;带进位的左循环移位指令.RCR OPRD1, COUNT ;帯进位的右循环移位折令.说明:1. 本指令组只影响标志CF、OF. OF由移入CF的内容决定,OF取 决于移位一次后符号位足否改 变,如改变,则OF二12. 由于循环移位,所以对字节移 位8次;对7移位16次恢父为 原操作数.325RCL循环移位指令恪式:ROL OPRD1, COUNT ;不含进位标占位CF在循 环中的
28、左循坏移位指令.ROR OPRDt COUNT ;不倉进位示志位CF在循环中的 右循环移位指令.RCL OPRD1, COUNT ;带进位的左循环移位指令.RCR OPRD1, COUNT ;带进位的右循环移位指令.说明:1. 本指令组只影响标志CF、OF. OF由移入CF的内容决定,OF取 决于移位一次后符号位是否改 变,如改变,则OF二12. 由于是循环移位,所以对字节 移位8次;对7移位16次,就可恢 复为原操作数.由于带CF的循环 移位,可以将CF的内容移入,所以可以利用它实现多了节的循 环.326RCR循坏移位指令恪式:ROL OPRD1, COUNT ;不禽进位标志位CF在循 环屮
29、的左循坏移位指令.ROR OPRD1, COUNT ;不含进位示志位CF在循环屮的 右循环移位指令.RCL OPRD1, COUNT ;带进位的左循环移位指令.RCR OPRD1, COUNT ;帯进位的右循环移位指令.说明:1. 本指令组只影响标志CF、OF. OF由移入CF的内容决定,OF取 决于移位一次后符号位是否改 变,如改变,则OF=1.2. 由于是循环移位,所以对字节 移位8次;对字移位16次,就nJ恢 父为廉操作数宙于带CF的循环 移位,可以将CF的内容移入,所以 可以利用它实现多字节的循坏.注意:以上程序中的指令SHR AL,CL如改为SAR AL,CL虽然最移入低4位,但最髙
30、位不为0,故应加入一条折令AND AU0 FH.否则,若最奇位不为0时,将得 到错误结果.327JMP无条件转移指令JMP格式:JMP OPRD说明:1.其中OPRD为转移的目的地址. 用序转移到H的地址所指向的指功能:JMP指令将无条件地控制稈序转移到冃的地 址去执行十冃的地址仍在同一个代码段内,称为段 内转移;“口标地址不在同个代码段内,则称为段 间转移这两种情况都主不同的指令代码以便 能iE确地牛成冃的地址,在 段内转移时,指令只要 能提供FI的地址的段内偏移就即够了;而在段间转 移时,指令应能提供的地址的段地址及段内偏移 地址值.令继续往下执行.2. 本组指令对标志位无彫响.3. 段内
31、K接转移指令:JMP NEAR标号段内间接转移指令:JMPOPRD段间直接转移指令:JMP FAR标号段间间接转移折令:JMP OPRD其屮的0PRD为“储器双7操 作数段间间接转移只能通过存 储器操作数来实现.328JC条件转移指令JC格式:JC标号功能:CF=1,转至标号处执行说明:JC为根据标志位CF进行转 移的指令329JNC条件转移指令JNC格式:JNC标号功能:CF=0,转至标号处执行说明:JNC为根据标志位CF进行转移的指令330JE条件转移指令JE/JZ格式:JE/JZ标号功能:ZF=1,转至标号处执说明:1. 指令JE与JZ等价,它们是根据 标志位ZF进行转移的指令2. JE
32、, JZ均为一条指令的两种助 记符表示方法331JZ条件转移指令JE/JZ格式:JE/JZ标号功能:ZF=1,转至标号处执说明:1. 指令JE与JZ等价,它们是根据 标志位ZF进行转移的指令2. JE,JZ均为一条指令的两种助 记符表示方法332JNE条件转移指令JNE/JNZ格式:JNE/JNZ标号功能:ZF=0,转至标号处执行说明:1. 折令JNE与JNZ等价,它们是根 据标志位ZF进行转移的指令2. JNE, JNZ均为一条指令的两种 助记符表示方法333JNZ条件转移指令JNE/JNZ格式:JNE/JNZ标号功能:ZF=0,转至标号处执行说明:1. 指令JNE与JNZ等价,它们是根 据
33、标志位ZF进行转移的折令2. JNE,JNZ肉为一条指令的两种 助记符表示方法331JS条件转移指令JS格式:JS标号功能:SF=1,转至标号处执行说明:JS是根据特号标志位SF进行转移的指令335JNS条件转移指令JNS格式:JNS标号功能:SF=0,转至标号处执行说明:JNS是根据符号标志位SF 进行转移的指令336J0条件转移指令JO格武:JO标号功能:OF=1,转至标号处执行说明:JO是根据溢出标志位OF进 行转移的指令337JNO条件转移指令JNO格式:JNO标号功能:OF = O,转至标号处执行说明:JNO足根机溢出标志位OF 进行转移的指令338JP条件转移指令JP/JPE格式:
34、JP/JPE标号功能:PF=1,转至标号处执行说明:1. 指令JP与JPE,它们是根据奇 偶标志位PF进行转移的指令2. JP, JPE均为一条指令的两种 助记符表示方法339JPE条件转移指令JP/JPE格式:JP/JPE标号功能:PF=1,转至标号处执行说明:1. 指令JP与JPE,它们是根据奇 偶标志位PF进行转移的指令2. JP, JPE均为一条指令的两种 助记符表示方法310JNP条件转移指令JNP/JPO格式:JNP/JPO标号功能:PF=O,转至标号处执行说明:1. 指令JNP与JP0,它们是根据奇 偶标志位PF进行转移的指令2. JNP,JPO均为条折令的两种 助记符表示方法3
35、11JP0条件转移指令JNP/JPO格式:JNP/JPO标号功能:PF=O,转至标号处执行说明:1. 指令JNP与JPO,它们是根据奇 偶标志位PF进行转移的指令2. JNP, JPO均为一条拆令的两种 助记符表示方法312JA条件转移指令JA/JNBE格式:JA/JNBE标号功能:为髙于/不低于等于的转移指令说明:1. 例如两个符号数a, b比较时.ab (即CF二0. ZF二0)时转移內 为巾 一标志位CF=O,只義示a=b2. JA/JNBE是同一条指令的两种 不同的助记符.3. 该指令用于无符号数进行条 件转移343JNBE条件转移指令JA/JNBE格式:JA/JXBE标号功能:为高于
36、/不低于等于的转移指令说明:1. 例如两个符号数a, b比较时,ab(ll|JCF=O, ZF=O)时转移因 为单 标志位CF=O,只&示a=b2. JA/JNBE是同条拆令的两种 不同的助记符.3. 该指令用于无符号数进行条 件转移314JAE条件转移指令JAE/JNB格式:JAE/JNB标号说明:1. JAE/JNB同条拆令的两种 不同的助记符.页码.13/22星尘易尘功能:为髙于等于/不低于的转移指令2.该指令用于无符号数进行条 件转移.315JNB条件转移指令JAE/JNB格式:JAE/JNB标号功能:为奇于等于/不低于的转移指令说明:1. JAE/JNB同条拆令的两种 不同的助记符.
37、2. 该指令用于无符号数进行条 件转移.316JB条件转移指令JB/JNAE格式:JB/JXAE标号功能:低于/不高于等于时转移说明:该指令用于无符号数的条 件转移317JNAE条件转移指令JB/JNAE格式:JB/JNAE标号功能:低于/不高于等于时转移说明:该指令用于无符号数的条 件转移31SJBE条件转移指令JBE/JNA格式:JBE/JNA标号功能:低于等于/不高于时转移说明:该指令用于无符号数的条 件转移319JNA条件转移指令JBE/JNA格式:JBE/JNA标号功能:低于等于/不高于时转移说明:该指令用无符数的条 件转移350JG条件转移指令JG/JNLE格式:JG/JXLE标号
38、功能:大于/不小于等于时转移说明:用于带符号数的条件转移 指令351JNLE条件转移指令JG/JNLE格式:JG/JNLE标号功能:大于/不小于等于时转移说明:用于带符号数的条件转移 指令352JGE条件转移描令JGE/JNL格式:JGE/JNL标号功能:大于等于/不小于时转移说明:用于带符号数的条件转移 指令353JNL条件转移指令JGE/JNL格式:JGE/JNL标号功能:大于等于/不小于时转移说明:用于带符号数的条件转移 指令351JL条件转移指令JL/JNGE格式:JL/JNGE标号功能:小于/不大于等于时转移说明:用于带符号数的条件转移 指令355JNGE条件转移指令JL/JNGE格
39、式:JL/JNGE标号功能:小于/不人于等于时转移说明:用于带符号数的条件转移 指令356JLE条件转移指令J LE/JNG格式:JLE/JNG标号功能:小于等于/不大于时转移说明:用于带符号数的条件转移 指令357JNG条件转移指令JLE/JNG格式:几E/JNG标号功能:小于等于/不大于时转移说明:用于带符号数的条件转移 指令35SLOOP循环控制指令LOOP格式:LOOP标号功能:(CXX-(CX)-1, (CX) 0,则转移至标号处循 环执行,苴至(CX)二0,继续执行后继指令.说明:1.本指令是用CX寄存器作为计 数器,來控制程序的循环.2它属于段内SHORT短类熨转 移,目的地址必
40、须距本指令在- 128到+127个7节的范用内.359LOOPZ循坏控制指令LOOPZ/LOOPE格式:LOOPZ/LOOPE标号功(CXX(CX)-l, (CX)OO 且ZF=1 时,转至标 号处循环说明:1. 本折令足用CX寄存器作为计 数器,來控制程序的循环.2. 它属于段内SHORT短类吃转 移,H的地址必须距本指令在- 128到+127个字霸的范閘内.3. 以上两种助记符等价.360LOOPE循环控制指令LOOPZ/LOOPE格式:LOOPZ/LOOPE标号功能:(CXX(CX)-1, (CX)OO 且ZF=1 时,转至标 号处循坏说明:1. 本指令是用CX寄存器作为计 数器,來控制
41、程序的循环.2. 它属于段内SHORT短类吃转 移,冃的地址必须距本指令在- 128到+127个字节的范围内.3. 以上两种助记符等价.361LOOPXZ循环控制指令LOOPNZ/LOOPNE格式:LOOPNZ/LOOPNE 标号功能:(CXX(CX)-l, (CX)OO 且ZF=O时,转至标 号处循环说明:1.本指令是用CX寄存器作为计 数器,來控制程序的循环.2它属于段内SHORT短类型转 移.目的地址必须距本指令在- 128到+127个字节的范用内.3.以上两种助记符等价.362LOOPNE循环控制指令LOOPNZ/LOOPNE格式:LOOPNZ/LOOPNE 标号功能:(CXX(CX)
42、-l, (CX)OO 且ZF=O时,转至标 号处循环说明:1. 本指令是用CX寄存器作为计 数器,來控制程序的循环.2. 它屈丁段内SHORT短类型转 移,目的地址必须距本指令在- 128到+127个字节的范围内.3. 以上两种助记符等价.363CALL过程调用指令CALL格式:CALL 0PRD功能:过程调用指令说明:1. 其中OPRD为过程的目的地址.2. 过程调用可分为段内调用和 段间调用两种寻址方式也可以 分为宜接寻址和间接寻址两种.3. 本指令不影响标志位.364RET返冋指令RET格武:RET说明:由于在过程定义时,已指明其近功能:当调用的过程结束后实現从过程返冋至原调用程序的下i
43、条指令,本指令不影响标志位(NEAR)或远(FAR)的属性,所以 RET折令根据段内调用与段间调 用,执行不同的操作对段内调用:返冋时,由堆栈弹 出一个字的返阿地址的段内偏移 量至IP.对段外调用:返冋时,由堆栈弹 出的第一个7为返阿地址的段内 偏移量,将其送入IP中,由堆栈弹 出第二个字为返回地址的段皋 址,将其送入CS中.365MOVS?符串传送指令MOVS格式:MOVS OPRD1, OPRD2 MOVSBMOVSW功能:OPRDKOPRD2.说明:1其中OPRD2为源串符号地 址,0PRD1为口的巾符号地址.2.字节串操作:若DF二0,则作 加,若DF=1,则作减.3对字串操作时:若D
44、F二0,则作 加,若DF二1,则作减,.4. 在指令中不出现操作数时字 申串传送格式为MOVSB、字串传 送格式为MOVSW.5. 本指令不彫响标志位.366MOVSB字符串传送指令MOVS格式:MOVS OPRD1,0PRD2MOVSBMOVSW功能:OPRDKOPRD2.说明:1其中0PRD2为源串符号地 址,0PRD1为H的串符号地址.2.字节串操作:若DF二0,则作 加,若DF=1,则作减.3对字串操作时:若DF二0则作 加,若DF二1,则作减,.4. 在指令中不岀现操作数时字 节川传迖恪式为MOVSD.字出传 送恪式为MOVSW.5. 本指令不影响标志位.367MOVSW?符冷传送指
45、令MOVS格式:MOVS OPRD1, OPRD2 MOVSBMOVSW功能:OPRDKOPRD2.说明:1. 其中0PRD2为源串符号地 址,OPRD1为冃的吊符号地址.2. 字*串操作:若DF二0,则作 加.若DF=1,则作减.3. 对7串操作时:若DF二0,则作 加,若DF=1,则作减4. 在指令中不出现操作数时,了 紡串传送格式为MOVSB、字串传 送格式为MOVSW5. 木指令不影响标志位.36SCMPS字符串比较指令格式:CMPS OPRD1, OPRD2CMPSBCMPSW说明:1.英中0PRD2为源吊符号地 址,OPRD1为H的冷符号地址.功能:由SI寻址的源串中数据与由DI
46、J址的I I的串 中数据进行比较比较结果送标志闵 而不改变操作 数本身.同时SI,DI将自动调整.2本指令彩响标志位AF、CF. OF、SF、PF、ZF.本指令可用來 检查二个字符串是否相同,可以 便用循环控制方法对整串进行比 较.3.与HOVS郴似,CMPS指令也叮以 不使用操作数,此时可用指令 CMPSB或CMPSW分别表示字节串比 较或字串比较.369CMPSB字符串比较指令格式:CMPS 0PRD1,0PRD2CMPSBCMPSW功能:由SI寻址的源串中数据与由DI寻址的目的串 中数据进行比较,比较结果送标志位,而不改变操作 数本身.同时SI,DI将自动调整.说明:1. tt中0PRD
47、2为源弗符号地 址,OPRD1为口的冷符号地址.2. 本指令影响标志位AF、CF. OF、SF、PF、ZF本指令可用來 检査二个字符串是否相同可以 使用循环控制方法对整串进行比 较.3. 与HOVS柑似,CMPS指令也町以 不使用操作数,此时可用指令 CMPSB或CMPSW分别表示字节串比 较或字串比较.370CMPSW字符串比较指令格式:CMPS 0PRD1,0PRD2CMPSBCMPSW功能:由SI寻址的源串中数据与由DIJ址的目的串 中数据进行比较,比较结果送标左位,而不改变操作 数本身.同时SI,DI将自动调整.说明:1其中OPRD2为源串符号地 址,0PRD 1为目的串符号地址.2.
48、 本指令影响标志位AF、CF. OF、SF、PF、ZF本指令可用来 检査二个字符串是否相同可以 使用循环控制方法对整串进行比 较.3. *jMOVS相似,CMPS指令也町以 不使用操作数,此时可用指令 CMPSB或CMPSW分别表示字节冷比 较或字串比较371SCAS字符串搜索指令SCAS格式:SCAS 0PRDSCASBSCASW功能:AL(字仔串)或AX(字串)的内容与由DI寄存 器J址的冃的串中的数据相减,结果置标志位,但不 改变任一操作数本身.地址指针DI自动调整.说明:1. 其中0PRD为目的申符号地址.2. 木折令影响标志AF、CF、OF. PF、SF、ZF.该指令可査找 字符串中
49、的一个关键字只需在 本指令执行前,把关键字放在AL (字罚或AX (字 串)中,用重复前缀可在整串中 査找.指令中不使用操作数时,可川指 令恪式SCASB. SCASW,分别表示字 节串或字串搜索指令.372SCASB字符串搜索指令SCAS格式:SCAS 0PRDSCASBSCASW功能:把AL佇节时或AX佇串)的内容与由DI寄存 器寻址的目的串中的数据相减,结果置标志位但不 改变任一操作数本身.说明:1英中OPRD为目的冷符号地址.2.本指令影响标志AF、CF、OF、PF、SF、ZF该指令可査找 字符串中的个关谜字,只需在 本指令执行询,地址指针DI自动调胳.把关键字放在AL佇节)或AX(? 串)中,用重复前缀可在整串中 査找.指令中不使用操作数时,可用指 令怡NSCASB. SCAS亂分别衣小7 节串或字串搜索指令373SCASW字符串搜索指令SCAS格式:SCAS OPRDSCASBSCASW功能:把AL(字节串)或AX(字串)的内容与由DI寄存 器寻址的冃的串中的数据相减,结果置标志位,但不 改变任一操作数本身.地址指针DI自动调整.说明:1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北女子职业技术学院马克思主义基本原理概论期末考试模拟题及答案解析(夺冠)
- 2025年中国发展研究院面试题库及答案
- 2025年医美专业知识面试题库及答案
- 2025年郑州颐和医院护理笔试题及答案
- 2025年-游戏策划笔试西山居答案
- 2025年云南中烟笔试历年真题及答案
- 2025年小学科学技能面试题库及答案
- 2025年广州大学马克思主义基本原理概论期末考试模拟题带答案解析
- 2025年威海职业学院单招职业技能测试题库附答案解析
- 2025年泰顺县幼儿园教师招教考试备考题库附答案解析(必刷)
- 2026内蒙古地质矿产集团有限公司社会招聘65人备考题库附答案详解(a卷)
- 2026年常州工业职业技术学院单招综合素质考试模拟测试卷附答案解析
- (二统)大理州2026届高中毕业生高三第二次复习统一检测语文试卷(含答案及解析)
- 泸州白酒行业分析报告
- 蒙古族服饰概览
- django基于深度学习的旅游系统设计与实现-论文13000字
- 《采煤机》课件-第二章 采煤机截割部
- 民营企业工作作风存在的问题及整改措施
- (完整版)陆河客家请神书
- 教学大纲-跨境电子商务法律法规
- 上海市历年中考语文现代文之议论文阅读6篇(含答案)(2003-2022)
评论
0/150
提交评论