MODE PENGALAMATAN DAN SET INSTRUKSI Alamat Memori Sel

  • Slides: 37
Download presentation
MODE PENGALAMATAN DAN SET INSTRUKSI

MODE PENGALAMATAN DAN SET INSTRUKSI

Alamat Memori • Sel memori dapat menyimpan informasi sebesar 1 byte (8 bit) •

Alamat Memori • Sel memori dapat menyimpan informasi sebesar 1 byte (8 bit) • Tiap sel memori diberi suatu alamat (address) dimulai dari 0 sampai dengan jumlah dari sel memori dikurangi 1

Alamat Memori • Contoh : Pada mikroprosesor Intel 8086/8088 memori mencapai 1 MB •

Alamat Memori • Contoh : Pada mikroprosesor Intel 8086/8088 memori mencapai 1 MB • 1 KB = 1024 byte • 1 MB = 1024 KB • 1 MB = 1024 x 1024 = 1048576 byte • 1048575(10) = FFFFF(16) • alamat terendah 00000 sampai alamat tertinggi FFFFF

Alamat Memori • Kemampuan hanya sebesar 16 bit • Menampung alamat memori sebanyak 216

Alamat Memori • Kemampuan hanya sebesar 16 bit • Menampung alamat memori sebanyak 216 = 65536 byte (64 KB), padahal alamat memori yang dipunyai sebesar 1048576 byte • Register yang ada register 16 bit – hanya dapat menampung 4 digit hexadesimal – dari 0000 sampai FFFF • Kurang 4 bit untuk menampung alamat memori • Harus dilakukan penomoran dengan 2 register

Alamat Memori • Sebuah register 16 bit sebelah kiri (register segment) • Sebuah register

Alamat Memori • Sebuah register 16 bit sebelah kiri (register segment) • Sebuah register 16 bit dari kanan (register offset) • Tiap segment dapat menjangkau 64 KB

Alamat Memori • Contoh :

Alamat Memori • Contoh :

Alamat Memori • Contoh :

Alamat Memori • Contoh :

Tabel Alamat Fisik Alamat fisik hexadesimal Alamat dalam Segment: Offset Alamat fisik desimal

Tabel Alamat Fisik Alamat fisik hexadesimal Alamat dalam Segment: Offset Alamat fisik desimal

Tabel Alamat Fisik

Tabel Alamat Fisik

Komponen Komputer

Komponen Komputer

Register • Memory Buffer Register (MBR), menyimpan isi dari alamat instruksi • Memory Address

Register • Memory Buffer Register (MBR), menyimpan isi dari alamat instruksi • Memory Address Register (MAR), menyimpan alamat instruksi • Instruction Register (IR), berisi instruksi kode operasi yang akan dieksekusi. • Program Counter (PC), berisi alamat pasangan instruksi berikutnya yang akan diambil dari memori. • Accumulator (AC/ACC) digunakan untuk penyimpanan sementara operand dan hasil ALU.

Mode Pengalamatan • Bagaimana cara menunjuk sebuah alamat di mana operand akan diambil •

Mode Pengalamatan • Bagaimana cara menunjuk sebuah alamat di mana operand akan diambil • Mode pengalamatan diterapkan pada set instruksi, dimana pada umumnya instruksi terdiri dari opcode (kode operasi) dan alamat

Contoh Proses Eksekusi Program REGISTER CPU • Program counter (PC) = alamat instruksi •

Contoh Proses Eksekusi Program REGISTER CPU • Program counter (PC) = alamat instruksi • Instruction register (IR) = instruksi yang dieksekusi • Accumulator(AC/ACC) = penyimpanan sementara

Contoh Proses Eksekusi Program CONTOH OPCODE • 0001(2) = 1(16) = Load AC dari

Contoh Proses Eksekusi Program CONTOH OPCODE • 0001(2) = 1(16) = Load AC dari memori • 0010(2) = 2(16) = Simpan AC pada memori • 0101(2) = 5(16) = tambahkan pada AC dari memori

Contoh Proses Eksekusi Program

Contoh Proses Eksekusi Program

Contoh Proses Eksekusi Program 1. 2. 3. 4. 5. 6. PC berisi 300, alamat

Contoh Proses Eksekusi Program 1. 2. 3. 4. 5. 6. PC berisi 300, alamat dari instruksi pertama (1940 – 1 adalah opcode dalam hexadesimal, 940 adalah alamat memori dimana data akan diambil). Instruksi 1940 diload ke dalam IR dan PC bertambah 1. 1940 di dalam IR mengindikasikan untuk load AC, jadi isi alamat memori 940 yaitu 0003 di-load ke AC Instruksi selanjutnya 5941, disimpan di IR, PC bertambah 1 Instruksi 5941, berarti tambahkan ke AC (isi alamat 941 adalah 0002, tambahkan ke AC yang sudah berisi 0003 menjadi 0005, simpan di AC) Instruksi 2941 di simpan di IR Instruksi 2941, artinya simpan ke memori (isi AC 0005, disimpan ke memori 941), PC bertambah 1

Jenis Mode Pengalamatan • Secara garis besar ada 3 jenis : • Direct –

Jenis Mode Pengalamatan • Secara garis besar ada 3 jenis : • Direct – Alamat operand ditunjuk secara langsung pada instruksi – Contoh : instruksi LOAD, cara penulisan : LOAD Y • Indirect – Alamat operand ditunjukkan secara tidak langsung oleh data yang terkandung pada alamat yang ditunjuk – Cara penulisan : LOAD (Y) • Immediate – Alamat operand tidak berisi sebuah alamat, tetapi langsung operand yang akan diproses – Cara penulisan : LOAD #9

Penerapan Mode Pengalamatan Misalkan kita memiliki contoh register dan memory sebagai berikut (bagian kiri

Penerapan Mode Pengalamatan Misalkan kita memiliki contoh register dan memory sebagai berikut (bagian kiri alamat, kanan datanya): Memory Register A 0 70 B 1 10 C 50 2 12 D 51 3 43 … … Y 50 3 Z 51 7 AC 52 10 … IR PC … 100 5 101 6 102 15

Direct • Untuk pemanggilan alamat operand berupa register disebut Register Addressing – Contoh :

Direct • Untuk pemanggilan alamat operand berupa register disebut Register Addressing – Contoh : LOAD C, akan menghasilkan ACC ← 50, karena alamat register C berisi 50 • Untuk pemanggilan alamat operand berupa memory disebut Direct Addressing – Contoh : LOAD 3, akan menghasilkan ACC ← 43, karena alamat memory 3 berisi bilangan 43

Indirect • Untuk pemanggilan alamat operand berupa register namanya Register Indirect Addressing – Contoh

Indirect • Untuk pemanggilan alamat operand berupa register namanya Register Indirect Addressing – Contoh : LOAD (D), akan menghasilkan ACC ← 7, karena alamat register D berisi alamat memory 51, sedangkan alamat memory 51 berisi bilangan 7 • Untuk pemanggilan alamat operand berupa memory namanya Indirect Addressing – Contoh : LOAD (50), akan menghasilkan ACC ← 43, karena alamat memory 50 berisi alamat memory 3, sedangkan alamat memory 3 berisi bilangan 43

Displacement / Penggantian • Merupakan alamat relatif, artinya alamat operand yang dituju berjarak n

Displacement / Penggantian • Merupakan alamat relatif, artinya alamat operand yang dituju berjarak n alamat dari sebuah alamat yang diekspresikan secara indirect • Contoh : LOAD (C) + 50 akan menghasilkan ACC ← 5, karena alamat register C berisi alamat 50, sedangkan alamat yang dituju berjarak +50 darinya. 50 + 50 = 100. Alamat 100 berisi bilangan 5

Immediate • Immediate tidak membutuhkan alamat memory/register, karena tempat untuk alamat operand diisi langsung

Immediate • Immediate tidak membutuhkan alamat memory/register, karena tempat untuk alamat operand diisi langsung oleh bilangan operandnya • Contoh 1 : LOAD #9, akan menghasilkan ACC ← 9, nilai di belakang tanda # dianggap sebagai operand-nya • Contoh 2 : ADD Y, #2, #3, akan menghasilkan register Y ← 5, kedua operand adalah 2 dan 3, dengan demikian 2+3 = 5

Contoh Soal • Berapakah isi register Y? • Gunakan kondisi register dan memori yang

Contoh Soal • Berapakah isi register Y? • Gunakan kondisi register dan memori yang ada! LOAD (C) ADD 3 SUB (0) MPY (C) + 50 DIV #9 STOR Y

Contoh Soal • Berapakah isi register Y? • Gunakan kondisi register dan memori yang

Contoh Soal • Berapakah isi register Y? • Gunakan kondisi register dan memori yang ada! INSTRUKSI ALGORITMIK ISI ACC LOAD (C) ADD 3 SUB (0) MPY (C) + 50 DIV #9 STOR Y AC ← 3 AC ← AC + 43 AC ← AC - 10 AC ← AC X 5 AC ← AC/9 Y ← 20 3 46 36 180 20 Register Y berisi 20

Tipe-Tipe Instruksi • Pada bahasa pemrograman tingkat tinggi, misal C, contoh : x =

Tipe-Tipe Instruksi • Pada bahasa pemrograman tingkat tinggi, misal C, contoh : x = x +y; • Statemen tersebut memberi instruksi kepada komputer untuk menambah nilai yang tersimpan di x dengan nilai yang tersimpan di y dan meletakkan hasilnya di x

Tipe-Tipe Instruksi • Pada bahasa mesin, operasi tersebut membutuhkan tiga instruksi (misalnya variabel x

Tipe-Tipe Instruksi • Pada bahasa mesin, operasi tersebut membutuhkan tiga instruksi (misalnya variabel x dan y terletak di lokasi 513 dan 514) : – Load register berisi lokasi memori 513 – Tambahkan isi lokasi memori 514 ke register – Simpan isi register di lokasi memori 513 • Bahasa pemrograman tingkat tinggi mengekspresikan operasi dalam bentuk aljabar ringkas, menggunakan variabel • Bahasa mesin mengekspresikan operasi dalam bentuk dasar melibatkan perpindahan data dari dan ke register

Tipe-Tipe Instruksi • Komputer harus memiliki suatu set instruksi supaya user dapat memformulasikan pemrosesan

Tipe-Tipe Instruksi • Komputer harus memiliki suatu set instruksi supaya user dapat memformulasikan pemrosesan data • Program yang ditulis dalam bahasa pemrograman tingkat tinggi harus diterjemahkan ke bahasa mesin untuk dijalankan/dieksekusi • Jadi, set instruksi harus mencukupi untuk menjalankan instruksi dari bahasa tingkat tinggi

Tipe-Tipe Instruksi • Instruksi Aritmatika dan Logika (Arithmetic and Logic Instruction) – Data Processing,

Tipe-Tipe Instruksi • Instruksi Aritmatika dan Logika (Arithmetic and Logic Instruction) – Data Processing, contoh : ADD, SUB, MPY, DIV, OR, AND • Instruksi Memory (Memory Instruction) – Data Storage, contoh : LOAD, STOR • Instruksi I/O (I/O Instruction) – Data Movement • Instruksi Test dan Branch (Test And Brach Instruction) – Control

Arithmetic Instruction • Menyediakan kemampuan komputasional untuk pemrosesan data numerik

Arithmetic Instruction • Menyediakan kemampuan komputasional untuk pemrosesan data numerik

Logic (Boolean) Instruction • Beroperasi pada level bit • Menyediakan kemampuan untuk memproses berbagai

Logic (Boolean) Instruction • Beroperasi pada level bit • Menyediakan kemampuan untuk memproses berbagai macam tipe data

Memory Instruction • Perpindahan data antara memori dan register

Memory Instruction • Perpindahan data antara memori dan register

I/O Instruction • Transfer program dan data ke memori dan hasil perhitungan ke user

I/O Instruction • Transfer program dan data ke memori dan hasil perhitungan ke user

Test And Branch Instruction • Digunakan untuk menguji nilai data atau status dari perhitungan

Test And Branch Instruction • Digunakan untuk menguji nilai data atau status dari perhitungan • Digunakan untuk percabangan pada set instruksi yang lain tergantung dari keputusan yang dibuat

Contoh Set Instruksi dan Operasinya

Contoh Set Instruksi dan Operasinya

Contoh Set Instruksi dan Operasinya

Contoh Set Instruksi dan Operasinya

Contoh Set Instruksi dan Operasinya

Contoh Set Instruksi dan Operasinya

Aksi Yang Dilakukan CPU Terhadap Berbagai Operasi

Aksi Yang Dilakukan CPU Terhadap Berbagai Operasi