Le programme que je suis en train d'écrire prend la forme d'un nombre à un chiffre suivi d'un espace suivi d'un nombre à deux chiffres. Le programme prendra les deux nombres et les ajoutera ensemble, réduira le nombre par 7 jusqu'à moins de 7, et associera ce nombre à un jour de la semaine. Voici ce que j'ai:Ensemble Motorola 68000 comparant des nombres
start: initIO * Initialize (required for I/O)
setEVT * Error handling routines
* initF * For floating point macros only
linein buffer *reads in values
cvta2 buffer,#1 *provided macro to convert ascii to num, read first digit only
move.b D0,D1 *Store value in D1
cvta2 buffer+2,#2 *read the next two digits after space
move.b D0,D2 *store
add.b D1,D2 *add them together (I can probably use just one register here)
est ici le problème:
for: cmp.w week, D2 *<<<<< This is saying invalid syntax, I want to see if the number provided is greater than 7, if not branch out to the next section
/ennuis
ble done
subq.w #7,D2 *If num>7, sub 7
done:
lineout dmsg
break * Terminate execution
*
*----------------------------------------------------------------------
* Storage declarations
buffer: dc.b 80
dmsg: dc.b 'Done',0
week: dc.b $7 *If combined value is greater than this, sub 7
*These are the values to check against to get correct reply
sun: dc.b $1
mon: dc.b $2
tues: dc.b $3
weds: dc.b $4
thurs: dc.b $5
fri: dc.b $6
sat: dc.b $7
*These are the responses for the output
sunr: dc.b 'Sunday',0
monr: dc.b 'Monday',0
tuesr: dc.b 'Tueday',0
wedsr: dc.b 'Wednesday',0
thursr: dc.b 'Thursday',0
frir: dc.b 'Friday',0
satr: dc.b 'Saturday',0
end
Il y aura plus de code quand je savoir comment faire la comparaison ci-dessus, mais ce sera le même type de comparaison en utilisant simplement le résultat par rapport aux valeurs des jours de la semaine afin de fournir la réponse correcte.
J'ai essayé d'utiliser les différentes formes de cmp (cmpa, cmpi.w/l, etc), mais je n'arrive pas à trouver une méthode qui me permette de comparer les deux valeurs. Est-ce que je devrais charger la valeur que j'ai marquée "semaine" dans un registre avant d'essayer de le comparer ou quelque chose comme ça?
Des exemples de I/O:
entrée:
sortie:
"mercredi"
Toute idée est appréciée. Merci pour votre temps.
Veuillez ne pas modifier la réponse à la question; Postez-le comme une réponse. (et annuler votre modification.) –
Même si le code de problème est toujours là et séparé du code de travail? Peut faire. –
Oui, répondre à la question dans la question va à l'encontre du format Q & A, et met votre propre réponse dans un endroit spécial au-dessus des autres où le vote ne peut pas trouver les meilleures réponses au sommet. (Peu importe les questions de déboguage, car elles ont rarement une grande valeur future, il est difficile pour d'autres personnes de chercher et de trouver la bonne question quand elles ne savent pas quel est leur problème.) Quoi qu'il en soit, merci de ranger votre question. , et bienvenue dans Stack Overflow. –