第一范文网 - 专业文章范例文档资料分享平台

汇编语言指令速查表

来源:用户分享 时间:2025/5/18 5:58:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

附 录

附录A 常用80x86指令速查表

指令按助记符字母顺序排列,缩写、符号约定如下:

(1) 指令中,dst, src表示目的操作数和源操作数。仅一个操作数时,个别处也表示为opr。 (2) imm表示立即数,8/16/32位立即数记作:imm8/imm16/imm32。 (3) reg表示通用寄存器,8/16/32位通用寄存器记作:reg8/reg16/reg32。 (4) mem表示内存操作数,8/16/32等内存操作数记作:mem8/mem16/mem32等。 (5) seg表示段寄存器,CS, DS, SS, ES, FS, GS。 (6) acc表示累加器,8/16/32累加器对应AL/AX/EAX。

(7) OF, SF, ZF, AF, PF, CF分别表示为O, S, Z, A, P, C,相应位置为:字母,根据结果状态设置;?,状态不确定;-,状态不变;1,置1;0,清0;例如:0 S Z ? P -表示:OF清0,AF不确定,CF不变,其它根据结果设置。若该栏空白,则表示无关。

(8) 寄存器符号诸如(E)CX, (E)SI, (E)DI, (E)SP, (E)BP和(E)IP等,表示在16地址模式下使用16位寄存器(如CX),或在32地址模式下使用32位寄存器(如ECX)。

(9) 周期数表示指令执行所需的CPU时钟周期个数,即执行时间为:周期数/主频(秒)。 (10) 诸如(386+)是表示该指令只能用于80386及以后微处理器上。 指 令 AAA AAD AAM AAS 功 能 非压缩BCD加法调整,AH+进位 AH×10+AL?AL,之后AH清0 AL÷10的商?AH,余数?AL 非压缩BCD减法调整,AH-借位 AAA AAD AAM AAS ADC reg, reg ADC reg, mem ADC dst, src 带进位加法:dst+src+CF?dst ADC reg, imm ADC acc, imm ADC mem, reg ADC mem, imm ADD reg, reg ADD reg, mem ADD dst, src 加法:dst+src?dst ADD reg, imm ADD acc, imm ADD mem, reg ADD mem, imm

指 令 形 式 周期数 影响标志位 3 10 18 3 1 2 1 1 3 3 1 2 1 1 3 3 O S Z A P C O S Z A P C ?S Z ? P C O S Z A P C O S Z A P C ? S Z ? P C 汇编语言程序设计 续表 指 令 功 能 指 令 形 式 AND reg, reg AND reg, mem AND reg, imm AND acc, imm AND mem, reg AND mem, imm ARPL reg/mem16, reg16 BOUND reg16, mem32 BOUND reg32, mem64 周期数 影响标志位 1 2 1 0 S Z ? P 0 1 3 3 7 - - Z - - - INT+32 6~35 6~43 6~35 6~43 1 4 4 9 4 7 7 13 8 7 7 13 8 7 7 13 8 1 2 2 4 5 3 2 2 2 7 10 2 4~9 ? ? Z ? ? ? ? ? Z ? ? ? AND dst, src 逻辑与:dst?src?dst ARPL dst, src BOUND reg, mem BSF reg, src BSR reg, src BSWAP reg32 调整选择器的RPL域 越界检查:(80188+) 若reg值超出mem,则产生INT 5 BSF reg, reg 从低到高扫描src,16/32位 (386+) 若src=0,ZF清0,否则置1,位置?reg BSF reg, mem BSR reg, reg 从高到低扫描src, 16/32位 (386+) 若src=0,ZF清0,否则置1,位置?reg BSR reg, mem 反转reg32字节顺序 (486+) BSWAP reg32 BT reg, reg BT reg, imm 位测试 (386+) BT mem, reg 由dst指定的位?CF (16/32位) BT mem, imm BTC reg, reg 位测试并变反 (386+) BTC reg, imm dst的指定位?CF, 然后该位变反, BTC mem, reg (16/32位) BTC mem, imm BTR reg, reg 位测试并清0 (386+) BTR reg, imm dst的指定位?CF, 然后该位清0, BTR mem, reg (16/32位) BTR mem, imm BTS reg, reg 位测试并置1 (386+) BTS reg, imm dst的指定位?CF, 然后该位置1, BTS mem, reg (16/32位) BTS mem, imm CALL label 子程序调用 CALL reg 近调用:返回的偏移地址进栈, CALL mem 然后转至dst处执行; 远调用:返回的段和偏移地址进栈, CALL label 然后转至dst处执行 CALL mem AL符号扩展成AX EAX符号扩展成EDX:EAX CF清0 DF清0 IF清0,即关中断 清除CR0中任务切换标志 (386+) CF取反,即?CF?CF 条件成立src?reg, 16/32位 (586+) cc: 参见Jcc指令。 CBW CDQ CLC CLD CLI CLTS CMC CMOVcc reg, reg CMOVcc reg, mem BT dst, src ? ? ? ? ? C BTC dst, src ? ? ? ? ? C BTR dst, src ? ? ? ? ? C BTS dst, src ? ? ? ? ? C CALL dst (near) (near) (near) (far) (far) CBW CDQ CLC CLD CLI CLTS CMC CMOVcc reg, src - - - - - 0 - - - - - C ·252·

附 录

续表 指 令 功 能 指 令 形 式 CMP reg, reg CMP reg, mem CMP reg, imm CMP acc, imm CMP mem, reg CMP mem, imm 周期数 影响标志位 1 2 1 O S Z A P C 1 2 2 5 O S Z A P C CMP dst, src 比较:dst-src,据此设置标志位 CMPSx 串比较:[(E)SI]-ES:[(E)DI], CMPSB 然后(E)SI, (E)DI增或减Δ(1/2/4) CMPSW x: B, W, D对应字节(1)?字(2)?双字(4)。CMPSD DF=0增,否则减 acc-dst, 等reg?dst,否则 dst?acc (486+) CMPXCHG reg/mem,reg CMPXCHG dst, reg CMPXCHG8B dst CPUID CWD CWDE DAA DAS DEC opr 5,6 10 14 2 3 3 3 1 3 O S Z A P C - - Z - - - ? S Z A P C ? S Z A P C O S Z A P - EDX:EAX-dst,等ECX:EBX?dst,否则CMPXCHG8B mem64 EDX:EAX?dst (486+) CPUID CPU标识?EAX,EBX,ECX,EDX AX符号扩展成DX:AX AX符号扩展成EAX 加法后的十进制调整AL 减法后的十进制调整AL opr自减1,即opr-1?opr CWD CWDE DAA DAS DEC reg DEC mem DIV src 无符号除法 DIV reg 8位:AX÷src,商?AL, 余数?AH 16位:DX:AX÷src,商?AX, 余数?DX DIV mem 32位:EDX:EAX÷src,商?EAX,余数?EDX 建m字节局部空间,n级的栈帧 (286+) 暂停CPU,直到I/O中断发生 ENTER imm16, imm8 HLT 17~41 ? ? ? ? ? ? ENTER m, n HLT 11+ IDIV src 有符号除 IDIV reg 8位:AX÷src,商?AL, 余数?AH 16位:DX:AX÷src,商?AX, 余数?DX IDIV mem 32位:EDX:EAX÷src,商?EAX,余数?EDX 有符号乘法 8位:AL×src?AX 16位:AX×src?DX:AX 32位:EAX×src?EDX:EAX 有符号乘法 reg×src?reg (286+) IMUL reg 22~46 ? ? ? ? ? ? IMUL src 10~11 O ? ? ? ? C IMUL mem IMUL reg, reg/mem IMUL reg, reg/mem,imm IN acc, imm8 IN acc, DX INC reg INC mem 10 10 7 7 1 3 O ? ? ? ? C O ? ? ? ? C O S Z A P - IMUL reg, src IMUL reg, src,imm 有符号乘法 src×imm?reg (286+) IN acc, src INC opr 端口数据?acc opr自加1,即opr+1?opr

·253·

汇编语言程序设计 续表 指 令 功 能 指 令 形 式 周期数 影响标志位 端口DX数据?ES:[(E)DI], INSB 然后(E)DI增或减Δ(1/2/4) INSW x: B,W, D对应字节(1)?字(2)?双字(4);若INSD DF=0增,否则减 FLAGS进栈,IF,TF置0,从[4n]双字单元取 INT 3 段和偏移地址,并转去执行 (实地址模式) INT imm8 若OF=1,则执行INT 4 使Cache无效 使TLB入口无效 中断返回:从堆栈弹出返回的偏移 和段地址,再弹出标志寄存器内容 条件满足,则转移至opr opr 高于(CF=0?ZF=0) 低于(CF=1) 低于等于(CF=1?ZF=1) 等于(ZF=1) 大于(ZF=0?SF=OF) 大于等于(SF=OF) 小于(SF≠OF) 小于等于(ZF=1?SF≠OF) 不等于(ZF=0) 无溢出(OF=0) 非负数(SF=0) 溢出(OF=1) 有偶数个1(PF=1) 有奇数个1(PF=0) 负数(SF=1) 若CX=0,则转移至opr 若ECX=0,则转移至opr 转移至opr 近:转移后仅可改变(E)IP 远:转移后可改变(E)IP和CS 标志寄存器低字节?AH 将dst指定的选择器访问权?reg 将mem内容?DS : reg 将mem的偏移地址?reg 将mem内容?ES : reg 将mem内容?FS : reg (386+) INTO INVD INVLPG IRET Jcc label JA/JNBE JB/JC/JNAE JBE/JNA JE/JZ JG/JNLE JGE/JNL JL/JNGE JLE/JNG JNE/JNZ JNO JNS JO JP/JPE JPO/JNP JS JCXZ label JECXZ label JMP label JMP reg JMP mem JMP label JMP mem LAHF LAR reg, reg/mem LDS reg, mem LEA reg, mem LES reg, mem LFS reg, mem (near) (near) (near) (far) (far) label label label label label label label label label label label label label label label 6/5 6/5 1 2 2 3 4 2 8 4 1 3 4 4 1 JAE/JNB/JNC label INSx 9 INT+5 INT+6 4,INT+5 15 29 7 INT n INTO INVD INVLPG IRET Jcc opr JA/JNBE JAE/JNB/JNC opr 高于等于(CF=0) JB/JC/JNAE opr JBE/JNA JE/JZ JG/JNLE JGE/JNL JL/JNGE JLE/JNG JNE/JNZ JNO JNS JO JP/JPE JPO/JNP JS JCXZ opr JECXZ opr opr opr opr opr opr opr opr opr opr opr opr opr opr JMP opr LAHF LAR reg, dst LDS reg, mem LEA reg, mem LEAVE LES reg, mem LFS reg, mem - - - - - - - - Z - - - 释放栈帧,即:(E)BP?(E)SP,POP (E)BP LEAVE ·254·

附 录

续表 指 令 LGDT mem LGS reg, mem LIDT mem LLDT src LMSW src LOCK 功 能 将mem内容?GDTR (286+) 将mem内容?GS : reg (386+) 将mem内容?IDTR (286+) src?LDTR (286+) src?机器状态字(CR0低16位) (286+) 总线锁 (以便其他处理器处理指令) 指 令 形 式 LGDT mem LGS reg, mem LIDT mem LLDT reg/mem LMSW reg/mem LOCK 周期数 影响标志位 6 4 6 8 8 1 LODSx 从串取:[(E)SI]?acc, LODSB 然后(E)SI增或减Δ(1/2/4) LODSW x: B, W, D对应字节(1)?字(2)?双字(4);若LODSD DF=0增,否则减 (E)CX自减1, 若(E)CX≠0则转移 LOOP label (E)CX自减1, 若ZF=1?(E)CX≠0则转移 LOOPE/LOOPZ label LSL reg, reg/mem LSS reg, mem LTR reg16/mem16 MOV reg, reg MOV reg, mem MOV reg, imm MOV mem, reg MOV mem, imm MOV acc, mem MOV mem, acc MOV reg32, CRi MOV CRi, reg32 MOV reg32, DRi MOV DRi, reg32 MOV reg/mem, seg MOV seg, reg/mem 2 LOOP opr LOOPE/LOOPZ opr 5/6 7/8 7/8 8 4 10 1 1 1 1 1 1 1 4 12~22 2~12 11~12 1 2~12 - - Z - - - LOOPNE/LOOPNZ opr (E)CX自减1, 若ZF=0?(E)CX≠0则转移 LOOPNE/LOOPNZ label LSL reg, src LSS reg, mem LTR src src选择器确定的段界?reg (286+) 将mem内容?SS : reg (386+) src?任务寄存器TR (286+) MOV dst, src 数据传送:src?dst MOV dst, src MOV dst, src MOV dst, src 控制寄存器内容传送 (386+) CRi?reg32, reg32?CRi (i=0,2,3,4) 调试寄存器内容传送 (386+) DRi?reg32, reg32?DRi (i=0~7) 段寄存器内容传送 seg?dst, src?seg(CS除外) MOVSx 串传送: [(E)SI]?ES:[(E)DI], 然 MOVSB 后(E)SI?(E)DI增或减Δ(1/2/4) MOVSW x: B, W, D对应字节(1)?字(2)?双字(4);若MOVSD DF=0增,否则减 src经符号扩展后?reg (386+) src经0扩展后?reg (386+) 无符号乘法 8位:AL×src?AX 16位:AX×src?DX:AX 32位:EAX×src?EDX:EAX opr求补(负),即-opr?opr 空操作 MOVSX reg, reg/mem MOVZX reg, reg/mem MUL reg 4 MOVSX reg, src MOVZX reg, src 3 3 MUL src 10~11 O ? ? ? ? C MUL mem NEG reg NEG mem NOP 1 3 1 O S Z A P C ·255·

NEG opr NOP

搜索更多关于: 汇编语言指令速查表 的文档
汇编语言指令速查表.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c1x8kn8394r4n7xz5ebca_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top