Moja odpowiedź na to pytanie ewoluowała stosunkowo niedawno. Istniejące odpowiedzi obejmują to, co powiedziałbym w przeszłości. W rzeczywistości jest to nadal objęte najważniejszą odpowiedzią - punkt „doceniaj konstrukty w programowaniu wyższego poziomu”, ale myślę, że jest to szczególny przypadek, o którym warto wspomnieć ...
Według tego posta na blogu Jeffa Atwooda , który odnosi się do badania, zrozumienie przypisania jest kluczową kwestią w zrozumieniu programowania. Programiści uczący się albo rozumieją, że notacja po prostu reprezentuje kroki, które podąża komputer, i uzasadniają te kroki, albo stają się wiecznie zdezorientowani przez wprowadzające w błąd analogie do równań matematycznych itp.
Cóż, jeśli rozumiesz następujące elementy z asemblera 6502 ...
LDA variable
CLC
ADC #1
STA variable
To naprawdę tylko kroki. Kiedy nauczysz się tłumaczyć to na instrukcję przypisania ...
variable = variable + 1;
Nie potrzebujesz wprowadzającej w błąd analogii do równania matematycznego - masz już prawidłowy model mentalny, aby go odwzorować.
EDYCJA - oczywiście jeśli wyjaśnienie, które otrzymujesz, LDA variable
jest w gruncie rzeczy ACCUMULATOR = variable
, dokładnie to, co otrzymujesz z niektórych samouczków i odniesień, kończysz tam, gdzie zacząłeś i wcale nie jest to pomocne.
Nauczyłem się asemblera 6502 jako mojego drugiego języka, z których pierwszym był Commodore Basic, i tak naprawdę niewiele się wtedy nauczyłem - częściowo dlatego, że tak mało było do nauczenia, ale także dlatego, że asembler wydawał się wtedy o wiele bardziej interesujący . Częściowo razy, częściowo dlatego, że miałem 14 lat geek.
Nie polecam robić tego, co zrobiłem, ale zastanawiam się, czy przestudiowanie kilku bardzo prostych przykładów w bardzo prostym języku asemblera może być wartościowym wstępem do nauki języków wyższego poziomu.