Programación de aplicaciones NitrOS-9 en ensamblador
June 26th, 2008 by Jorge MachinMuchas de las primeras máquinas de 8 bits de antaño e incluso sistemas embebidos, rutinas de criptografía o de mátematicas de la actualidad se programan en lenguaje ensamblador para sacar la máxima velocidad a los microprocesadores.

La CoCo y el lenguaje de máquina
según el manual del usuario
Obviamente al ser de bajo nivel es un lenguaje muy talachudo en el que uno debe ser muy ordenado y tener en la mente muy claro lo que se está haciendo. No he tenido la oportunidad de utilizarlo profesionalmente desde que no programo microcontroladores pero de vez en cuando leo, modifico o hago algunos scripts para mi vieja computadora de 8 bits; ya sea para su sistema operativo NitrOS-9 o en el mismísimo DECB.
Programa "Hello World"
Mi primer programa en ensamblador del microprocesador 6809 en NitrOS-9 fue el clásico "Hello World":
* Program hello
nam hello
* Add OS-9 definitions
ifp1
use /dd/defs/defsfile
endc
tylg set Prgrm+Objct
atry set ReEnt+rev
rev set $01
edition set $01
mod eom,name,tylg,atrv,start,size
org 0
rmb 450
size equ .
name fcs /hello/
tcb edition
* Text to output:
hello fcc "Hello World!"
crtn fcb C$CR
heLen equ *-hello
* Program start
start lda #1 send to stdout
leax >hello,pcr address of the data to write
ldy #heLen number of bytes to write
os9 I$WritLn
* Program exit
clrb no errors
end os9 F$Exit terminate
emod
equ *
end
El cual se compila con el siguiente comando:
Como se puede ver en el código, al igual que muchos sistemas operativos como el MS-DOS, mucha de su programación consiste en llamar rutinas (os9) del sistema operativo, llamadas al BIOS o interrupciones del microprocesador, por lo que la programación puede llegar a ser menos complicada de lo que parece.
Técnicas especiales
Al programar en ensamblador en NitrOS-9, se debe siempre escribir código independiente de la posición porque el sistema operativo asigna las direcciones dependiendo de la memoria disponible. Esto se hace utilizando los comandos BRA, LBRA, BSR y LBSR. Para obtener las direcciones de constantes y tablas, se debe usar instrucciones LEA en lugar de las instrucciones inmediatas LD.
Para saber más...
La documentación con las especificaciones de las llamada al sistema, las podemos encontrar en el manual OS-9 Technical Information y la información sobre el uso del ensamblador esta disponible en el manual OS-9 Program development.
Posteado en Color Computer | No hay comentarios »




:
:

