Otros sitios...

Búsqueda

Antispam

Programación de aplicaciones NitrOS-9 en ensamblador

June 26th, 2008 by Jorge Machin

Muchas 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
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:

asm hello.asm -o #16k

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 |

Deje un comentario

Por favor note: La moderación de comentarios está activada y puede retrasar la publicación de los comentarios. No es necesario enviar de nuevo el mismo comentario.