Ilustrasi kinerja CPU Contoh Ilustrasi Kerja CPU Anggap
- Slides: 37
Ilustrasi kinerja CPU
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, 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, 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 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 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 • 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 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 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 • 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 – 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 • 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 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 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 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 (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 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 – 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 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 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 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 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 : – 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 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) … LD A, 10 H ADD A, B … JP Start
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 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 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 • 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 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 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 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 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 – 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 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
Mikrokontroler Arduino
- Kinerja transportasi akan menentukan kinerja
- Kata pengelolaan berasal dari bahasa latin yaitu
- Contoh tim kerja dan kelompok kerja
- Xxxxxxxko
- Contoh kesimpulan penilaian kinerja guru
- Dimensi evaluasi
- Contoh pengisian pkg kepala perpustakaan
- Metode insiden kritis
- Ipr dalam akreditasi
- Contoh evaluasi kinerja
- Contoh indikator kinerja utama skpd
- Contoh evaluasi kinerja
- Yani kusmarni
- Indikator kinerja adalah
- Rubrik penilaian menulis kalimat
- Rubrik penilaian sbdp menyanyi
- Bagai menelan mestika embun ayat
- Materi pola organisasi
- Frasa nama frasa adjektif
- Ayat pasif kena
- Cpu monitor keyboard adalah contoh aspek perangkat
- Contoh ilustrasi keredaksian
- Http://sikda.lombokbaratkab.go.id
- Perbedaan cascading dan pohon kinerja
- Parasuman
- Contoh rubrik penilaian menyimak
- Estimasi indikator kinerja
- Sistem pengukuran kinerja sektor publik
- Estimasi indikator kinerja
- Penilaian kinerja karyawan pt indofood
- Tunjangan tugas belajar pns dalam negeri
- Aksi perubahan adalah
- Ruang lingkup manajemen kinerja
- Siklus manajemen kinerja
- Performance agreement
- Manajemen sdm global
- Kinerja sebuah algoritma biasanya diukur dengan menggunakan
- Konsep kinerja koperasi