Pourriez-vous m’apporter votre aide dans la programmation du 6809
J'élabore actuellement un Assembleur pour le 6809 et j'ai quelques difficultés à employer ou ne pas employer l'arithmétique signé sur une plage de 64 ko.
A force de lire certain article sur le sujet de l'arithmétique signée, mon esprit est un peu perdu.
Pourriez-vous me préciser :
Dans quelles conditions doit-on utiliser exactement l'arithmétique signée.
Dans quels cas ne pas utiliser l'arithmétique signée.
Dans mon projet, j'ai un sous-programme qui me calcule la valeur d'une expression arithmétique dans un opérande, à la sortie de ce sous-programme, si la valeur décimale est négative, comment la traiter dans une valeur d'offset dans un adressage indexé à déplacement constant 5, 8 ou 16bits ?
Exemple :
Code : Tout sélectionner
00244 CRTC EQU -8 ;
00245 . ;
. . ;
00758 STA CRTC,U ;
A la ligne 00758 pour le calcul de l'opérande CRTC,U la valeur $FFF8 vaut en décimal 65528
Et donc cette valeur n'arrive pas dans un des trois cas ci-dessous :
Entre [-16 et 15] je l'associe à l'adressage Indexé avec offset en 5 bits
Entre [-128 et -17] ou entre [16 et 127] je l'associe à l'adressage Indexé avec offset en 8 bits
Entre [-32768 et -129] ou entre [128 et 32767] je l'associe à l'adressage Indexé avec offset en 16 bits
Je dois louper une étape mais laquelle ?
D'avance un immense merci.
Bonne journée et bon courage.
Richard SOREK