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 [16-01-2024 15:04] – [Compilando el programa BASIC con un compilador] 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 117: | 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 142: | 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 160: | 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 279: | 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, |