返回介绍

1. 简介

发布于 2024-10-13 10:58:55 字数 2802 浏览 0 评论 0 收藏 0

汇编语言是面向可编程机器的低级语言。

将指令符号化,直接面向硬件,占用内存少,执行速度快。

优点:

  • 直接访问硬件存储器和 IO 端口。
  • 不受限制,对二进制代码完全控制。
  • 准确控制关键代码,比如避免线程和硬件共享造成的死锁。
  • 手工优化代码,提高算法运行速度。
  • 最大程度发挥硬件能力。

直接修改和调试没有源码的程序。

诊断恶意软件。

逆向学习。

缺点:

  • 代码难懂,不易维护。
  • 易产生 Bug,难以调试。
  • 仅针对特定体系和处理器优化,不易移植。
  • 开发效率低。

格式

汇编语言有两种语法:Intel 和 AT&T。

常见的 MASM、NASM、TASM、FASM 等使用 Intel 风格。作为 GCC 后端汇编工具的 GAS/as 默认使用 AT&T 风格。

推荐使用 NASM。首先,使用 Intel 语法,文档更丰富,相关教材更多;其次,NASM 要比 GAS 速度更快,有更多的宏指令以及支持更多目标格式。

 

AT&T

Intel

寄存器

pushl %eax

push eax

立即操作数

pushl $1

push 1

源和目标操作数

addl $1, %eax

add eax, 1

操作符尾缀

movb val, %al

mov al, byte ptr val

跳转指令

lcall, ljmp, lret

call far, jmp far, ret far

寻址括号

movl -4(%ebp), %eax

mov eax, [ebp - 4]

x86, x64

  • x86 : IA-32。Intel 32 位处理器架构,也被称作 i386。
  • x64 : x86-64。x86 的 64 位扩展,兼容 x86 架构。
  • IA-64 : Intel Itanium(安腾)系列指令集架构,与 x86/x64 不兼容。

x64 由 AMD 1999 年设计,最初称作 x86-64,后改名 AMD64。其后,被 Intel 采用,命名为 Intel 64。大体上,x86-64/amd64/x64 表示同一含义。

x64 有 16 个通用寄存器,RAX、RBX、RCX、RDX、RBP、RSP、RSI、RDI,R8 - R15。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文