GNU的汇编器gas是Linux系统中常用的汇编器,它遵循AT&T汇编语法规范。由于Linux内核基于GNU工具链进行开发,所以内核中的汇编也遵循该语法。
一、常规汇编语法
1.1 寄存器前缀
如需访问寄存器,在寄存器名字前加前缀%即可。如
movl $1234ffff, %eax
1.2 立即数前缀
如需使用立即数,在立即数前加前缀$即可。如
movl $1234ffff, %eax
当前缀$使用在变量名称之前时,表示引用该变量的地址。如:
var:
.word 0xA5
movl $var, %eax
将数据0xA5的地址放入了寄存器eax。
1.3 操作数顺序
在AT&T汇编中,源操作数在前,目的操作数在后。这个和Intel汇编语法正好相反。如
movl %eax, %ebx
表示将寄存器eax的内容传送到寄存器ebx。
1.4 操作数宽度
在AT&T汇编中,每条汇编指令的操作码的后缀b、w、l分别表示操作数的宽度为1、2、4字节。如:
movb %al, %bl
movw %ax, %bx
movl %eax, %ebx
1.5 内存寻址格式
在AT&T汇编中,对于内存寻址可用通用的模板。如:
movw disp(base, index, scale), %ax
表示将base+index*scale+disp指向的内存单元的字节数据传送到寄存器%ax中。
其中base必不可少;index、scale可有可无,但必须同时出现;disp也可有可无。
分享到:
相关推荐
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
附录C Linux内核汇编语法 358 C.1 常规汇编语法 359 C.1.1 寄存器前缀 359 C.1.2 立即数前缀 359 C.1.3 操作数顺序 359 C.1.4 操作数宽度 359 C.1.5 内存寻址格式 359 C.2 内嵌汇编语法 360 C.2.1 ...
__asm__ __volatile__ GCC的内嵌汇编语法说明,看Linux内核必备
AT&T汇编的比较详细的说明,区分了它和X86汇编使用的不同之处,学习linux内核的一定要看看哦
学习UNIX / Linux 内核,驱动,底层代码必须要掌握的汇编语言。本手册是 AT&T 汇编语法的官方资料。
介绍GCC的内嵌AT&T汇编语言语法知识,比较详细,是读LINUX内核不可获取的文档。
linux内核编程入门(第一部分)(第一章)at&t汇编语法格式.part3.rar
linux内核编程入门(第一部分)(第一章)at&t汇编语法格式.part1.rar
linux内核编程入门(第一部分)(第一章)at&t汇编语法格式.part2.rar
从底层系统支持到上层GUI应用的方方面面,内容涵盖Linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、Makefile语法、ARM汇编指令等),硬件部件的使用及编程(囊括了...
本课程介绍Linux0.11版本内核如何人工设置...课程还会介绍嵌入式汇编的基本语法,帮助进阶内核代码阅读。课程最后会介绍,任务0 fork()任务1 init进程的过程,以及在进程1中使用fork()创建登录shell及交互shell的过程。
一些特性:用于 Windows,Unix 和 Golang 程序集的通用汇编语法.PeachPy 可以直接生成 ELF,MS COFF 和 Mach-O 对象文件以及 Golang 工具链的汇编列表自动适应不同的调用约定和 ABIs用于不同平台的功能可以从汇编...
GNU官方的ARM汇编指令手册,是GNU对ARM指令的扩展,如果你对linux内核或是uboot的汇编代码的一些语法不是很理解,有必要看一下。
设置、Makefile 语法、ARM 汇编指令等),硬件部件的使用及编程(囊括了常见硬件,比如 UART、I2C、 LCD 等),U-Boot、Linux 内核的分析、配置和移植,根文件系统的构造(包括移植 busybox、glibc、制作 映象文件等...