Nomenclatura

Quizás deberíamos haber empezado por aquí, pero no lo hemos hecho así. Los programas de ejemplo que llevamos hasta ahora han sido sencillos y, por ello, no ha sido necesario.

Sin embargo, en cuanto los programas en ensamblador son un poco complejos se hace necesario poner un poco de orden. Y, por ello, se vuelve muy conveniente definir una nomenclatura –una forma de llamar a las cosas– para nombrar las cosas siempre de la misma manera, y para facilitar la identificación de su naturaleza.

En un programa en ensamblador encontramos uno o varios ficheros *.asm con:

  • Constantes
  • Variables
  • Etiquetas
  • Instrucciones
  • Comentarios
  • Rutinas
  • Macros
  • Directivas
  • Etc.

Cada uno puede definir la nomenclatura que más le guste. Lo realmente importante es tener una para facilitar la identificación de qué son las cosas.

Una posible nomenclatura es la que se define en el capítulo 6 del libro “Retro Game Dev: C64 Edition”, es decir:

Elemento Nomenclatura Ejemplo
Ficheros del programa XXX.asm Prog37.asm
Ficheros con librerías de rutinas o macros libXXX.asm libSprites.asm
Constantes Primera letra en mayúscula y resto en minúscula. Negro = $00
Variables Todas las letras en minúscula. Si consta de varias palabras, se separan con mayúscula. numero byte $00

numeroVidas byte $00

Posiciones de memoria y registros del VIC, SID, etc. Todas las letras en mayúscula. CIAPRA, CIAPRB, …
Macros Todas las letras en mayúscula. Si consta de varias palabras, se separan con subrayado (_).

Además, se añadirá una V por cada parámetro de entrada de tipo valor y una D por cada parámetro de entrada de tipo dirección.

CONF_BASICA_VDV
Subrutinas Todas las letras en minúscula. Si consta de varias palabras, se separan con mayúscula. activaSprite
Etiquetas globales Todas las letras en minúscula. Si consta de varias palabras, se separan con mayúscula.

Es probable que la misma etiqueta (ej. bucle, fin, …) se repita en muchas rutinas, por lo que se propone prefijar la etiqueta con algo que indique la rutina (ej. “as” por activaSprite) y evite repeticiones.

asBucle, asFin, …
Etiquetas de macro Igual que las etiquetas globales, pero se sustituye el prefijo de rutina (ej. “as” por activaSprite) por el prefijo @. Este prefijo hace que el ensamblador genere una etiqueta única para cada copia o instancia de la macro. @bucle, @fin, …

De este modo, si el programador se encuentra “Negro” automáticamente sabe que es una constante, si se encuentra “numeroVidas” sabe que es una variable, si se encuentra “CIAPRA” sabe que es un registro o posición de memoria conocida del C64, si se encuentra “acitvaSprite” sabe que es una rutina, etc. Y esto es algo muy práctico…


Programa de ejemplo: el programa de la entrada anterior -colisiones-, al ser un programa algo más complejo, ya se ha hecho conforme a esta nomenclatura.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s