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

汇编语言指令速查表

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

汇编语言程序设计 续表 指 令 NOT opr 功 能 opr按位取反,即:?opr?opr 指 令 形 式 NOT reg NOT mem OR reg, reg OR reg, mem OR reg, imm OR mem, reg OR mem, imm OR acc, imm OUT imm8, acc OUT DX, acc 周期数 影响标志位 1 O S Z A P C 3 1 2 1 0 S Z ? P 0 3 3 1 12 12 13 OR dst, src 逻辑或,dst?src?dst OUT dst, acc acc内容?端口dst OUTSx POP dst [(E)SI]内容?DX端口, (386+) OUTSB 然后(E)SI增或减Δ(1/2/4) OUTSW x: B, W, D对应字节(1)?字(2)?双字(4);若OUTSD DF=0增,否则减 POP reg 从堆栈弹出数据?dst POP mem ((E)SP增2或4, seg不能为CS) POP seg 数据出栈?DI, SI, BP, BX, DX, CX, AX POPA (SP增2×8) (286+) 堆栈弹出数据?EDI,ESI,EBP,EBX,EDX, POPAD ECX,EAX ((E)SP增4×8) (386+) 数据出栈?FLAGS ((E)SP增2) (286+) POPF 数据出栈?EFLAGS ((E)SP增4) (386+) POPFD PUSH reg PUSH mem src数据进栈 ((E)SP减2/4) (reg32,mem32,imm, 386+) PUSH imm PUSH seg AX,CX,DX,BX,SP,BP,SI,DI进栈, (SP减2×8) (286+) EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI进栈, ((E)SP减4×8) (386+) FLAGS进栈 ((E)SP减2) (286+) EFLAGS进栈 ((E)SP减4) (386+) PUSHA PUSHAD PUSHF PUSHFD RCL reg, 1 RCL mem, 1 RCL reg, CL CF dst POPA POPAD POPF POPFD 1 3 3~12 5 5 4 4 1 2 1 1 5 5 3 3 1 3 7~24 9~26 8~25 10~27 1 3 7~24 9~26 8~25 10~27 O - - - - C O - - - - C O S Z A P C O S Z A P C PUSH src PUSHA PUSHAD PUSHF PUSHFD dst带进位循环左移n位 RCL dst, n RCL mem, CL RCL reg, imm8 RCL mem, imm8 RCR reg, 1 RCR mem, 1 RCR reg, CL 注: n为imm8是386+支持 dst带进位循环右移n位 RCR dst, n dst CF RCR mem, CL RCR reg, imm8 RCR mem, imm8 注: n为imm8是386+支持 ·256·

.

续表 指 令 RDMSR RDTSC 功 能 MSR[ECX]?EDX:EAX (586+) 自启动以来CPU执行的时钟周期数 ?EDX:EAX (586+) REP INSx REP 串指令 当(E)CX≠0重复{(E)CX自减1, 再执行其后的串指令} REP LODSx REP MOVSx REP OUTSx REP STOSx REPE/REPZ 串指令 REPNE/REPNZ串指令 当(E)CX≠0?ZF=1重复{(E)CX自 减1,再执行其后的串指令} 当(E)CX≠0?ZF=0重复{(E)CX自 减1,再执行其后的串指令} 子程序返回:从堆栈弹出返回地 RET [n] 近返回RETN:只弹出偏移地址; REPE/REPZ CMPSx REPE/REPZ SCASx REPNE/REPNZ CMPSx REPNE/REPNZ SCASx RETN RETN imm16 ROL reg, 1 ROL mem, 1 ROL reg, CL ROL mem, CL ROL reg, imm8 ROL mem, imm8 ROR reg, 1 ROR mem, 1 ROR reg, CL ROR mem, CL ROR reg, imm8 ROR mem, imm8 RSM SAHF n指 令 形 式 RDMSR 周期数 影响标志位 20~24 28 11+3n 7+3n 6,13n 13+4n 6,9+3n 7,8+4n 7,8+4n 7,8+4n 7,8+4n 2 4 3 4 1 3 4 4 1 3 1 3 4 4 1 3 1 1 3 4 4 1 3 1 3 4 4 1 3 O S Z A P C O S Z A P C 址,若有n则返回后(E)SP再增n。 RETF 远返回RETF:弹出偏移和段地址; RETF imm16 dst循环左移n位 ROL dst, n CF dst O - - - - C 注:n为imm8是386+支持 dst循环右移n位 ROR dst, n dst CF O - - - - C 注:n为imm8是386+支持 RSM SAHF 从系统管理方式恢复 AH?标志寄存器的低8位 dst算术左移n位,即dst×2?dst SAL dst, n CF 0 dst O S Z A P C - S Z A P C 注:n为imm8时,386+支持 dst算术右移n位,即dst÷2n?dst SAR dst, n dst CF 注:n为imm8是386+支持 SAL reg, 1 SAL mem, 1 SAL reg, CL SAL mem, CL SAL reg, imm8 SAL mem, imm8 SAR reg, 1 SAR mem, 1 SAR reg, CL SAR mem, CL SAR reg, imm8 SAR mem, imm8 O - - - - C O - - - - C .

汇编语言程序设计 续表 指 令 功 能 指 令 形 式 SBB reg, reg SBB reg, mem SBB dst, src 带借位减法:dst-src-CF?dst SBB reg, imm SBB acc, imm SBB mem, reg SBB mem, imm 串扫描:acc-ES:[(E)DI], SCASB 然后(E)DI增或减Δ(1/2/4) SCASW x: B, W, D对应字节(1)?字(2)?双字(4);若SCASD DF=0增,否则减 条件真,1?dst,否则0?dst, cc见Jcc (386+) SETcc reg8/mem8 GDTR?mem (286+) dst逻辑左移n位,与SAL相同 双精度左移 (操作数:16/32位)(386+) CF dst 周期数 影响标志位 1 2 1 1 3 3 O S Z A P C SCASx 4 O S Z A P C SETcc dst SGDT mem SHL dst, n SHLD dst, reg, n 3~8 4 4 1 3 4 4 1 3 4 4 2 4 2 2 7 ? S Z ? P C SGDT mem SHL/SAL是一条指令 SHLD reg/mem, reg, imm8 SHLD reg/mem, reg, CL SAR reg, 1 SAR mem, 1 SAR reg, CL SAR mem, CL SAR reg, imm8 SAR mem, imm8 SHLD reg/mem, reg, imm8 SHLD reg/mem, reg, CL SIDT mem SLDT reg/mem SMSW reg/mem STC STD STI reg dst逻辑右移n位 SHR dst, n 0 dst CF O - - - - C 注:n为imm8时,386+支持 双精度右移 (操作数:16/32位)(386+) SHRD dst, reg, n SIDT mem SLDT dst SMSW dst STC STD STI reg IDTR?mem LDTR?dst ? S Z ? P C - - - - - 1 dst CF 机器状态字(CR0低16位)?dst (286+) CF置1 DF置1 IF置1,即开中断 STOSx 串存入:acc?ES:[(E)DI], STOSB 然后(E)DI增或减Δ(1/2/4) STOSW x: B, W, D对应字节(1)?字(2)?双字(4);若STOSD DF=0增,否则减 任务寄存器TR?dst STR reg/mem16 SUB reg, reg SUB reg, mem SUB reg, imm SUB acc, imm SUB mem, reg SUB mem, imm 3 STR dst 2 1 2 1 1 3 3 SUB dst, src 减法:dst-src?dst O S Z A P C ·258·

.

续表 指 令 功 能 指 令 形 式 TEST reg, reg TEST reg, mem TEST dst, src 与测试,dst?src据此设置标志位 TEST reg, imm TEST acc, imm TEST mem, imm VERR src VERW src WAIT WBINVD WRMSR XADD dst, src XCHG dst, src XLAT/XLATB 若src确定的段可读,1?ZF,否则0?ZF VERR reg/mem16 若src确定的段可写,1?ZF,否则0?ZF VERW reg/mem16 等待,检查挂起未屏蔽的浮点异常 写回Cache,并使之无效 (486+) EDX:EAX?MSR[ECX] (586+) dst?src,再dst+src?dst (486+) dst, src内容交换,即dst?src WAIT WBINVD WRMSR XADD reg/mem, reg XCHG reg/mem, reg XCHG acc, reg XOR reg, reg XOR reg, mem XOR dst, src 逻辑异或,dst?src?dst XOR reg, imm XOR acc, imm XOR mem, reg XOR mem, imm 周期数 影响标志位 2 1 1 1 2 7 7 1 - - Z - - - - - Z - - - 0 S Z ? P 0 2000+ 30~35 3,4 3 2 4 1 2 1 1 3 3 0 S Z ? P 0 O S Z A P C 查表换码:(E)BX+AL确定的单元值?AL XLAT

.

汇编语言程序设计 附录B 编程练习环境说明

1. 编程练习软件包

附带软件包x86ASM是在Microsoft的MASM 6.15软件包的基础上,加入CodeView、Win32的开发工具及Turbo C 2.0等,进行简单整理而成的,以便初学者编程练习使用。

软件包中的基本文件有: MASM.EXE 汇编程序 LINK.EXE 连接程序 ML.EXE 汇编连接程序(自动调用LINK.EXE) ML.ERR 汇编错误信息文件 LIB.EXE 子程序库管理程序 LIB16.EXE 16位子程序管理程序 LINK16.EXE 生成DOS程序的连接程序 LIB32.EXE Win32的库管理程序 LINK32.EXE 生成Win32程序的连接程序 CV目录 CodeView调试程序CV.EXE及相应的环境 INC32目录 Win32的API的函数库声明文件 LIB32目录 Win32的API的函数库 TC目录 Turbo C 2.0命令行环境和集成环境 SET2ML16.BAT ML默认使用LINK16.EXE连接程序 SET2ML32.BAT ML默认使用LINK32.EXE连接程序

使用这个软件包既可以用来练习编写DOS环境下的应用程序,也可以用来练习编写Win32环境下的应用程序。

提供TC的目的是用它来练习16位环境下汇编语言程序模块和C程序模块的连接。

2. DOS系统下的编程练习环境

真正的DOS是运行在实模式下的一个操作系统,所以DOS程序是运行在16位地址模式下的。这种模式下的程序具有这样的特点:

(1) 偏移地址是16位,所表示的偏移地址只能是0~64K-1。在默认情况下,指令处理的数据类型是16位的,但也可以处理32位数据。

(2) 应用程序可以访问所有的计算机系统资源,可以使用I/O指令直接与外设交换数据,也可以用INT指令调用DOS环境下的系统功能(DOS和BIOS)。

在DOS系统下有很多系统功能调用可用,但是这里仅将DOS环境作为编程练习的平台,所以只须如下所述的很少几个系统功能就足够了,主要解决字符的输入、输出,以及应用程序退出返回。如果读者需要开发DOS系统下的应用程序,则必须另外参阅相关的系统资料手册。

1) 编程练习所用的DOS系统调用

(1) 功能01h。从标准输入设备输入一个字符,并回显。

·260·

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