Fasm (lenguaje de programación)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 10 de abril de 2021; la verificación requiere 1 edición .
rápido
clase de idioma lenguaje ensamblador
tipo de ejecución compilado
Apareció en 1999
Autor Tomasz Gryshtar
extensión de archivo .asm- para archivos de código, .inc- para archivos de inclusión
sistema de tipos perdido
Implementaciones principales ensamblador fasm , ensamblador fasmarm, [[Fresh_(IDE)]]
sido influenciado originalmente TASM , NASM , en el período más nuevo fasmg (lenguaje de programación)
influenciado fasmg (lenguaje de programación)
Licencia Variante de la licencia BSD con posiblemente una excepción anti- GPL
Sitio web flatassembler.net

fasm (abreviatura de ensamblador plano) es un tipo de lenguaje ensamblador.

Historia

El proyecto fue iniciado en 1999 por Tomasz Grysztar ( polaco: Tomasz Grysztar ).

Principios

Fasm tiende a utilizar el conjunto más pequeño posible de directivas de preprocesador, es decir, en un conjunto predefinido de directivas, no está permitido introducir nuevas directivas, cuya funcionalidad se puede lograr mediante un conjunto de directivas existente.

Sintaxis

Espaciado entre caracteres del idioma

La orientación a una amplia gama de sistemas operativos (no todos los cuales admiten caracteres multibyte) limita la paleta de caracteres válidos utilizados en los textos de origen a variaciones de un solo byte.

Bajo la abstracción "carácter" se percibe un carácter con referencia a un código ASCII específico, y no a un estilo específico.

Se pueden distinguir grupos separados en la paleta de símbolos:

Texto original

El texto fuente es una secuencia de líneas, se recopilan desde las líneas del archivo principal, desde las líneas de los archivos incluidos al principal, desde las líneas de los archivos incluidos a los archivos incluidos previamente, etc.

El texto de cualquier archivo principal o incluido generalmente está representado por todo el contenido de esos archivos, pero también se puede forzar a que termine con el primer carácter encontrado con un código ASCII de 0, mientras que el carácter de fin de texto en sí no es parte del texto, por lo que este carácter no puede aparecer en el texto de origen.

Cada línea de texto fuente puede estar vacía o contener texto de instrucción y/o texto de comentario.

Texto del comentario

El único tipo de comentario predefinido es de una sola línea, cada comentario comienza con un punto y coma ";" y termina con un salto de línea.

Texto de instrucciones

Cada instrucción comienza en una nueva línea y llena todo el espacio de esa línea que no está ocupado por un comentario. Además, ninguna instrucción puede terminar con un carácter de barra invertida "\" (sin tener en cuenta los espacios y tabulaciones posteriores), si este carácter es el último en el espacio de la línea ocupada por el texto de la instrucción, entonces en su lugar ( se pone un espacio, y luego) el contenido de lo siguiente se adjunta a las líneas de instrucción, y así sucesivamente con un nivel ilimitado de anidamiento.

El texto de cada instrucción es necesariamente tokenizado (parseado en elementos), por las necesidades internas del compilador, un carácter con código ASCII 26 está involucrado en el proceso de este análisis, por lo que no se puede usar directamente en el texto de la instrucción.

En el nivel de instrucción, puede crear la ilusión de un comentario de varias líneas. Pero la naturaleza de dicho comentario se heredará de las instrucciones, su texto se analizará en tipos y, por lo tanto, se prohibirá el uso de un carácter con código ASCII 26 dentro de dicho comentario.

Fichas

El cuerpo de cualquier instrucción es una secuencia de elementos (tokens), cada uno de los cuales puede pertenecer a uno de tres tipos diferentes: 1 - un carácter independiente, 2 - un token continuo y 3 - una cadena entrecomillada.

El primer tipo de token es un elemento de un solo carácter y se percibe en el texto de instrucciones como un carácter independiente, independientemente de si se separa del texto de los elementos vecinos o se fusiona con ellos. La paleta de elementos de un solo carácter no es numerosa: "+-*/=<>()[]{}:,|&~#`" es un subconjunto de caracteres especiales.

El segundo tipo de token es un elemento de varios caracteres, cuya secuencia de caracteres en el texto de la instrucción comienza con un carácter que no sea comillas (doble """ y simple "'"), se hace juntos y no incluye caracteres independientes .

El tercer tipo de token también es un elemento de varios caracteres, pero cuya secuencia de caracteres en el texto de instrucción comienza con un carácter de comillas (no importa el doble """ y el simple "'") y no termina hasta el mismo el carácter de comillas se encuentra dentro de la cadena, incluso el carácter de punto y coma ";" cuando se encuentra dentro de una secuencia de este tipo, no abre ningún comentario, sino que simplemente se convierte en un carácter de esta secuencia. Si un carácter de la misma cita aparece junto después de la cita final, entonces se incluye 1 carácter de esta cita en la secuencia, y la secuencia en sí continúa hasta el siguiente carácter de comillas, las comillas de apertura y cierre no se convierten en parte del elemento, solo sirven como un indicador para su escritura.

Nota : qué caracteres no pueden formar parte de una cadena entrecomillada:

Enlaces