Instruksi | Arti | contoh |
LDI Rd,K RD = K .d=16-31. K = 0-255 | Artinya copy data 8 bit ke GPR (hanya R16~R31). | LDI R16, 0xf |
ADD Rd,Rr | Rd = Rd + Rr | |
LDS Rd,K(LoaD direct to data Space)Rd = isi alamat K , d = 0~31 K = 0~FFFF | Copy isi alamat K ke RD | LDS R20,0×1.copy alamat 0×0001 (R1) ke R20. |
STS K, Rr(Store direct To data Space) | Mengcopy isi register Rr ke lokasi memory K | 1) STS 0×1 ,R10copy isi R10 ke alamat 0×0001 (R1).2) LDI R16,0×55 |
IN Rd,A | isi GPR dgn memori relatif SFR | IN R20,0×16 (PINB=mem adress 0×36, relatif adress 0×16) |
OUT A,Rr | isi reg i/o dengan Rr | Out PORTD,R10 |
JMP | spt goto bahasa C | lagi : IN R16, PINB |
MOV | Mengcopy data di antara register GPR | MOV R10, R20 |
Instruksi Operasi Aritmatika
Contoh : | ||
ADD | Menambahkan isi dua register. | add r15,r14 ; r15=r15+r14 |
ADC | Menambahkan isi dua register dan isi carry flag | adc r15,r14 ; r15=r15+r14+C |
SUB | Mengurangi isi dua register. | sub r19,r14 ; r19=r19-r14 |
MUL | Mengalikan dua register. Perkalian 8 bit dengan 8 bit menghasilkan bilangan 16 bit yang disimpan di r0untuk byte rendah dan di r1 untuk byte tinggi. Untuk memindahkan bilangan 16 bit antar register registerdigunakan instruksi movw (copy register word) | mul r21,r20 ; r1:r0=r21*r20 |
Instruksi Logika
Instruksi | Arti | Contoh |
AND Rm,Rn | Rm=Rm & Rn | AND Rr23,R27 |
ANDI Rn,kontanta | Rn=Rn & konstanta | ANDI R25,0b11110000 |
OR | R18 = R18 OR R17 | OR R18, R17 |
ORI | Rn = Rn OR konstanta | ori r15,0xfe |
INC | Rn = Rn + 1 | INC R16 |
DEC | Rn = Rn – 1 | DEC R16 |
CLR | Rn = 0 | CLR R15 ; R15=0×00 |
SER | Rn=0xFFh | SER R16 ; r16=0xff |
Instruksi I/O
Instruksi | Arti | Contoh |
IN | membaca data I/O port ke dalam register | IN R16,PinA |
OUT | menulis data register ke I/O port | OUT PortA,R16 |
LDI(load immediate) | menulis konstanta ke register sebelum konstanta tersebut | LDI R16,0xFF |
SBI(set bit in I/O) | membuat logika high pada sebuah bit I/O port | SBI PortB,7 |
CBI(clear bit in I/O) | membuat logika low pada sebuah bit I/O port | CBI PortB,5 |
SBIC(skip if bit in I/O is clear) | lompati satu instruksi jika bit I/O port dalam kondisi clear/low | SBIC PortA,3 |
SBIS(skip if bit in I/O is set) | lompati satu instruksi jika bit I/O port dalam kondisi set/high | SBIS PortB,3 |
Operasi Percabangan
Instruksi Percabangan
istruksi | arti | contoh |
Sbic (skip if bit in I/O is leared) | Skip jika bit I/O yang diuji clear | SBIC PINB,0; Skip if Bit 0 on port B is 0 |
Sbis (skip if bit in I/O is set) | Skip jika bit I/O yang diuji set |
|
sbrc (skip if bit in register is lear) | Skip jika bit dalam register yang diuji clear |
|
cp (compare) | Membandingkan isi dua register | cp r16,r18 ;brne lompat ;(menuju lompat jika r16=r18) |
cpi (compare with immediate) | Membandingakan isi register dengan konstanta tertentu | cpi r16,5 ; r16=5 ?breq lagi ;(menuju lagi jika r16 = 5 |
breq (branch if equal) | Lompat ke label tertentu jika suatu hasil perbandingan adalah sama |
|
brne (branch if not equal) | Lompat ke label tertentu jika suatu hasil perbandingan adalah tidaksama |
|
rjmp (relative jump) | Lompat ke label tertentu |
|
rcall (relative call) | Memanggil subrutin. |
|
ret (return) | Keluar dari sub rutin. |
|
CPSE(ComPare Skip if Equal) | Compare R1 and R2, skip if equal | CPSE R1,R2 |
Tidak ada komentar:
Posting Komentar
1. "Blog ini Do Follow, silakan post untuk mendapatkan Backlink"
2. "Anda Follow, pasti saya Followback"
3. "Kalau mau Copy-Paste artikel boleh saja, tapi sumbernya ke blog ini"
4. "Terima Kasih Lagi . . . !!!"
Komentar Anda Sangat Kami Harapkan Untuk Kemajuan Blog Ini. isikan komentar anda disini !