Un exemple bête, mais qui te permettra peut-être de comprendre :
; Affiche un pixel en mode OR ou XOR
; d0.w=x d1.w=y d2.w=mode a0.l=dest
PutPix:
lea.l \Instr(pc),a1
tst.w d2
beq.s \ModeXOR
move.w #%0000000111110000,(a1) ; bset d0,(a0,d1.w)
bra.s \ModeOK:
\ModeXOR:
move.w #%0000000101110000,(a1) ; bchg d0,(a0,d1.w)
\ModeOK:
add.w d1,d1
move.w d1,d2
lsl.w #4,d1
sub.w d2,d1
move.w d0,d2
lsr.w #3,d2
add.w d2,d1
not.w d0
\Instr:
dc.w 0
dc.w %0001000000000000 ; pour le mode d'adressage indirect indexé avec déplacement
rts
Je n'ai pas testé, donc je ne garantis pas le fonctionnement