Ja uczyłem się asemblera z następujących źródeł:
- "Rodzina M680x0" Wojciecha Czyża - wyczerpujący opis procesorów MC68000 i nowości wprowadzonych w MC68020+. Dzięki tej książce poznałem zestaw instrukcji asemblera, budowę i działanie stosu, znaczników i trybów adresowania oraz wyjątków.
- "Asm-One" Adama Doligalskiego - dzięki tej książce opanowałem obsługę programu Asm-One.
- "Asembler dla początkujących" A. Doligalskiego - tutaj opisane są rejestry Amigi, konkretne przykłady programowania.
Wszystkie te materiały się uzupełniają.
Po nabyciu Amiga Developer CD v2.1 miałem możliwość zapoznania się z "ROM Kernel Reference Manual: Hardware".
@Juen
Fajny przykład, choć to tzw. Ikona, czyli prostokątny obiekt, a nie Bob.
W przypadku Boba warto poznać również czym jest maska bitowa i tzw. "cookie-cut", czyli wycinanie obrazu Boba.
Ale taka kolejność jest jak najbardziej w porządku.
Według mnie warto też stosować stałe symboliczne, to znaczy załączyć i stosować nagłówki systemowe dla Asemblera:
include "hardware/blit.i"
Dzięki czemu zastąpimy stałe liczbowe bardziej znaczącymi symbolami. Stąd wiemy, że włączenie kanałów A i D to
SRCA + DEST = $0900:
SRCA equ $100 ; użyj kanału A
DEST equ $800 ; użyj kanału D
Oraz nauczyć się operacji na bitach.
Przykład wyliczania, skąd się bierze wartość
$F0, kiedy chcemy zwyczajnie skopiować dane z kanału A.
Każdy bit odpowiada za koniunkcję kanałów A, B i C, bądź ich negacji.
Musimy wykluczyć pozostałe kanały, by nie wpływały na wynik, dlatego mnożymy A przez sumy B+NB oraz C+NC, bo te sumy bitowe mają zawsze wartość 1 (Literka N przed B oznacza bitową negację kanału B).
; A = A(B+NB)(C+NC) = ABC+ABNC+ANBC+ANBNC = $80+$40+$20+$10 = $F0
ABC equ $80
ABNC equ $40
ANBC equ $20
ANBNC equ $10
Ostatnia aktualizacja: 31.10.2022 20:16:28 przez Hexmage960