1.
Ld arg1, arg2 ładuj rejestr pośrednio daną z pamięci SRAM spod adresu wskazywanego przez rejestr (np. X, Y, Z)
Arg1- rejestry 0-31
Arg2 - rejestr X, Y, Z,
mogą być z postinkrementacją (np. Rd, X+) Rd(X) XX+1
lub z predekrementacją X X-1 Rd(X)
(analogicznie w przypadku Z i Y)
PCPC +1
Flagi bez zmian
2. było we wcześniejszych rozwiązań
3.
Ldi r16,0x0f ; załadujemy jedynki do młodszej części tetrady
Out portd,r16 ; wysyłamy zawartość rejestru 16 na port D
Ldi r16, 0xf0 ; załadujemy jedynki do starszej części tetrady
Out ddrd,r16 ; wysyłamy zawartość rejestru 16 na DDRD
In r16, portd ; do rejestru 16 ładujemy zawartość portu D , czyli 0x0f
4.
ldi r16, 0xbc ; r16=0xbc, r17=? Z=? C=?
ldi r17, 0x2b ; r16=0xbc, r17=0x2b Z=? C=?
andi r16, 0x7a ; r16=0x38, r17=0x2b Z=0 C=?
eor r16, r17 ; r16=0x13, r17=0x2b Z=0 C=?
5.
Andi r1, 0b 0000 1011 ; testujemy bity czy na 0,1 lub 4 bicie jest 1 (pierwotna zawartość r1 może być zmieniona dlatego andi bezpośrednio na r1 , w przeciwnym wypadku należałby skopiować r1 do innego rejestru np. mov r1, r16
brbs 1, dalej ; jeśli jest jakas 1 ;to idziemy do dalej a jeśli 0 to przejdzie do call pp2
call pp2 ; wywołujemy podprogram 2
dalej:
call pp1 ;wywołujemy podprogram 1
grupa 2
1,2,3 podobnie j.w 5 było we wcześniejszych rozwiązaniach
4.
ldi r16, 0xbd ; r16=0xbd, r17=? Z=? C=?
ldi r17, 0x0f ; r16=0xbd, r17=0f Z=? C=?
eor r16, r17 ; r16=0xb2, r17=? Z=0 C=?
ori r16, 0x16 ; r16=0xb6, r17=? Z=0 C=?