AT&T汇编语言格式详解:OS开发必备知识
需积分: 1 122 浏览量
更新于2024-07-21
收藏 89KB PDF 举报
AT&T汇编语言格式
AT&T汇编语言格式是OS开发工具GCC和GAS所支持的汇编语言语法,了解AT&T汇编语言语法对于OS开发来说是非常重要的。以下是AT&T汇编语言格式的知识点:
**寄存器引用**
在AT&T汇编语言中,引用寄存器需要在寄存器号前加百分号%,例如“movl %eax, %ebx”。80386处理器有多种寄存器,包括:
* 8个32-bit寄存器:%eax, %ebx, %ecx, %edx, %edi, %esi, %ebp, %esp
* 8个16-bit寄存器:%ax, %bx, %cx, %dx, %di, %si, %bp, %sp(实际上是上面8个32-bit寄存器的低16位)
* 8个8-bit寄存器:%ah, %al, %bh, %bl, %ch, %cl, %dh, %dl(实际上是寄存器%ax, %bx, %cx, %dx的高8位和低8位)
* 6个段寄存器:%cs, %ds, %ss, %es, %fs, %gs
* 3个控制寄存器:%cr0, %cr2, %cr3
* 6个debug寄存器:%db0, %db1, %db2, %db3, %db6, %db7
* 2个测试寄存器:%tr6, %tr7
* 8个浮点寄存器栈:%st(0), %st(1), %st(2), %st(3), %st(4), %st(5), %st(6), %st(7)
**操作数顺序**
在AT&T汇编语言中,操作数的顺序是从源(左)到目的(右),例如“movl %eax, %ebx”。
**立即数**
在AT&T汇编语言中,使用立即数需要在数前面加符号$,例如“movl $0x04, %ebx”。也可以使用变量,例如:
```
para = 0x04
movl $para, %ebx
```
这样指令执行的结果是将立即数04h装入寄存器%ebx。
了解AT&T汇编语言格式对于OS开发来说是非常重要的, GCC和GAS都支持这种汇编语言语法。
184 浏览量
2013-10-07 上传
点击了解资源详情
2011-09-03 上传
2011-11-27 上传
187 浏览量
2025-01-05 上传
OpenLD
- 粉丝: 459
- 资源: 94
最新资源
- 测试
- 跟随鼠标在图片之间不断切换的透明遮罩效果
- superscript-websocket-demo:WebSocket 示例应用程序
- slush-hence:生成一个烂字以支持创建因此。Web组件
- 旅行见闻日志响应式网站模板
- text-tic-tac-toe-python:一款文字井字游戏,旨在学习python
- react-render-callback:渲染属性助手来渲染任何东西(函数,组件,元素等)
- Github Vanced-crx插件
- ripplecharts:RippleCharts.com 图表网站
- checkBox2:复选框2-使用CSS更改背景颜色
- 创意设计日志响应式网站模板
- 8秒
- unity物流快递信息查询demo
- React-App-Weather
- AISP
- snow-day-calculator