AT&T x86汇编语法参考手册:Linux DJGPP中的不同之处
4星 · 超过85%的资源 需积分: 14 124 浏览量
更新于2024-09-26
收藏 140KB PDF 举报
《AT&T x86 asm 语法指南》是一本针对Linux环境下使用的AT&T汇编语言的详细教程,特别适合那些从Windows平台转到Linux环境,或者对Intel汇编语法不熟悉的开发者。AT&T格式与Intel汇编格式存在显著差异,本书旨在帮助读者理解和适应这种不同。
首先,AT&T格式的主要特点在于源操作数和目的操作数的位置被颠倒,即目的操作数在源操作数之后。这意味着在AT&T汇编中,常见的`mov ax, bx`在AT&T语法中会写成`movw %bx, %ax`。此外,寄存器操作数需要用`%`作为前缀,如`%eax`;立即数操作数则需用`$`符号,如`$1`。
存储器操作数的长度根据操作码的最后一个字符确定:`b`表示8位,`w`表示16位,`l`表示32位。例如,`movb X, %ah`是将字节指针X的内容移动到AH寄存器中,`movl X, %eax`则是将整数X的值移动到EAX寄存器。
尽管大部分基本操作指令在AT&T和Intel格式中类似,但有几种特殊指令存在差异,如`movs`(无符号扩展)和`movz`(有符号扩展)在AT&T语法中分别对应`s`和`z`作为后缀,如`movswl %ax, %ecx`。另外,一些控制转移指令也有特定的前缀,如`lcall`、`ljmp`、`lret`等,这些指令在AT&T格式中需要明确指定目标地址。
在AT&T格式中,指令的前缀(如`rep`或`stosd`)不能与它们所作用的操作符在同一行,以保持代码清晰。这与Intel格式中的可折叠前缀有所不同,如Intel的`rep stosd`会被解释为一个复合指令。
学习和掌握AT&T x86汇编语法对于在Linux平台上进行低级系统编程至关重要,特别是对于那些希望深入了解计算机底层工作的程序员。通过阅读和实践这份指南,读者可以逐步适应Linux下的汇编语言环境,并提高编写高效、精确的汇编程序的能力。
2009-01-05 上传
2009-06-25 上传
2007-11-12 上传
点击了解资源详情
2009-02-10 上传
morre
- 粉丝: 187
- 资源: 2329
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜