@Hexmage960, post #2
@MDW, post #4
@Hexmage960, post #5
@sigma2pi, post #7
@Krashan, post #8
@RomanWorkshop, post #9
@Krashan, post #10
@RomanWorkshop, post #12
@asman, post #13
I nie potrzebujesz drugiego rejestru adresowego.
@RomanWorkshop, post #14
moveq #-1,d0
moveq #0,d0 move.b #-1,d0
add.w d0,d1
ext.w d0
@Hexmage960, post #15
@asman, post #13
@Krashan, post #16
@Krashan, post #16
2. Skoro w rejestrze będzie $FFFFFFFF, to instrukcja ADDQ.B będzie dodawała do $FF (-1), a nie do $7F.
@Hexmage960, post #19
@RomanWorkshop, post #20
To, że rejestr się przepełnia i zeruje, to jest normalne zachowanie sprzętu, a nie konwencja programistyczna.
@Hexmage960, post #21
@Hexmage960, post #21
@RomanWorkshop, post #14
Len: lea textbuf(pc),a0 move.l a0,d0 .loop tst.b (a0)+ bne.b .loop subq.l #1,a0 sub.l a0,d0 neg.l d0 rts
@Hexmage960, post #21
@RomanWorkshop, post #26
3. $FF+1 nie równa się $100 tylko $00, bo dodaję z dokładnością ".b" (starsze bajty dalej mają wartość $FFFFFF).
@Hexmage960, post #27
@Hexmage960, post #27
Wyzerowanie tych starszych bajtów to kwestia jednego polecenia procesora (nadmiarowo).
Uwierz mi, że oszczędzi to mnóstwo czasu programistom korzystającym z Twojej funkcji.