130 likes | 248 Views
IKI10230 Pengantar Organisasi Komputer Kuliah no. A 3 : Bahasa Rakitan AVR Arithmetic & Logic Instructions. Sumber : 1. AVR AT90S8515 Data Sheet. 2. Materi kuliah CS152, th. 1997, UCB. 14 Maret 2003 Bobby Nazief (nazief@cs.ui.ac.id) Qonita Shahab (niet@cs.ui.ac.id)
E N D
IKI10230Pengantar Organisasi KomputerKuliah no. A3: Bahasa Rakitan AVRArithmetic & Logic Instructions Sumber:1. AVR AT90S8515 Data Sheet.2. Materi kuliah CS152, th. 1997, UCB. 14 Maret 2003 Bobby Nazief (nazief@cs.ui.ac.id)Qonita Shahab (niet@cs.ui.ac.id) bahan kuliah: http://www.cs.ui.ac.id/~iki10230/
sama Angka (values, constants) • LDI R16,0x39 • LDI R16,0b111001 • LDI R16,57 • LDI R16,’9’
Addition • ADDITION (Penambahan) • Contoh: ADD • Instruksi perhitungan format 2 operand, dengan hasil (destinations) operasi disimpan pada argumen PERTAMA ADD Rd, Rr Tambahkan isi register Rd dan Rr, simpan hasilnya pada isi register Rd The arguments can ONLY be registers, no values, no constants • ADD IMMEDIATES • ADDI tidak ada!
Subtraction • SUBTRACTION (Pengurangan) • Contoh: SUB • Instruksi pengurangan format 2 operand, dengan hasil (destinations) operasi disimpan pada argumen PERTAMA SUBRd, Rr The arguments can ONLY be registers, no values, no constants • SUBTRACT IMMEDIATES • Contoh: SUBI • Instruksi perhitungan dengan values/constants, dengan hasil (destinations) operasi disimpan pada argumen PERTAMA SUBIRd, k Ingat: immediates hanya dapat dioperasikan dengan R16-R31 Ingat: hasil operasi aritmetik disimpan di operand sebelah KIRI
Example: Add & Sub • Bagaimana jika instruksi HLL: a = b + c + d – e; • Pecahkan dalam step instruksi dan gunakan register sementara (temporer) • .. Lakukan load isi register R1, R2, R3, R4 dengan nilai/lokasi memori b, c, d, e Add R1, R2 ; R1 => temp = b + c Add R1, R3 ; R1 => temp = temp + d Sub R1, R4 ; R1 => a = temp – e • Hasil perhitungan (nilai a) berada pada R1, store R1 ke lokasi a. • Tanda: ; (akhir dari baris instruksi, sisanya diabaikan sbg. ket.)
Arithmetic Instructions: Lain-lain • ADIW • SBIW • DEC • INC • CLR • MUL • TST • dsb
Example: Compare Instructions • Contoh instruksi yang mempengaruhi status register • Instruksi: cp (singkatan “compare”, membandingkan dengan dua argumen) cp Rd, Rr ; operasi compare Rd dan Rr • Evaluasi instruksi sebenarnya: Rd – Rr • Hasil ini akan men-set flag bit: Z (zero) pada status register, jika evaluasi “subtraction” ini adalah 0 atau (Rd == Rr) • Note: “side effect” pada status register, tapi nilai Rd dan Rr tidak berubah. • Remember terminologi: set => 1 dan reset => 0.
Example: Compare “Immediate” • Instruksi “compare” argumen dapat menggunakan bilangan konstan cpi Rd, K ; evaluasi Rd – K, set flag bit • set flag Z; jika hasil evaluasi (Rd-K) = 0 • Contoh: cpi r11, 5 ;compare R11 dengan 5 breq Error ;branch ke Error jika Z di set … Error: …….
Logic Instructions: Lain-lain • AND • ANDI • OR • ORI • EOR • dsb
Referensi • AVR Assembler User Guide • http://www.avr-asm-tutorial.net • AVR AT90S8515 Data Sheets
Tugas 1 • Implementasi • Data Transfer Instructions • Arithmetic & Logic Instructions • The ‘real’ tugas • Lihat WebKuliah • Batas waktu: 28 Maret 2003, pukul 00:00