herramientas_pcp
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
herramientas_pcp [2012/10/29 20:54] – created xzakox | herramientas_pcp [2012/11/18 22:02] (current) – [Preprocesador] xzakox | ||
---|---|---|---|
Line 5: | Line 5: | ||
====== Sintaxis ====== | ====== Sintaxis ====== | ||
- | Ithlasm ignora la capitalización de todos los símbolos, de hecho trabaja en mayusculas | + | //Ithlasm// ignora la capitalización de todos los símbolos, de hecho trabaja en mayúsculas |
- | En esta primera versión, los valores inmediatos se deben especificar en notación decimal, si bien en futuras versiones se planea soportar hexadecimal y binario. | + | La sintaxis básica de una instrucción es: |
- | Las etiquetas tienen una limitación importante, y es que ningun nombre de etiqueta puede contener como subcadena el nombre completo de otra etiqueta, esto es causado por el parser del preprocesador, | + | |
- | Las etiquetas se definen usando | + | Siendo los parámetros, |
- | Los comentarios empiezan por el símbolo ";" | + | En esta primera versión, los valores inmediatos y los valores de los defines (DEF, DB, DW) se pueden expresar en decimal, hexadecimal (0x..) o binario (0b..) |
+ | |||
+ | Las etiquetas se definen usando el símbolo ":" | ||
+ | |||
+ | Los comentarios empiezan por el símbolo ";" | ||
+ | |||
+ | La síntaxis básica de una instrucción sería | ||
+ | |||
+ | | ||
+ | |||
+ | ====== Preprocesador ====== | ||
+ | |||
+ | El preprocesador acepta los comentatios y etiquetas como hemos visto, y las siguientes directivas: | ||
+ | |||
+ | * **INCLUDE** " | ||
+ | * **DEF** < | ||
+ | * **DB** valor1, valor2... : Inserta en el código los bytes de datos especificados a continuación, | ||
+ | * **DW** valor1, valor2... : Inserta en el código las palabras de datos especificadas a continuación, | ||
+ | * **DS** " | ||
+ | * **STACK** valor: Define un espacio reservado para la pila del programa de " | ||
+ | |||
+ | |||
+ | ====== Ejemplo ====== | ||
+ | |||
+ | Un ejemplo de código para el // | ||
+ | |||
+ | < | ||
+ | ; prueba de texto | ||
+ | DEF null 0 | ||
+ | |||
+ | ld r1, 1 | ||
+ | ld r2, texto ; r2 = text start addr | ||
+ | ld r9, 3 ; putch | ||
+ | ld r3, imprime | ||
+ | ld r4, fin_impresion | ||
+ | ld r5, null | ||
+ | imprime: | ||
+ | lb r10, r2 ; get char | ||
+ | beq r10, r5, r4 ; if c = \0x00, end loop | ||
+ | call 0 | ||
+ | add r1, r2, r2 ; r2 = r2 + 1 | ||
+ | jmp r3 | ||
+ | fin_impresion: | ||
+ | jmp r4 ; endless loop | ||
+ | texto: | ||
+ | DS " | ||
+ | </ |
herramientas_pcp.1351540481.txt.gz · Last modified: 2012/10/29 20:54 by xzakox