herramientas_pcp
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| herramientas_pcp [2012/10/29 21:03] – 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 |
| - | ===== Preprocesador ===== | + | 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: | El preprocesador acepta los comentatios y etiquetas como hemos visto, y las siguientes directivas: | ||
| * **INCLUDE** " | * **INCLUDE** " | ||
| + | * **DEF** < | ||
| * **DB** valor1, valor2... : Inserta en el código los bytes de datos especificados a continuación, | * **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, | * **DW** valor1, valor2... : Inserta en el código las palabras de datos especificadas a continuación, | ||
| - | * **DS** " | + | * **DS** " |
| + | * **STACK** valor: Define un espacio reservado para la pila del programa de " | ||
| - | ==== Ejemplo ==== | + | ====== Ejemplo |
| Un ejemplo de código para el // | Un ejemplo de código para el // | ||
| Line 30: | Line 41: | ||
| < | < | ||
| ; prueba de texto | ; prueba de texto | ||
| + | DEF null 0 | ||
| + | | ||
| ld r1, 1 | ld r1, 1 | ||
| - | ld r2, texto ; r2 = inicio texto | + | ld r2, texto ; r2 = text start addr |
| ld r9, 3 ; putch | ld r9, 3 ; putch | ||
| ld r3, imprime | ld r3, imprime | ||
| ld r4, fin_impresion | ld r4, fin_impresion | ||
| - | ld r5, | + | ld r5, |
| imprime: | imprime: | ||
| lb r10, r2 ; get char | lb r10, r2 ; get char | ||
herramientas_pcp.1351540989.txt.gz · Last modified: 2012/10/29 21:03 by xzakox