1.
Ld argl, arg2 ładuj rejestr pośrednio daną z pamięci SRAM spod adresu wskazywanego przez rejestr (np. X, Y, Z)
Argl- rejestiy 0-31 Arg2 - rejestr X, Y, Z,
mogą być z postinkrementacją (np. Rd, X+) Rd<-(X) X<-X+l lub z predekrementacją X<-X-1 Rd<-(X)
(analogicznie w przypadku Z i Y)
PC^PC+1 Flagi bez zmian
2. było we wcześniejszych rozwiązań
3.
Ldi rl6,0x0f ; załadujemy jedynki do młodszej części tetrady
Out portd,rl6 ; wysyłamy zawartość rejestru 16 na port D
Ldi rl6, 0xf0 ; załadujemy jedynki do starszej części tetrady
Out ddrd,rl6 ; wysyłamy zawartość rejestru 16 na DDRD
In r!6, portd ; do rejestru 16 ładujemy zawartość portu D, czyli 0x0f
ldi rl6, 0xbc ; rl6=0xbc, rl7=? Z=? C=? Idirl7, 0x2b ; rlG=0xbc, rl7=0x2b Z=? C=? andi rl6, 0\7a ; r 16=0x38, rl7=0x2b Z=0 C=? eor rlG, rl7 ; rl6=0xl3, rl7=0x2b Z=0 C=?
5.
Andi rl, Ob 0000 1011; testujemy bity czy na 0,1 lub 4 bicie jest 1 (pierwotna zawartość rl może być zmieniona dlatego andi bezpośrednio na rl, w przeciwnym wypadku należałby skopiować rl do innego rejestru np. mov rl, rl6
brbs 1, dalej ; jeśli jest jakaś 1 ;to idziemy do dalej a jeśli 0 to przejdzie do cali pp2 cali pp2 ; wywołujemy podprogram 2
dalej:
cali ppl ;wywołujemy podprogram 1 grupa 2
1,2,3 podobnie j.w 5 było we wcześniejszych rozwiązaniach
4.
ldi rl6, Oxbd ; rl6=0xbd, rl7=? Z=? C=? ldi rl7, 0x0f ; rl6=0xbd, rl7=0f Z=? C=? eor rl6, rl7 ; rl6=0xb2, rl7=? Z=0 C=? orir!6, 0x16 ; rl6=0xb6, rl7=? Z=0 C=?