Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
cursos:ensamblador:introduccion [12-01-2024 13:26] – sromero | cursos:ensamblador:introduccion [24-01-2024 12:40] (actual) – [El Emulador como otra herramienta de desarrollado] sromero | ||
---|---|---|---|
Línea 15: | Línea 15: | ||
\\ | \\ | ||
- | {{ cursos: | + | {{ cursos: |
\\ | \\ | ||
;#; | ;#; | ||
Línea 28: | Línea 28: | ||
El cargador BASIC es el pequeño programa en BASIC que el Spectrum y autoejecuta cuando tecleamos '' | El cargador BASIC es el pequeño programa en BASIC que el Spectrum y autoejecuta cuando tecleamos '' | ||
- | < | + | < |
- | 10 REM Cargador BASIC de un juego | + | 10 REM Cargador BASIC de un juego. |
15 REM Carga la pantalla del juego desde cinta | 15 REM Carga la pantalla del juego desde cinta | ||
20 REM luego con un POKE oculta el mensaje " | 20 REM luego con un POKE oculta el mensaje " | ||
Línea 96: | Línea 96: | ||
\\ | \\ | ||
- | * Programamos nuestro juego en lenguaje BASIC (siguiendo las reglas especiales que lo diferencien del BASIC estándar del Spectrum) escribiendo el programa en un editor de textos estándar de nuestra plataforma de desarrollo. | + | * Programamos nuestro juego en lenguaje BASIC (siguiendo las reglas especiales que lo diferencien del BASIC estándar del Spectrum) escribiendo el programa en un editor de textos estándar de nuestra plataforma de desarrollo. |
- | + | ||
- | * Grabamos el código de nuestro programa como uno o varios | + | |
* Mediante el compilador cruzado, compilamos los ficheros .BAS y obtenemos un fichero binario de código máquina, normalmente con un cargador BASIC incluído al principio del mismo. | * Mediante el compilador cruzado, compilamos los ficheros .BAS y obtenemos un fichero binario de código máquina, normalmente con un cargador BASIC incluído al principio del mismo. | ||
Línea 105: | Línea 103: | ||
\\ | \\ | ||
- | Es una opción muy interesante para quien quiera seguir programando en BASIC y obtener la potencia que el intérprete de BASIC le resta. | + | Es una opción muy interesante para quien quiera seguir programando en BASIC y obtener la potencia que el intérprete de BASIC del Spectrum |
\\ | \\ | ||
Línea 119: | Línea 117: | ||
\\ | \\ | ||
- | * Programamos nuestro juego en lenguaje C escribiendo el programa en un editor de textos estándar de nuestra plataforma de desarrollo. | + | * Programamos nuestro juego en lenguaje C escribiendo el programa en un editor de textos estándar de nuestra plataforma de desarrollo. Escribiermos por tanto el código de nuestro programa como uno o varios ficheros '' |
- | * Grabamos el código de nuestro programa como uno o varios ficheros .C, con sus ficheros de cabecera .H. | + | * Mediante el compilador cruzado, compilamos los ficheros |
- | + | ||
- | * Mediante el compilador cruzado, compilamos los ficheros .C y obtenemos un fichero binario de código máquina, normalmente con un cargador BASIC incluído al principio del mismo. | + | |
* Cargamos ese código máquina en nuestro Spectrum o emulador con un simple '' | * Cargamos ese código máquina en nuestro Spectrum o emulador con un simple '' | ||
Línea 144: | Línea 140: | ||
\\ | \\ | ||
- | * Programamos nuestro juego en lenguaje ensamblador escribiendo el programa en un editor de textos estándar de nuestra plataforma de desarrollo. | + | * Programamos nuestro juego en lenguaje ensamblador escribiendo el programa en un editor de textos estándar de nuestra plataforma de desarrollo. Escribiremos por tanto el código de nuestro programa como uno o varios ficheros '' |
- | * Grabamos el código de nuestro programa como uno o varios ficheros .ASM. | + | * Mediante el ensamblador cruzado, ensamblamos los ficheros |
- | + | ||
- | * Mediante el ensamblador cruzado, ensamblamos los ficheros .ASM y obtenemos un fichero binario de código máquina, normalmente con un cargador BASIC incluído al principio del mismo. | + | |
* Cargamos ese código máquina en nuestro Spectrum o emulador con un simple '' | * Cargamos ese código máquina en nuestro Spectrum o emulador con un simple '' | ||
Línea 162: | Línea 156: | ||
; Rutina de multiplicación en lenguaje ensamblador: | ; Rutina de multiplicación en lenguaje ensamblador: | ||
; | ; | ||
- | ; MULTIPLICA: Multiplica DE*BC | + | ; Mult_HL_DE: Multiplica DE*BC |
- | ; | + | ; Entrada: |
- | ; | + | ; BC: Multiplicador |
- | ; | + | ; Salida: |
+ | ; Modifica: | ||
+ | |||
+ | Mult_HL_DE: | ||
+ | ld hl, 0 ; HL = 0 | ||
- | MULTIPLICA: | + | multhlde_loop: |
- | LD HL, 0 ; HL = 0 | + | add hl, de |
- | MULTI01: | + | dec bc |
- | ADD HL, DE | + | ld a, b |
- | DEC BC | + | or c |
- | LD A, B | + | jr nz, multhlde_loop |
- | OR C | + | |
- | JR NZ, MULTI01 | + | |
- | | + | |
</ | </ | ||
Línea 281: | Línea 277: | ||
ZX Spin tiene incluso un ensamblador integrado que nos permitirá ensamblar programas y ponerlos en memoria directamente desde el emulador, o una opción para cargar bloques de datos binarios desde fichero o guardar porciones de la memoria a fichero, funcionando además bajo Wine en sistemas Linux. | ZX Spin tiene incluso un ensamblador integrado que nos permitirá ensamblar programas y ponerlos en memoria directamente desde el emulador, o una opción para cargar bloques de datos binarios desde fichero o guardar porciones de la memoria a fichero, funcionando además bajo Wine en sistemas Linux. | ||
- | " | + | " |
FUSE y ZX Spin no son los únicos emuladores que contienen este tipo de herramientas, | FUSE y ZX Spin no son los únicos emuladores que contienen este tipo de herramientas, |