1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A5: Bahasa Rakitan AVR Stacks & SubRoutine Calls 28 Maret 2003 Bobby Nazief Qonita.

Slides:



Advertisements
Presentasi serupa
Pemograman DEBUG.
Advertisements

1 IKI10230 Pengantar Organisasi Komputer Pembahasan PR #3, #4, #5 4 Juni 2003 Bobby Nazief Qonita Shahab bahan.
1 IKI20210 Pengantar Organisasi Komputer Kuliah No. 18: I/O, Interupsi 15 November 2002 Bobby Nazief Johny Moningka
Mikrokontroller Berbasiskan RISC 8 bits
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. 12: Tugas No. 4 Sumber: 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization, ed-5.
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. 07: Tugas No. 2 Sumber: 1. Paul Carter, PC Assembly Language 2. Hamacher. Computer Organization, ed-5.
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A4: Bahasa Rakitan AVR Conditional & Branch Instructions 21 Maret 2003 Bobby Nazief
Tipe-Tipe Instruksi MCS-51 (Arithmatika)
Gambaran Umum Sistem Operasi
Mode Pengalamatan.
STRUKTUR DATA array stack dan queue
Chapter 20 Pembentukan Kode.
Turbo Assembly Stack.
Parameter formal adalah variabel yang ada pada daftar parameter dalam
Pertemuan 5 STACK atau TUMPUKAN IMAM SIBRO MALISI NIM :
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A8: Bahasa Rakitan AVR Latihan 23 Mei 2003 Bobby Nazief Qonita Shahab
Organisasi Komputer STMIK – AUB SURAKARTA
© 2009 Fakultas Teknologi Informasi Universitas Budi Luhur Jl. Ciledug Raya Petukangan Utara Jakarta Selatan Website:
IKI10230 Pengantar Organisasi Komputer Solusi UTS
Situasi Saat Program Berjalan (Run-time Environment)
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A1: AVR Assembler & Studio 28 Februari 2003 Bobby Nazief Qonita Shahab
IKI20210 Pengantar Organisasi Komputer Kuliah Minggu ke-5a: Prosesor
Algoritma dan Struktur Data
STACK (Tumpukan).
STACK.
STACK.
Struktur Data (Data Structure) – IS 2313
STACK.
IKI10230 Pengantar Organisasi Komputer Kuliah no
MEMORY (Manajemen Memori)
Mode Pengalamatan Mengatasi keterbatasan format instruksi
ADDRESSING MODES Penjelasan dan program lihat pada Pemograman Bahasa Assembly (Ilmu Komputer)
PERTEMUAN KE-2 PERKULIAHAN SISTEM OPERASI
REGISTER.
1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A3: Bahasa Rakitan AVR Arithmetic & Logic Instructions 14 Maret 2003 Bobby Nazief
stack ==tumpukan== Tenia wahyuningrum st3 telkom purwokerto
Mode Pengalamatan Memori
Program Bahasa Rakitan dengan DEBUG.COM
Arsitektur Perangkat Lunak 8086
Pertemuan 4 (Set Instruksi ARM)
Mikrokontroler Materi 2
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
1 Pertemuan 3 Komponen Sistem Komputer dan Register pada prosesor 8088 Matakuliah: T0483 / Bahasa Rakitan Tahun: 2005 Versi: versi 1.0 / revisi 1.0.
Pengenalan Assembler.
BAB IV Teknik Pemrograman
Mode Pengalamatan Mengatasi keterbatasan format instruksi
Stack dan Procedure.
Defri Kurniawan ADT STACK Defri Kurniawan
STRUKTUR DATA STACK.
Mode Pengalamatan.
Stack Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman Bersifat LIFO (Last In First Out) Benda yang terakhir masuk ke dalam.
SAP-3.
IKI10230 Pengantar Organisasi Komputer Kuliah no
SISTEM MIKROPROSESOR PERTEMUAN 4.
REGISTER.
IV. Proses-proses Terdapat beberapa definisi proses, diantaranya proses sebagai program yang sedang dalam keadaan eksekusi Proses membutuhkan sumber daya.
ARSITEKTUR KOMPUTER.
Pengenalan Assembler.
STACK (Tumpukan).
STACK Yohana Nugraheni.
Algoritma dan Struktur Data
STACK & QUEUE Struktur Data.
STACK.
Pertemuan 4 Central Processing Unit
STRUKTUR DATA STACK.
Double STACK 6.3 & 7.3 NESTED LOOP.
PROCESSOR.
Memori & Pemrograman MCS-51
CHAP 6 SET INSTRUKSI MEMORI
Defri Kurniawan ADT STACK Defri Kurniawan
Transcript presentasi:

1 IKI10230 Pengantar Organisasi Komputer Kuliah no. A5: Bahasa Rakitan AVR Stacks & SubRoutine Calls 28 Maret 2003 Bobby Nazief Qonita Shahab bahan kuliah: Sumber: 1. AVR AT90S8515 Data Sheet. 2. Materi kuliah CS152, th. 1997, UCB.

2 Instruksi: Stacks & Subroutine Calls

3 Apakah Stacks? °‘Tumpukan balok-balok kayu’ °PUSH: ‘menambah satu balok pada tumpukan paling atas’ °POP: ‘mengambil balok yang paling atas’

4 Stack AVR °Stack ditempatkan di memori data (SRAM) °Top-of-stack ditunjuk oleh Stack Pointer (SP), yang berukuran 16 bit dan terletak di ruang I/O (hanya dapat diakses dengan menggunakan instruksi I/O) °Sebelum digunakan, SP harus diinisialisasi terlebih dahulu dengan cara:.equ SPH = $3E.equ SPL = $3D.equ RAMEND = $25F ldi r16,low(RAMEND) out SPL,r16 ldi r16,high(RAMEND) out SPH,r16; SP points to RAMEND

5 Stack AVR - Kegunaan °PUSH-POP: Jika tidak ada lagi tempat penyimpanan (register, memori) pada saat ada data baru yang perlu disimpan Register sudah penuh Tak ada tempat lain utk menyimpan data Data tersebut akan digunakan lagi di bagian lain program Jika masih ada tempat untuk menyimpan data, tidak perlu menggunakan PUSH/POP, karena akan memboroskan processor time °CALL-RET: Jika kita menggunakan subroutine Setelah eksekusi subroutine, perlu kembali ke ‘si pemanggil’

6 Push/Pop, Call/Ret °Push R x M[SP]  R x SP  SP – 1 °Rcall Addr Push PC hi Push PC lo PC  Addr °Pop R x SP  SP + 1 R x  M[SP] °Ret Pop PC lo Pop PC hi °Contoh Segmen Program: ldir16,low(RAMEND) outSPL,r16 ldir16,high(RAMEND) outSPH,r16 … pushr17; save r17 pushXL; save X pushXH rcallMySubRoutine popXH popXL; restore X popr17; restore r16 … LIFO

7 PUSH/POP °Misalnya ada suatu data hasil kalkulasi berulang, di mana sudah tidak ada register yang dapat menyimpannya °Cara kerja: Data temporary yang berada dalam register di-PUSH ke dalam stack Register ybs dapat digunakan utk menyimpan data lain Jika data temporary diperlukan, dapat dilakukan POP untuk mengembalikan data ke register °Contoh: F = ((A*B) + C) * D Hasil (A*B) ada di R16, nilai D ada di R17 Isi R17 di-PUSH ke stack Load isi R17 dengan C Jumlahkan Kembalikan (POP) nilai D ke R17 Kalikan

8 Contoh Program PUSH/POP ldiTEMP,5;isi TEMP = 5 pushTEMP;isi stack paling atas = 5 ldiTEMP,2;isi TEMP = 2 pushTEMP;isi stack paling atas = 2 ldiTEMP,1;isi TEMP = 1 popTEMP;kembalikan nilai 2 ke TEMP popTEMP;kembalikan nilai 5 ke TEMP

9 CALL/RET °Misalnya ada suatu loop yang perlu dikerjakan, lalu setelah loop diperlukan suatu data hasil dari pekerjaan dalam loop °Cara kerja: Pada saat subroutine dipanggil (rcall), maka nilai program counter disimpan di dalam stack Subroutine dikerjakan Setelah selesai subroutine, untuk kembali ke lokasi tadi dilakuan pop nilai program counter dari stack °Bagaimana jika stack pointer tidak diinisialisasi terlebih dahulu? Pointer menunjuk ke mana? Bagaimana jika ada rcall dan ret?

10 Contoh Program Call/Ret jobs: ldiTEMP,5;angka 5 untuk disimpan ldiCOUNTER,5;jumlah lokasi ldiHASIL,0xA0;lokasi awal rcallloop;melakukan pekerjaan ldiXL,0xB0 stX,HASIL;menyimpan lokasi terakhir rjmpfinish;kemudian selesai loop:;memasukkan angka 5 ke movZL,HASIL;lokasi 0xA0 s.d. 0xA5 st Z,TEMP decCOUNTER incHASIL cpi COUNTER,0 brneloop ret finish: rjmpfinish;selesai

11 Referensi °AVR Assembler User Guide °