文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1. 简介
汇编语言是面向可编程机器的低级语言。
将指令符号化,直接面向硬件,占用内存少,执行速度快。
优点:
- 直接访问硬件存储器和 IO 端口。
- 不受限制,对二进制代码完全控制。
- 准确控制关键代码,比如避免线程和硬件共享造成的死锁。
- 手工优化代码,提高算法运行速度。
- 最大程度发挥硬件能力。
直接修改和调试没有源码的程序。
诊断恶意软件。
逆向学习。
缺点:
- 代码难懂,不易维护。
- 易产生 Bug,难以调试。
- 仅针对特定体系和处理器优化,不易移植。
- 开发效率低。
格式
汇编语言有两种语法:Intel 和 AT&T。
常见的 MASM、NASM、TASM、FASM 等使用 Intel 风格。作为 GCC 后端汇编工具的 GAS/as 默认使用 AT&T 风格。
推荐使用 NASM。首先,使用 Intel 语法,文档更丰富,相关教材更多;其次,NASM 要比 GAS 速度更快,有更多的宏指令以及支持更多目标格式。
AT&T | Intel | |
寄存器 |
|
|
立即操作数 |
|
|
源和目标操作数 |
|
|
操作符尾缀 |
|
|
跳转指令 |
|
|
寻址括号 |
|
|
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论