ensamblador dudas

Iniciado por snowspring, 16 Mayo 2018, 16:35 PM

0 Miembros y 1 Visitante están viendo este tema.

snowspring

Hola, buenas.
Quería ver si alguien me podría ayudar con un pequeño programita en ensamblador asm 6809.
El programa consiste en pedir una semilla inicial para generar tantos numeros aleatorios como indique la semilla y se van imprimiendo dichos números en pantalla. Despues de esto se tienen que mostrar de nuevo esa lista de numeros pero que dichos numeros aparezcan de manera ordenada.
Tengo ya las subrutinas en ficheros a parte hechas (leer_decimal, rand, srand, imprimir_decimal_ imprimir_cadena) y todas ellas por separado funcionan correctamente.
A la hora de hacer el main para llevar a cabo lo descrito antes con tan solo el codigo que dejo aqui abajo me da un error: "invalid opcode"
       
Código (asm) [Seleccionar]
 .module main

           ;definimos constantes
teclado     .equ 0xFF02
fin         .equ 0xFF01
pantalla    .equ 0XFF00

           ;.org 0x100
   .globl programa
   .globl rand
   .globl srand
   .globl leer_decimal
   .globl imprime_cadena
   

cont: .word 0

introduc_sem: .ascii "Introduce semilla:"
     .byte 0


programa:
ldx #0xE000
lda introduc_sem
jsr leer_decimal
std cont
jsr srand
std ,--x


bucle: jsr rand
      std ,--x
      ldd cont
      addd #0xFFFF
      cmpd #0
      bne bucle
     

acabar:
clra
sta fin

.area FIJA (ABS)
.org 0xFFFE ; vector de RESET
.word programa





Se me ha olvidado mencionar que lo que se supone que estoy intentando hacer en este fragmento de codigo es pedir la semilla, generar los numeros aleatorios y guardarlos en el registro X para no perder los numeros generados


· No se debe hacer doble post
>aquí las reglas del foro
-Engel Lex

ivancea96

Invalid OpCode, ¿dónde?

snowspring

Cita de: ivancea96 en 17 Mayo 2018, 13:53 PM
Invalid OpCode, ¿dónde?
Muchas gracias por preguntar pero ya lo he conseguido corregir. De todas maneras te respondo, me daba invalid opcode al final del programa, no recuerdo ya exactamente el lugar