El ensamblador GNU , comúnmente conocido como gas o simplemente como su nombre ejecutable, es el ensamblador utilizado por el Proyecto GNU . Es el back-end predeterminado de GCC . Se utiliza para ensamblar el sistema operativo GNU y el kernel de Linux , y varios otros programas. Es parte del paquete GNU Binutils .
Desarrollador (es) | Proyecto GNU |
---|---|
Lanzamiento estable | 2.34 / 1 de febrero de 2020 |
Escrito en | C |
Plataforma | Multiplataforma |
Tipo | Ensamblador |
Licencia | Licencia pública general GNU v3 |
Sitio web | www |
El ejecutable de GAS se denomina como , el nombre estándar para un ensamblador Unix . GAS es multiplataforma y se ejecuta y se ensambla para varias arquitecturas informáticas diferentes . Publicado bajo la GNU General Public License v3, GAS es un software gratuito .
Historia
La primera versión de GAS se lanzó en 1986-1987. [1] Fue escrito por Dean Elsner y es compatible con la arquitectura VAX . [1]
Sintaxis general
GAS admite una sintaxis general que funciona para todas las arquitecturas compatibles. La sintaxis general incluye directivas de ensamblador y un método para comentar.
Directivas
Utiliza gas ensamblador directivas (también conocidos como seudo ops), que son palabras clave que comienzan con un periodo que se comportan de manera similar a las directivas de preprocesador en el lenguaje de programación C . Si bien la mayoría de las directivas de ensamblador disponibles son válidas independientemente de la arquitectura de destino, algunas directivas dependen de la máquina. [2]
Comentarios
GAS admite dos estilos de comentarios: [3]
Comentarios de varias líneas
Como en C, los comentarios de varias líneas comienzan y terminan con pares duplicados de barra inclinada y asterisco:
/ * comentario * /
Comentarios de una sola línea
Los comentarios de una sola línea tienen algunos formatos diferentes que varían según la arquitectura para la que se ensambla.
- Los símbolos hash (#) se utilizan para las plataformas: i386 , x86-64 , i960 , 68HC11 , 68HC12 , VAX , V850 , M32R , PowerPC , MIPS , M680x0 y RISC-V .
- El punto y coma (;) se utiliza en: familia AMD 29k , ARC , familia H8 / 300 , HPPA , PDP-11 , picoJava , Motorola y M32C .
- El signo arroba (@) se utiliza en la plataforma ARM .
- Se utiliza una barra doble (//) en la plataforma AArch64 .
- Se utiliza una barra vertical (|) para indicar comentarios al ensamblar en 680x0 .
- Un signo de exclamación (!) En la plataforma Renesas SH .
Uso
Al ser el back-end de una suite de compiladores popular, a saber, GCC, GNU Assembler se usa ampliamente en la compilación de software de código abierto moderno. GAS se usa a menudo como ensamblador en sistemas operativos GNU / Linux junto con otro software GNU. Una versión modificada de gas también se puede encontrar en el Macintosh paquete de herramientas de desarrollo del sistema operativo desde OS X .
Programa de ejemplo
Un estándar "¡Hola, mundo!" programa para Linux en IA-32 usando la sintaxis predeterminada de AT&T :
.global _start.text _start: movl $ 4 , % eax # 4 (código para "escribir" syscall) -> registro EAX movl $ 1 , % ebx # 1 (descriptor de archivo para stdout) -> EBX (primer argumento para syscall) movl $ msg , % ecx # dirección de la cadena de mensajes -> ECX (segundo argumento) movl $ len , % edx # len (dirección de 32 bits) -> EDX (tercer argumento) int $ 0x80 # interrupción con ubicación 0x80 (128), que invoca el sistema del kernel procedimiento de llamadamovl $ 1 , % eax # 1 ("salir") -> EAX movl $ 0 , % ebx # 0 (con éxito) -> EBX int $ 0x80 # ver el mensaje .data anterior : .ascii "¡Hola, mundo! \ n" # cadena ascii en línea len = . - msg # asigna el valor de (dirección actual - dirección de inicio de mensaje) al símbolo "len"
Sintaxis Intel
Desde la versión 2.10, la sintaxis de Intel se puede utilizar mediante el uso de la .intel_syntax
directiva. [4] [5] [6]
Ver también
- Cadena de herramientas GNU
- Biblioteca de descriptores de archivos binarios
- Comparación de ensambladores
Referencias
- ^ a b "El ensamblador GNU". CiteSeerX 10.1.1.32.4503 . Cite journal requiere
|journal=
( ayuda ) - ^ "El ensamblador GNU - Directivas del ensamblador" .
- ^ Red Hat Inc. "Usar como" . Consultado el 10 de enero de 2013 .
- ^ "GNU Assembler News" .
- ^ "Sintaxis de AT&T versus sintaxis de Intel" . Consultado el 28 de julio de 2014 .
- ^ Ram Narayan (17 de octubre de 2007). "Ensambladores de Linux: una comparación de GAS y NASM" . IBM DeveloperWorks . Archivado desde el original el 3 de marzo de 2009 . Consultado el 28 de julio de 2014 .
enlaces externos
- Página web oficial
- Manual de gas
- : el ensamblador GNU portátil - Manual de comandos de usuario de Linux