Introducción a la programación en ensamblador con Pasmo: Compilando y probando un "Hola mundo" Pasmo es un ensamblador cruzado para Z80, escrito en C++ estándar que compila con facilidad en múltiples plataformas. Actualmente genera código obejto en los siguientes formatos: binario crudo, Intel HEX, PRL para RSX de CP/M Plus, Plus3Dos (Spectrum +3 disco), TAP, TZX y CDT (imagen de cinta para emuladores de Spectrum y Amstrad CPC), AmsDos (Amstrad CPC disco) y MSX (para uso con BLOAD desde disco en Basic). Podemos bajarlo de su web oficial. No requiere ningun tipo de instalación, es un simple ejecutable, que tendremos que poner en alguna carpeta que esté en el path o bien directamente en la carpeta donde vayamos a compilar. Con cualquier editor de texto o código (con el mismo notepad de Windows vale) generamos un fichero Pasmo01.asm con el siguiente contenido (al final del tutorial se puede descargar todo en un zip): org #6000 TXT_OUTPUT EQU #BB5A KM_WAIT_CHAR EQU #BB06 LD A, 'H' CALL TXT_OUTPUT LD A, 'o' CALL TXT_OUTPUT LD A, 'l' CALL TXT_OUTPUT LD A, 'a' CALL TXT_OUTPUT LD A, ' ' CALL TXT_OUTPUT LD A, 'm' CALL TXT_OUTPUT LD A, 'u' CALL TXT_OUTPUT LD A, 'n' CALL TXT_OUTPUT LD A, 'd' CALL TXT_OUTPUT LD A, 'o' CALL TXT_OUTPUT CALL KM_WAIT_CHAR RET Un simple programilla que utiliza la función TXT_OUTPUT del firmware. Tenemos que compilarlo de la siguiente manera: pasmo Pasmo01.asm Pasmo01.bin Si todo ha ido bien, se nos habrá generado un nuevo fichero Pasmo01.bin, que ya se puede ejecutar en el Amstrad CPC. Para las pruebas, vamos a cargar los binarios generados en un emulador, para ello tendremos que generar un fichero dsk (imagen de disco) con el binario que hemos compilado, para poder cargarlo/ejecutarlo en el emulador. Para ello podemos utilizar por ejemplo ManageDSK o CPCDiskXP. Para generar un Dsk con CPCDiskXP, ejecutamos el programa, pulsamos en "Dsk Editor", luego pulsamos en "New" seleccionamos el formato por defecto "CPC Data" y pulsamos Ok. Ahora pulsamos "Add Files" para añadir nuestro binario, buscamos el directorio donde hemos compilado y seleccionamos el fichero Pasmo01.bin, ahora CPCDiskXP nos preguntará si queremos añadir la cabecera Amsdos, pulsamos Sí, dejamos los valores por defecto y pulsamos Ok. Ahora pulsamos el botón "Save" para guardar nuestro Dsk, yo lo he llamado "Pasmo01.dsk" en el mismo directorio. Con la última versión de CPCDiskXP también podemos generar un dsk desde la línea de comandos (o un bat) de la siguiente forma: CPCDiskXP -File Pasmo01.bin -AddAmsdosHeader 6000 -AddToNewDsk Pasmo01.dsk Cargamos el Dsk en nuestro emulador favorito (Yo suelo usar CPCE y Winape) y lo ejecutamos con run"Pasmo01 y veremos lo siguiente: |
Podéis bajar un zip con todos ficheros aquí: Introduccion_a_la_programacion_en_ensamblador_con_Pasmo_Compilando_y_probando_un_Hola_mundo.zip |
www.CPCMania.com 2012 |