add.b
avantaprès
add.b <ea>,Dn [1] move.l Dn,temp
[2] clr.l temp+4
[3] move.l <ea>,Dn
[4] add.l Dn,temp+3
[5] move.w ccr,Dn
[6] move.w Dn,ccr_temp
[7] move.l temp,Dn
[8] move.w ccr_temp,ccr

Quelques explications:
[1] Le contenu du registre est sauvegardé dans la S-RAM.
[2] On efface les données placées après dans la S-RAM, ça va servir plus bas. En fait, seuls 3 octets ont réellement besoin d'être effacés, mais il est plus simple d'en effacer 4.
[3] La donnée à additionner est stockée dans Dn, car l'instruction d'addition doit forcément avoir un registre de données comme source ou destination. Notez le début de la bidoulle: seul 1 octet devrait être additionné, mais on en charge 4, cela a pour effet de placer dans l'octet de poids fort de Dn la donnée à additionner et dans les 3 autres octets des données parasites.
[4] L'addition est effectuée. Suite de la bidouille: en effectuant l'addition trois octets après le début de temp, l'octet de poids fort précédemment dans le registre (qui contient la donnée à additionner) est ajouté à l'octet de poids faible du registre sauvegardé en mémoire (qui correspond également à la donnée à additionner). Les 3 octets de poids faibles sont additionnés aux zéros qui ont été placés à l'étape [2], ce qui est sans influence sur le résultat utile, qui est dans l'octet de poids fort.
[5] Les codes-conditions du résultal sont sauverardés avant le move car ce dernier modifie les valeurs du ccr (condition codes register).
[6] Comme le move depuis le ccr ne peut être fait que vers un registre de données, la valeur est tranférée en deux étapes.
[6] Le contenu sauvegardé du registre, ainsi que l'octet de poids faible, qui contient le résultat du add.b retournent dans le registre.
[7] Les codes-conditions sont restaurés.

Cette façon de procéder s'apparente à une addition en virgule fixe avec 8 bits de partie entière et 24 bits de partie décimale. Seule la partie entière est prise en compte pour le résultat. Cette façon de procéder permet d'obtenir des codes-condition valides sans calculs supplémentaires.

Note: Le fait de lire 3 octets inutiles peut entraîner des erreurs de bus quand on est à la fin d'un bloc mémoire. Le trap de gestion des erreurs de bus doit être à même de récupérer ce type d'erreur.