80x86常用指令总结

2024-04-20 20:48
文章标签 总结 指令 常用 80x86

本文主要是介绍80x86常用指令总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.    数据传送指令
MOVMOVSXMOVZX
不能直接在存储器之间,段寄存器之间传送数据,必须通过通用寄存器。目的操作数不能是立即数寻址。指令不影响标志位。
PUSHPOP
操作数可以是立即数、存储器、寄存器中的任何一种寻址方式,但是POP指令不能是CS寄存器。不影响标志位。

2.         地址传送指令
LEA
将原操作数的有效地址送到目的寄存器。
LDSLESLFSLGSLSS
原操作数一定是存器寻址方式,存储器指定的第一个字的内容送到寄存器,第二个字的内容送到指令中指定的段寄存器。

3.         标志寄存器传送指令
LAHFSAHFPUSHFPOPFPUSHDPOPD

4.         类型转换指令
CBWCWDCDQBSWAP

5.         算术指令
ADDADC
无符号数加法,向最高有效位进位CF=1
带符号数加法,操作数符号相同,结果相反,溢出OF=1
SUBSUBB
无符号数减法,向最高有效位借位CF=1
带符号数减法,操作数符号相反,结果和减数符号一样,溢出OF=1

INCDECNEG
不影响标志位

       MULIMUL
只影响OFCF标志位
无符号数的乘法,如果结果的高一半是0,那么CF=OF=0
带符号数的乘法,如果乘积的高一半是低一半的符号扩展,那么CF=OF=0

       DIVIDIV
不影响任何标志位。

       DAADAS
压缩BCD码十进制调整指令,AL4位是十六进制A~F,则CF=1AF=1,并且OF无定义。

       AAAAAS
非压缩BCD码十进制调整指令,同样只影响AFCF标志位,其余和压缩BCD码类似。

6.         逻辑运算指令
ANDORNOTXORTEST
指令的操作数位长必须一致,目的操作数不能为立即数寻址,NOT指令不允许使用立即数寻址,并且它不影响标志位。其余的指令,CF=OF=0AF无定义,SFZFPF根据计算结果设定。

7.         位测试修改指令
BTBTSBTRBTC
影响CF状态标志

8.         位扫描指令
BSFBSR
影响ZF状态标志

9.         位移指令
SHLSALSHRSARROLRORRCLRCRSHLDSHRD
逻辑左右移移出位补0,最后移出的为送CF。算术左移和逻辑左移一样,算术右移,移出位补符号。

10.     串处理指令
MOVSCMPSSCASLODSSTOSINSOUTS
通常串处理指令同REPREPZREPNZREPEREPNE连用。

11.     控制转移指令
无条件跳转指令JMP,分为段内短跳转(8位位移量),段内近跳转(16或者32位位移量)和段间远跳转。
条件跳转指令,状态标志作为测试条件。

12.     条件设置指令
SETZSETNZZETSSETNSSETOSETNOSETPSETNPSETCSETNC。根据状态标志位,来设置目的字节操作数的值。
SETBSETNBSETBESETNBE。根据无符号数的比较结果设置目的字节操作数。
SETLSETNLSETLESETNLE。根据无符号数的比较结果设置目的字节操作数。

13.     循环指令
LOOPLOOPZLOOPNZ
通过测试ZFCLCXECX来决定是否结束循环。

14.     标志位相关指令
CLCCMCSTCCLDSTDCLISTI

15.     其他指令
CALLRETINTINTOIRETIRETD

这篇关于80x86常用指令总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/921285

相关文章

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java中Arrays类和Collections类常用方法示例详解

《Java中Arrays类和Collections类常用方法示例详解》本文总结了Java中Arrays和Collections类的常用方法,涵盖数组填充、排序、搜索、复制、列表转换等操作,帮助开发者高... 目录Arrays.fill()相关用法Arrays.toString()Arrays.sort()A

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

golang中reflect包的常用方法

《golang中reflect包的常用方法》Go反射reflect包提供类型和值方法,用于获取类型信息、访问字段、调用方法等,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录reflect包方法总结类型 (Type) 方法值 (Value) 方法reflect包方法总结

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin