当前位置: 首页 > news >正文

汇编语言指令大全30条

汇编语言(Assembly language)是一种低级编程语言,每种计算机都有一种特殊的汇编语言,程序员可以用它编写程序。汇编语言是机器语言的一种高级形式,由一系列的命令组成,这些命令通常由英文单词或缩写表示。

以下是一些常见的汇编语言指令:

  1. MOV:将数据从一个地方移动到另一个地方。例如,MOV AX, 1234h 将把十六进制数 1234h 加载到 AX 寄存器。
  2. ADD:将两个值相加。例如,ADD AX, 1234h 将把 AX 寄存器的当前值与十六进制数 1234h 相加,并将结果存储在 AX 寄存器中。
  3. SUB:从第一个值中减去第二个值。例如,SUB AX, 1234h 将从 AX 寄存器的当前值中减去十六进制数 1234h,并将结果存储在 AX 寄存器中。
  4. JMP:无条件跳转到指定的地址。例如,JMP MyProcedure 将跳转到名为 MyProcedure 的程序的开始地址。
  5. JZ:如果 Zero flag(零标志)设置为真(true),则跳转到指定的地址。这通常用于检查两个数是否相等。
  6. CMP:比较两个值,然后根据比较的结果设置 Zero flag(零标志)。例如,CMP AX, 1234h 将比较 AX 寄存器的当前值与十六进制数 1234h,并根据比较结果设置 Zero flag(零标志)。
  7. AND:对两个值执行逻辑 AND 操作,并将结果存储在目标操作数中。例如,AND AX, 1234h 将把 AX 寄存器的当前值与十六进制数 1234h 进行逻辑 AND 操作,并将结果存储在 AX 寄存器中。
  8. OR:对两个值执行逻辑 OR 操作,并将结果存储在目标操作数中。例如,OR AX, 1234h 将把 AX 寄存器的当前值与十六进制数 1234h 进行逻辑 OR 操作,并将结果存储在 AX 寄存器中。
  9. NOT:对目标操作数执行逻辑 NOT(非)操作。例如,NOT AX 将对 AX 寄存器的当前值执行逻辑 NOT 操作,并将结果存储在 AX 寄存器中。
  10. HLT:挂起程序的执行,直到接收到一个信号或事件。通常用于终止程序或等待外部输入。
  11. INC:将目标操作数的值增加1。例如,INC AX 将把 AX 寄存器的当前值加1,并将结果存储在 AX 寄存器中。
  12. DEC:将目标操作数的值减少1。例如,DEC AX 将把 AX 寄存器的当前值减1,并将结果存储在 AX 寄存器中。
  13. MUL:将两个操作数相乘,并将结果存储在目标操作数中。例如,MUL BX 将把 BX 寄存器的当前值与 AL 寄存器的当前值相乘,并将结果存储在 AX 寄存器中。
  14. DIV:将一个操作数除以另一个操作数,并将结果存储在目标操作数中。例如,DIV BX 将把 AX 寄存器的当前值除以 BX 寄存器的当前值,并将结果存储在 AL 寄存器中。
  15. PUSH:将一个值推入堆栈。例如,PUSH AX 将把 AX 寄存器的当前值推入堆栈中。
  16. POP:从堆栈中弹出一个值,并将其存储在目标操作数中。例如,POP AX 将从堆栈中弹出一个值,并将其存储在 AX 寄存器中。
  17. CALL:调用一个子程序,并将返回地址压入堆栈。例如,CALL MyProcedure 将调用名为 MyProcedure 的子程序,并将返回地址压入堆栈中。
  18. RET:从堆栈中弹出返回地址,并将控制权转移回调用点。例如,RET 将从堆栈中弹出一个返回地址,并将控制权转移回调用点。
  19. HLT:挂起程序的执行,直到接收到一个信号或事件。通常用于终止程序或等待外部输入。
  20. WAIT:等待输入/输出设备的就绪状态。例如,WAIT CX <设备控制字> 将等待指定的输入/输出设备就绪。
  21. CMP:比较两个操作数,并根据结果设置相关的标志位。例如,CMP AX, BX 将比较 AX 和 BX 的值,并根据结果设置相关的标志位。
  22. JMP:无条件跳转到一个指定的地址。例如,JMP Label 将跳转到标号 Label 所在的位置。
  23. Jcc:根据某个条件是否成立来跳转到指定的地址。这里的 cc 代表各种不同的条件,比如 Z(零标志位)、NZ(非零标志位)、E(相等标志位)、NE(不相等标志位)、B(进位标志位)等。例如,JZ Label 将跳转到标号 Label 所在的位置,如果 Zero 标志位设置为真(1)。
  24. CALL:调用一个子程序,并将返回地址压入堆栈。例如,CALL Procedure 将调用名为 Procedure 的子程序,并将返回地址压入堆栈中。
  25. RET:从堆栈中弹出返回地址,并将控制权转移回调用点。例如,RET 将从堆栈中弹出一个返回地址,并将控制权转移回调用点。
  26. INT:触发一个中断。例如,INT 20h 将触发一个 20h 号中断。
  27. IRET:返回中断处理程序。例如,IRET 将从当前中断返回。
  28. CLI:关闭中断。例如,CLI 将关闭所有中断。
  29. STI:打开中断。例如,STI 将打开所有中断。
  30. STOS:将一个值存入指定地址的存储单元中。例如,STOSB 将把 AL 寄存器的当前值存入一个字节大小的存储单元中。

以上只是一些常见的汇编语言指令,实际上汇编语言的指令非常丰富和多样,每种计算机的汇编语言都有自己独特的指令集。要完全理解和掌握汇编语言,需要深入学习具体的计算机架构和指令集。

相关文章:

  • React-hook-form-mui(三):表单验证
  • 获取WordPress分类链接
  • Python与设计模式--适配器模式
  • C语言数据结构之顺序表(上)
  • 在 CentOS 7 上安装 MySQL 8
  • AI数字人直播大屏:创新科技赋能企业的未来
  • 如果每天工资按代码行数来算,来看看你每天工资是多少
  • 【Python】多年数据分成不同sheet
  • Leetcode—2336.无限集中的最小数字【中等】
  • 蓝桥杯day02——Fizz Buzz
  • 超声波清洗机器哪个品牌好用?这四款都夸的超声波清洗机
  • Hive数据库与表操作
  • Git设置多个仓库同时推送
  • Encoder、Decoder和Encoder-Decoder
  • leetcode每日一题35
  • [deviceone开发]-do_Webview的基本示例
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • AHK 中 = 和 == 等比较运算符的用法
  • CSS盒模型深入
  • github从入门到放弃(1)
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Netty源码解析1-Buffer
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • Webpack 4x 之路 ( 四 )
  • 成为一名优秀的Developer的书单
  • 从零开始学习部署
  • 记录:CentOS7.2配置LNMP环境记录
  • 简单易用的leetcode开发测试工具(npm)
  • 解析 Webpack中import、require、按需加载的执行过程
  • 再谈express与koa的对比
  • Android开发者必备:推荐一款助力开发的开源APP
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​iOS实时查看App运行日志
  • (¥1011)-(一千零一拾一元整)输出
  • (1)Nginx简介和安装教程
  • (二)c52学习之旅-简单了解单片机
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (五)关系数据库标准语言SQL
  • (一)认识微服务
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • .NET Core 和 .NET Framework 中的 MEF2
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 依赖注入和配置系统
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @Query中countQuery的介绍
  • [《百万宝贝》观后]To be or not to be?