270 likes | 540 Vues
Praktikum Organisasi Komputer (Bahasa Assembly). Departemen Ilmu Komputer FMIPA IPB 20 1 0. Abstraksi Komputer. Terdapat beberapa tingkatan mendeskripsikan komputer. Mulai dari level user terus menurun hingga level transistor.
E N D
Praktikum Organisasi Komputer (Bahasa Assembly) Departemen Ilmu Komputer FMIPA IPB 2010
Abstraksi Komputer • Terdapat beberapa tingkatan mendeskripsikan komputer. Mulai dari level user terus menurun hingga level transistor. • Semakin menurun tingkatan, struktur internal (fisik) komputer semakin jelas. Sebaliknya, semakin naik tingkatan, struktur internal (fisik) komputer semakin abstrak. sony@ilkom.fmipa.ipb.ac.id
Bahasa Assembly • Merupakan bahasa pemrograman dengan korespondensi satu-ke-satu antara statemen-statemennya (instruksi-instruksinya) dengan bahasa mesin yang dipahami oleh CPU. • Bahasa Assembly sering disebut low-level language (bahasa tingkat rendah) karena kedekatannya dengan bahasa mesin. • Walaupun dekat dengan bahasa mesin, statemen dalam bahasa Assembly masih bisa dipahami oleh manusia dan lebih mudah diingat. • Setiap bahasa Assembly dipengaruhi oleh instruction set pada CPU dan arsitektur hardware. • Sifat korespondensi satu-ke-satu antara bahasa Assembly dengan bahasa mesin milik CPU menjadikan program yang ditulis dalam bahasa assembly dapat berjalan lebih cepat dan efektif dibandingkan dengan ditulis dengan bahasa tingkat tinggi. • Assembler : Program untuk menkonversi source-code program ke dalam bahasa mesin. sony@ilkom.fmipa.ipb.ac.id
Contoh Program • C: #include <stdio.h> int main () { printf(“A”); return 0; } • Assembly (dengan DEBUG): mov ah, 02 mov dl, 41 int 21 int 20 • Bahasa mesin: ??? • Bagaimana perbandingan ukuran program dan kemudahan? sony@ilkom.fmipa.ipb.ac.id
System Bus Model • Komputer terdiri atas: CPU (ALU, Register dan Control), memori, dan unit input/output. • Komunikasi antarkomponen dilakukan melalui ‘jalur’ yang digunakan bersama. Jalur ini dikenal sebagai system bus, yang terdiri atas tiga bagian: data bus, address bus, dan control bus. sony@ilkom.fmipa.ipb.ac.id
Mengapa Belajar Bahasa Assembly ? • Mempelajari arsitektur komputer dan sistem operasi • Memahami bagaimana komputer membuat kode mesin • Menangani hal-hal yang sulit ditangani dengan menggunakan bahasa pemrograman tingkat tinggi • Keluar dari batasan-batasan yang ditetapkan dalam bahasa pemrograman tingkat tinggi sony@ilkom.fmipa.ipb.ac.id
Aplikasi Bahasa Assembly • Biasanya bahasa Assembly ditulis sebagai modul, kemudian dipanggil dari bahasa pemrograman tingkat tinggi (Pascal, C, C++, dll). • Sebagai contoh, kita membangun aplikasi dalam bahasa Pascal atau C++ kemudian kita ingin mengetahui disk free space, membuat subdirektori, atau berhubungan dengan alat-alat I/O secara langsung. • Utilities • Game trainer sony@ilkom.fmipa.ipb.ac.id
Tugas CPU • Tugas dasar dari CPU adalah : • Menemukan dan mengambil instruksi berikutnya. • Mengeksekusi instruksi tersebut : • Mengambil data dari memori/register • Menyimpan data ke dalam memori/register • Melakukan perhitungan dan perbandingan • Mengubah nilai Instruction Pointer (mis. branching) sony@ilkom.fmipa.ipb.ac.id
Data Bus Output Lines Data Register Address Registers ArithmeticLogic Unit ControlUnit Flags Register Address Bus Output Lines Arsitektur Mikroprosesor (CPU) • Arsitektur umum Mikroprosesor sony@ilkom.fmipa.ipb.ac.id
Arsitektur Mikroprosesor (CPU) (lanj.) • Arithmetic and Logic Unit (ALU) • Menangani perhitungan Aritmatika, logika, dan operasi pergeseran (shifting). • Control Unit (CU) • Mengambil data dan instruksi-instruksi (fetch). • Melakukan proses dekode alamat. • Register • Tempat penyimpanan berkecepatan tinggi pada CPU yang langsung terhubung ke CU dan ALU. • Merupakan “Special work areas” pada CPU yang dirancang untuk dapat bekerja dengan kecepatan tinggi. • Instruksi yang hanya melibatkan register akan berjalan lebih cepat dibandingkan dengan instruksi yang melibatkan memori ataupun tempat penyimpanan lain. • Hampir semua instruksi pada prosesor Intel membutuhkan paling sedikit satu register. • Data Bus dan Address Bus • ‘Kawat-kawat paralel’ (parallel wires) yang digunakan untuk transmisi data antarbagian pada CPU. sony@ilkom.fmipa.ipb.ac.id
Register • Data (General Purpose) Registers • Terdiri atas 4 buah register : AX,BX,CX,DX • Bisa diakses baik 32 bit (pada prosessor 80386-Pentium 4), 16 bit (pada prosessor 8088-80286) ataupun 8 bit • Digunakan untuk perhitungan aritmetika dan data movement sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Data (General Purpose) Registers sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Data (General Purpose) Registers sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Segment Registers • Digunakan untuk menyimpan base locations(lokasi awal) untuk instruksi-instruksi program, data, dan stack. • Seluruh referensi ke memori pada IBM-PC melibatkan sebuah segment register sebagai base location. • Mengenai segment dan offset akan dibahas pada bahasan pengalamatan memori. • Terdapat 4 jenis Segment Registers pada IBM-PC dan kompatibelnya (keluarga Intel) : CS (Code Segment),DS (Data Segment),SS (Stack Segment),ES (Extra Segment) sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Segment Registers sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Index Registers • Berisi offset dari variabel-variabel. • Offset adalah ‘jarak’ suatu variabel atau instruksi dari base segmentnya. • Register Index akan mempercepat pemrosesan string, array, dan struktur data lainnya yang terdiri atas banyak elemen. • Terdapat 3 jenis Register Index, yaitu : SI (Source Index),DI (Data Index), dan BP (Base Pointer). sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Index Registers sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Special Registers • Merupakan register-register yang tidak masuk ke kelompok-kelompok register sebelumnya. • Ada 2 Special Registers : IP (Instruction Register) dan SP(Stack Pointer). sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Special Registers sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Flags Register • Digunakan untuk menunjukkan status dari CPU dan mengendalikan operasi pada CPU. • Panjang Rgister Flag adalah 16 bit pada prosesor 8088-80286 (FLAG) dan 32 bit pada prosesor 80386-Pentium 4 (EFLAG). sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Flags Register sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Flags Register sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Flags Register sony@ilkom.fmipa.ipb.ac.id
Register (Lanj.) • Flags Register sony@ilkom.fmipa.ipb.ac.id
Status and Control Index Flags 8 Bit 8 Bit 8 Bit 8 Bit 8 Bit 8 Bit 8 Bit 8 Bit DX AX BX CX IP CS BP DH AH BH CH DL BL AL CL SP SS 16 Bit DS SI ES DI 16 Bit Segment 16 Bit Register (Intel 8086-80286) General Purpose sony@ilkom.fmipa.ipb.ac.id
General Purpose EDX (32 Bit) EAX (32 Bit) ECX (32 Bit) EBX (32 Bit) Segment EIP IP FLAGS SP DI SI BP DH CH AH BH CL DL BL AL EFLAGS CS Status and Control AX (16 Bit) BX (16 Bit) CX (16 Bit) DX (16 Bit) SS 32 Bit DS ES ESP FS EBP GS EDI 16 Bit Index ESI 32 Bit Register (Intel 80386-Pentium 4) Ada pada 8088-80286 Ada pada 80386-Pentium 4 sony@ilkom.fmipa.ipb.ac.id
Arsitektur Komputer • Bandingkan register-register 8086 dan 80386 • AH, AL, AX, EAX • dst sony@ilkom.fmipa.ipb.ac.id