14 Maret 2003 Bobby Nazief ([email protected]) Qonita Shahab ([email protected])
description
Transcript of 14 Maret 2003 Bobby Nazief ([email protected]) Qonita Shahab ([email protected])
1
IKI10230Pengantar Organisasi Komputer
Kuliah no. A3: Bahasa Rakitan AVRArithmetic & Logic Instructions
14 Maret 2003
Bobby Nazief ([email protected])Qonita Shahab ([email protected])
bahan kuliah: http://www.cs.ui.ac.id/~iki10230/
Sumber:1. AVR AT90S8515 Data Sheet.2. Materi kuliah CS152, th. 1997, UCB.
2
Arithmetic Instructions
3
Angka (values, constants)° LDI R16,0x39
° LDI R16,0b111001
° LDI R16,57
° LDI R16,’9’
sama
4
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!
5
Subtraction° SUBTRACTION (Pengurangan)
• Contoh: SUB
• Instruksi pengurangan format 2 operand, dengan hasil (destinations) operasi disimpan pada argumen PERTAMA
SUB Rd, RrThe 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
SUBI Rd, kIngat: immediates hanya dapat dioperasikan dengan R16-R31
Ingat: hasil operasi aritmetik disimpan di operand sebelah KIRI
6
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.)
7
Arithmetic Instructions: Lain-lain° ADIW
° SBIW
° DEC
° INC
° CLR
° MUL
° TST
° dsb
8
Logic Instructions
9
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.
10
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: …….
11
Logic Instructions: Lain-lain° AND
° ANDI
° OR
° ORI
° EOR
° dsb
12
Referensi° AVR Assembler User Guide
° http://www.avr-asm-tutorial.net
° AVR AT90S8515 Data Sheets
13
Tugas 1° Implementasi
• Data Transfer Instructions
• Arithmetic & Logic Instructions
° The ‘real’ tugas
° Lihat WebKuliah
° Batas waktu: 28 Maret 2003, pukul 00:00