Ilustrasi kinerja CPU Contoh Ilustrasi Kerja CPU Anggap

  • Slides: 37
Download presentation
Ilustrasi kinerja CPU

Ilustrasi kinerja CPU

Contoh Ilustrasi Kerja CPU • Anggap, ada program yang tersimpan pada Memory Alamat Data

Contoh Ilustrasi Kerja CPU • Anggap, ada program yang tersimpan pada Memory Alamat Data 0000 3 E 0001 8 B 0002 D 3 Memory PPI 8255 0003 83 0004 3 E CPU Z 80 0005 55 0006 D 3 0007 80 0008 76 RD – WR - CS Port A Port B Port C Data BUS Address BUS Control BUS VCC – CLOCK - RESET CPU akan membaca/menjalankan tiap data sesuai dengan yang telah ditentukan (oleh pembuat CPU)

Dasar Pemrograman Assembly • Istilah dalam pemrograman Assembly • Mode Pengalamatan – Immediate, Register,

Dasar Pemrograman Assembly • Istilah dalam pemrograman Assembly • Mode Pengalamatan – Immediate, Register, Langsung, Tak Langsung, Indeks • Pembagian Instruksi – Transfer, Aritmatik dan Logic, Percabangan, Pemanggilan, Input-Output • Contoh-contoh

Istilah dalam pemrograman Assembly • Memory, I/O, port, alamat, data, register, instruksi, mnemonic, opcode,

Istilah dalam pemrograman Assembly • Memory, I/O, port, alamat, data, register, instruksi, mnemonic, opcode, operand, komentar • Kode mesin, bahasa assembly • Assembler, Compiler • Style penulisan Program Assembly, Kode mesin, Listing program

Register • Berada dalam CPU (Mikroprosesor) • Digunakan untuk menyimpan data selama proses/program/sub program

Register • Berada dalam CPU (Mikroprosesor) • Digunakan untuk menyimpan data selama proses/program/sub program berjalan • Bersifat sementara – Umumnya selama dalam sub program • Cepat • Memerlukan kode instruksi yang pendek • Memiliki/menggunakan nama tertentu

Ilustrasi Beberapa Perintah • • LD LD A, B A, 20 H A, (8000

Ilustrasi Beberapa Perintah • • LD LD A, B A, 20 H A, (8000 H) A, (HL) Pemrograman dalam bentuk asembly 78 3 E 20 3 A 00 80 7 E (M 1, 4 T) (M 1 -M 2, 7 T) (M 1 -M 2 -M 3 -M 4, 13 T) (M 1 -M 2, 7 T) Oleh asembler atau orang, diterjemahkan dalam bentuk kode mesin Oleh CPU akan dijalankan dalam cara tertentu (contoh, yang berkaitan dengan diagram pewaktuan)

Memory • Berada di luar CPU, harus ada – CPU hanya dapat memproses dari

Memory • Berada di luar CPU, harus ada – CPU hanya dapat memproses dari memory • Digunakan untuk menyimpan program dan data • Bersifat permanen atau sementara • Jumlah atau ukurannya besar/banyak, jauh lebih banyak dari register • Lebih lambat dari CPU atau register • Memerlukan kode instruksi yang lebih panjang • Memiliki/menggunakan data/alamat memory

I/O • Berada di luar CPU • Harus ada kalau ingin berhubungan antara sistem

I/O • Berada di luar CPU • Harus ada kalau ingin berhubungan antara sistem mikro dengan dunia luar • Tidak bersifat menyimpan data, hanya melewatkan data – Khusus untuk port output, terkadang dilengkapi dengan fungsi latch • Kapasitas terbatas (lebih kecil dari memory) • Lebih lambat dari CPU, register, memory • Menggunakan alamat port

Alamat • Register dinyatakan dengan nama, sedangkan memory dan port dinyatakan dengan alamat •

Alamat • Register dinyatakan dengan nama, sedangkan memory dan port dinyatakan dengan alamat • Alamat menyatakan – Posisi dari data yang disimpan pada memory – Saluran dari port dimana data akan disalurkan • Untuk z 80 – Alamat memory berkisar 0000 H s/d FFFFH – Alamat port berkisar 00 H s/d FFH • Umumnya, memori yang digunakan dari jenis RAM dan ROM, sehingga rentang alamat tersebut harus dibagi untuk RAM dan ROM

Port • Istilah yang digunakan untuk menyatakan saluran dari peralatan input/output yang digunakan •

Port • Istilah yang digunakan untuk menyatakan saluran dari peralatan input/output yang digunakan • Anggap, kalau peralatan I/O merupakan penghubung suatu area dengan dunia luar, maka port dapat dianggap sebagai pintu atau gerbang-nya • Akan ada beberapa port untuk terhubung dengan dunia luar, dan dinyatakan dalamat port atau nomor port atau nama port – Contoh Port A dari PPI 8255 • PPI adalah nama salah satu perangkat I/O yang memiliki 4 port dengan nama A, B, C, dan CR (Control Register) • CR bukan pintu atau gerbang yang sesungguhnya. Hanya tempat untuk menyimpan data konfigurasi

Port (Lanjutan) • Dalam Z 80, alamat atau nomor port hanya dibatasi sebanyak 256

Port (Lanjutan) • Dalam Z 80, alamat atau nomor port hanya dibatasi sebanyak 256 port – Alamat/Nomor port 00 H sampai dengan FFH • Mengingat, perangkat I/O yang kemungkinan akan digunakan dalam sistem mikroprosesor cukup banyak, maka rentang alamat tersebut akan dibagi-bagi untuk sesiap perangkat I/O

Data • Menyatakan sesuatu yang disimpan/diproses/disalurkan, baik berupa suatu nilai atau kode program •

Data • Menyatakan sesuatu yang disimpan/diproses/disalurkan, baik berupa suatu nilai atau kode program • Dapat disimpan di register atau memory – Terkadang port output juga bisa menyimpan • Dalam z 80, data yang diproses dalam bentuk satuan 8 bit (1 byte) dengan nilai 0 s/d 255 – Ada proses/penyimpanan yang melibatkan data 16 bit

Kode Mesin • Program yang umumnya ditulis dalam bentuk kode Hexa • Merupakan kode

Kode Mesin • Program yang umumnya ditulis dalam bentuk kode Hexa • Merupakan kode yang dimengerti oleh mesin (CPU) • Terdiri dari alamat dan kode instruksi (data-data berupa program yang tersimpan di memory) • Contoh : – 0100 – 0102 Alamat 3 E 20 DD 21 8000 Kode Mesin

Opcode • Operation code, kode operasi, kode-kode tertentu yang dibuat • Menyatakan satu perintah

Opcode • Operation code, kode operasi, kode-kode tertentu yang dibuat • Menyatakan satu perintah dasar, misalkan isi register A • Digunakan dalam pemrograman mesin atau assembly • Contoh : – LD – ADD – SUB A A, B Load (isi, transfer, simpan, ambil) register A Jumlahkan, A dengan B Kurangkan, A dengan B

Operand • Sesuatu yang perlukan sebagai tambahan pada suatu opcode agar membentuk satu perintah

Operand • Sesuatu yang perlukan sebagai tambahan pada suatu opcode agar membentuk satu perintah lengkap • Berupa data atau alamat memory atau I/O • Contoh : – LD A, 20 H data 20 H sebagai operand – OUT (80 H), A alamat 80 H sebagai operand – LD A, (2000 H) alamat 2000 H sebagai operand

Contoh • • LD LD LD OUT Opcode A, 20 H BC, 2000 H

Contoh • • LD LD LD OUT Opcode A, 20 H BC, 2000 H (BC), A (80 H), A Operand Assembly 3 E 20 01 00 20 02 D 3 80 Opcode Operand (Operation Code) Kode Mesin

Sekilas Tentang Opcode • CPU Z 80 memiliki lebar data 8 bit, sehingga memiliki

Sekilas Tentang Opcode • CPU Z 80 memiliki lebar data 8 bit, sehingga memiliki kemungkinan data antara 00 H sampai dengan FFH • Perintah-perintah yang akan dikerjakan CPU ditulis dalam bentuk angka-angka (kode angka) untuk mewakili 1 perintah • Total perintah yang bisa dikodekan sebanyak 256 kode – Ada yang menggunakan hampir semua, atau bahkan lebih – Ada yang hanya menggunakan sedikit sekali • Kode-kode ini disebut dengan kode operasi, operation code (Opcode) – Data tambahan selain opcode disebut sebagai operand (membentuk satu kesatuan perintah/instruksi)

Arah Operasi • LD A, B ; A B, atau A = B –

Arah Operasi • LD A, B ; A B, atau A = B – Salin data dari B ke A • ADD A, B ; A A + B, A = A + B – Jumlahkan A dengan B dan simpan di A

Catatan Operand • Ada dua jenis cara menuliskan operand – Data langsung (8 bit

Catatan Operand • Ada dua jenis cara menuliskan operand – Data langsung (8 bit atau 16 bit atau label) • 80 H, 2000 H, CW, Data. Motor • Catatan: Data-data tersebut bisa jadi nanti dalam proses program dianggap sebagai alamat – Alamat langsung (alamat 8 bit, 16 bit atau label) • (80 H), (8000 H), (2000 H), (Buffer) LD LD A, 20 H A, (8000 H) BC, 9000 H A, (BC) Data Alamat Data 9000 H pada BC akan digunakan sebagai alamat

Catatan Operand (Lanjutan) • Lebar data operand harus sesuai dengan lebar data register yang

Catatan Operand (Lanjutan) • Lebar data operand harus sesuai dengan lebar data register yang digunakan • Lebar data yang sedang dioperasikan (dimasukkan, diambil, dihitung atau lainnya), harus sesuai dengan lebar data register yang digunakan LD LD LD A, 20 H operand 8 bit dimasukkan ke register 8 bit BC, 2000 Hoperan 16 bit dimasukkan ke register 16 bit A, (8000 H) operand 16 bit sebagai alamat (alamat 16 bit) data dari memori 8 bit dimasukkan ke reg. 8 bit A, B data dari reg. 8 bit dimasukkan ke reg. 8 bit BC, DE data dari reg. 16 bit dimasukkan ke reg. 16 bit

Mana yang Salah ? • • • LD LD LD A, C A, HL

Mana yang Salah ? • • • LD LD LD A, C A, HL A, (DE) BC, 0 DE, 8000 H A, 2000 H HL, (8000 H) A, (20 H)

Mnemonic • Menyatakan satu perintah tunggal, termasuk format data atau sesuatu yang dioperasikan oleh

Mnemonic • Menyatakan satu perintah tunggal, termasuk format data atau sesuatu yang dioperasikan oleh data tersebut • Terdiri dari opcode dan operand (data, register, memory atau port) • Contoh : – LD – ADD – LD r, n A, r r, r’ r n nn d register 8 bit data 16 bit displacement (pergeseran 8 bit)

Instruksi • Menyatakan satu perintah/program tunggal • Terdiri dari Opcode dan Operand • Contoh

Instruksi • Menyatakan satu perintah/program tunggal • Terdiri dari Opcode dan Operand • Contoh : – LD – IN A, 30 H Masukkan 30 H ke A B, A Masukkan/salin A ke B A, (81 H) Baca port 81 H ke A

Label • Suatu tulisan yang digunakan untuk menunjukkan posisi dari suatu instruksi • Digunakan

Label • Suatu tulisan yang digunakan untuk menunjukkan posisi dari suatu instruksi • Digunakan untuk menggantikan alamat pada penulisan bahasa assembly • Terkadang label dapat digunakan sebagai data • Nilai sesungguhnya dari label tidak dapat diketahui sebelum semua program selesai dan diterjemahkan ke dalam kode mesin • Ditandai dengan titik dua setelah nama label

Contoh Label Start: LD Tabel: B, 20 H LD HL, Tabel JP (HL) …

Contoh Label Start: LD Tabel: B, 20 H LD HL, Tabel JP (HL) … LD A, 10 H ADD A, B … JP Start

Komentar • Suatu tulisan selain instruksi yang digunakan untuk menjelaskan program • Seharusnya selalu

Komentar • Suatu tulisan selain instruksi yang digunakan untuk menjelaskan program • Seharusnya selalu ada, mengingat pemrograman assembly lebih sulit untuk dibaca • Sebagai dokumentasi • Harus diawali dengan titik koma (; ) • Contoh : LD CALL A, 32 LCD ; Siapkan data SPASI ke Reg. A ; Tampilkan ke LCD

Bahasa Assembly • Artinya bahasa yang dirakit/dibuat untuk menggantikan kode mesin yang sulit untuk

Bahasa Assembly • Artinya bahasa yang dirakit/dibuat untuk menggantikan kode mesin yang sulit untuk dibaca/dihafalkan/dimengerti/ditulis • Terdiri dari Label, Opcode, Operand dan komentar • Contoh : Mulai: LD SP, 0 ; Posisi awal STACK LD B, 0 ; Tunggu sesaat DJNZ $ ; dengan cara loop 256 x

Assembler • Suatu program yang digunakan untuk menterjemahkan, atau lebih tepat mengubah dari bahasa

Assembler • Suatu program yang digunakan untuk menterjemahkan, atau lebih tepat mengubah dari bahasa assembly ke dalam kode mesin • Jika suatu komputer dengan prosesor tertentu digunakan untuk menterjemahkan kode dari prosesor lain, maka assembler tersebut dinamakan “Cross Assembler”

Prinsip Kerja Assembler • Secara umum, proses assembly dibagi dua tahap – Pass 1

Prinsip Kerja Assembler • Secara umum, proses assembly dibagi dua tahap – Pass 1 • Mencatat simbol-simbol, pengenal (identifier), label dan lainnya • Mengurutkan kode mesin untuk mengetahui alokasi alamat atau label-label yang ada – Pass 2 • Penterjemahan instruksi demi instruksi program assembly berdasarkan mnemonic dan identifier yang digunakan

Compiler • Suatu program yang digunakan untuk menterjemahkan, menyusun, menggabungkan dari bahasa tingkat tinggi/menengah

Compiler • Suatu program yang digunakan untuk menterjemahkan, menyusun, menggabungkan dari bahasa tingkat tinggi/menengah ke dalam kode mesin • Jika suatu komputer dengan prosesor tertentu digunakan untuk menterjemahkan kode dari prosesor lain, maka assembler tersebut dinamakan “Cross Compiler”

Style penulisan Program • Kode mesin ; Ini 0000 0002 0004 contoh program dalam

Style penulisan Program • Kode mesin ; Ini 0000 0002 0004 contoh program dalam kode mesin 3 E 30 ; Masukkan 30 H ke Reg. A 06 00 ; Masukkan 0 H ke Reg. B 0 E 20 ; Masukkan 20 H ke Reg. C • Assembly ; ini contoh program dalam bahasa assembly Start: LD A, 30 H ; Masukkan 30 H ke Reg. A LD B, 0 ; Masukkan 0 H ke Reg. B LD C, 32 ; Masukkan 20 H ke Reg. C • Listing program

Contoh Format Listing Program Alamat 0000 0002 0004 0006 0008 000 A 000 D

Contoh Format Listing Program Alamat 0000 0002 0004 0006 0008 000 A 000 D Data/Kode Label 3 E 06 0 E D 3 DB 31 … ; Ini contoh suatu program ; yang ditulis dalam asembly ; dan di-assembly dengan assembler ; Di. Buat Oleh : Eru. P ; Tanggal : 9 September 2015 ; Keluaran : 1. 00 Start: LD A, 30 H ; Mulai LD B, 0 LD C, 32 OUT (80 H), A IN A, (81 H) LD SP, 0000 H … 30 00 20 80 81 0000 Opc Operand Komentar

Assembler Directive • Perintah-perintah tambahan yang disertakan dalam program assembly, tetapi bukan bagian dari

Assembler Directive • Perintah-perintah tambahan yang disertakan dalam program assembly, tetapi bukan bagian dari perintah assembly • Digunakan untuk memberitahukan assembler mengenai apa yang harus dilakukan • Sangat membantu dalam pembuatan program assembly • Bentuk assembler directive tergantung dari assebler yang digunakan

Contoh Assembler Directive • ORG Origin – Penentuan alamat program • EQU Equal –

Contoh Assembler Directive • ORG Origin – Penentuan alamat program • EQU Equal – Membuat suatu identifier, atau konstanta • DEFB Define Byte – Meletakkan data Byte ke dalam program • DEFM Define Memory – Meletakkan beberapa data Byte dalam program • DEFS Define Storage – Memesan tempat kosong dalam memory

Contoh Program Simpan Data Start: Nilai: Buffer: EQU ORG LD LD HALT ; DEFB

Contoh Program Simpan Data Start: Nilai: Buffer: EQU ORG LD LD HALT ; DEFB ORG DEFS 9000 H 20 H 0 H A, Data (Simpan), A A, (Nilai) (Buffer), A ; Simpan = 9000 H ; Data = 20 H ; Alamat 0000 H 30 H 8000 H (2) ; [Nilai] 30 H ; Alamat 8000 H ; [Buffer] 2 Byte ; [9000 H] 20 H ; A [Nilai] ; [Buffer] A

Diagram Blok Mikrokontroler

Diagram Blok Mikrokontroler

Mikrokontroler Arduino

Mikrokontroler Arduino