J'ai une question concernant l'instruction MULU. Une chose que j'ai remarquée est que supposons que j'ai la valeur 000FFFFF dans un registre de données. Et puis supposons que je veux mettre dans un autre F pour qu'il contienne 00FFFFFF. Ce que je fais habituellement est de multiplier le registre de données par 16 comme ceci:68000 Assemblage: Multiplier donne un résultat bizarre
MULU #16, D4
Et puis j'ajouter une autre F en faisant instruction ADD (si je reçois 00FFFFFF). Mais quand je me suis à nouveau multiplié sur 000FFFFF, tous les bits dans le registre de données finissent par aller à zéro (00000000). Après cette multiplication, j'aurai 000FFFF0, et le reste suivra. Je ne comprends toujours pas la raison de ceci. J'ai regardé this example et je pense que ça devrait marcher. J'ai également remarqué que les bits Extend, Carry et Zero vont tous à true si j'ajoute simplement 1 à 000FFFFF
Qu'est-ce que _ « Mais quand je multipliai à nouveau sur 000FFFFF » _ signifier? Montrez-nous la séquence exacte des instructions. Aussi, pourquoi ne pas simplement déplacer à gauche par 4 au lieu de multiplier par 16? – Michael
Vous avez raison. Je n'aurais pas dû utiliser la multiplication. Au lieu de changer de gauche à 4 est une bonne solution. Problème résolu. –