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

汇编语言指令大全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 寄存器的当前值存入一个字节大小的存储单元中。

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


http://www.kler.cn/a/147977.html

相关文章:

  • ⾃动化运维利器Ansible-基础
  • 【FFmpeg】FFmpeg 函数简介 ③ ( 编解码相关函数 | FFmpeg 源码地址 | FFmpeg 解码器相关 结构体 和 函数 )
  • CSS回顾-长度单位汇总详解
  • 【算法一周目】双指针(2)
  • 学法减分交管12123模拟练习小程序源码前端和后端和搭建教程
  • 【HarmonyOS NEXT】一次开发多端部署(以轮播图、Tab栏、列表为例,配合栅格布局与媒体查询,进行 UI 的一多开发)
  • 二百零八、Hive——HiveSQL异常:Select查询数据正常,但SQL语句加上group by查询数据为空
  • redis的高可用(主从复制和哨兵模式)
  • 【go入门】表单
  • 基于OpenCV+YOLOv5实现车辆跟踪与计数(附源码)
  • MySOL常见四种连接查询
  • NX二次开发UF_CURVE_ask_spline_feature 函数介绍
  • 从范式标准谈一下OLTP和OLAP的区别
  • 1panel可视化Docker面板安装与使用
  • Flutter 桌面应用开发之读写Windows注册表
  • 记录一次内存泄漏排查历程
  • 利用python对数据进行季节性和趋势拆解
  • bitnami Docker 安装ELK
  • web:[ZJCTF 2019]NiZhuanSiWei1
  • 蚁剑低版本反制
  • 带记忆的超级GPT智能体,能做饭、煮咖啡、整理家务!
  • 未来不远!人工智能赛道,未来不远科技正在跑出加速度
  • DM8误删除操作恢复方案
  • UML建模图文详解教程01——Enterprise Architect的安装与使用
  • 电脑开机过程中,程序的启动的顺序是怎么样的?
  • GZ031 应用软件系统开发赛题第4套