Praktikum Organisasi Komputer (Bahasa Assembly)

Slides:



Advertisements
Presentasi serupa
Flags.
Advertisements

Pemograman DEBUG.
Struktur CPU Organisasi Komputer TATA SUMITRA M.KOM HP
BAB IV MODE PENGALAMATAN
Organisasi Komputer : Struktur dan Fungsi Komputer 2
Bhakti Yudho Suprapto, MT
REGISTER Oleh : Oman Somantri, S.Kom
Struktur Register dan Metode Pengalamatan Memori
NAMA KELOMPOK NPM  ANDRIANA RESTIASARI  JULAEHA  JEN RETNO ERYANI DOSEN PEMBIMBING : NAHOT FRASTIAN UNIVERSITAS.
Pertemuan 3 Arsitektur Komputer II
© 2009 Fakultas Teknologi Informasi Universitas Budi Luhur Jl. Ciledug Raya Petukangan Utara Jakarta Selatan Website:
Struktur CPU By Serdiwansyah N. A..
Organisai dan arsitektur komputer
SISTEM KOMPUTER STRUKTUR CPU NI KETUT ESATI, S.Si.
Mikroprosesor 8086 dan 8088.
CPU (CENTRAL PROCESSING UNIT)
Mode Pengalamatan Mengatasi keterbatasan format instruksi
Central Processing Unit
ARSITEKTUR SET INSTRUKSI
PERTEMUAN KE-2 PERKULIAHAN SISTEM OPERASI
LOKASI DAN OPERASI MEMORI
REGISTER.
Mode Pengalamatan.
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
Sistem Pengolahan Data Komputer bag.1
ORGANISASI & ARSITEKTUR KOMPUTER 2 STRUKTUR & FUNGSI CPU IBP WIDJA, MT
EE-2623 Mikroprosesor & Antarmuka
SISTEM BILANGAN DAN REGISTER
MODE DAN FORMAT PENGALAMATAN.
Program Bahasa Rakitan dengan DEBUG.COM
Arsitektur Perangkat Lunak 8086
Arsitektur Mikroprosessor 8086
Register.
Central Processing Unit
SISTEM OPERASI Pertemuan 2 : Konsep Dasar Sistem Operasi
1 Pertemuan 3 Komponen Sistem Komputer dan Register pada prosesor 8088 Matakuliah: T0483 / Bahasa Rakitan Tahun: 2005 Versi: versi 1.0 / revisi 1.0.
Arsitektur & Organisasi Komputer BAB IIi STRUKTUR CPU Oleh : Bambang Supeno, ST., MT. Sep-17 Arsitektur & Organisasi Komputer.
Pengenalan Assembler.
Mode Pengalamatan Mengatasi keterbatasan format instruksi
EE-2623 Mikroprosesor & Antarmuka
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
MODE PENGALAMATAN DAN SET INSTRUKSI
CPU (CENTRAL PROCESSING UNIT)
Struktur Register Mikroprosesor 8086
Sistem Pengolahan Data Komputer
Triyogatama Wahyu Widodo
Matakuliah : H0162/ Mikroprosesor Tahun : 2006 Versi : 1/0
Struktur Register dan Metode Pengalamatan
REGISTER.
Mikroprosesor 8086 dan 8088.
Struktur CPU.
Pertemuan 2 Organisasi Komputer II
Sistem Bilangan & REGISTER
Pengenalan Assembler.
BAB III REGISTER 8088 Mikroprosesor 8088 berorientasi pada register
CPU (CENTRAL PROCESSING UNIT)
PENGANTAR TEKNOLOGI INFORMASI
Pertemuan ke - 6 Organisasi Komputer
Pertemuan 4 Central Processing Unit
DOSEN PENGAMPU :SOEGIARTO, M.KOM,
ARSITEKTUR & ORGANISASI KOMPUTER
Struktur CPU.
Copyright © Wondershare Software -m.erdda habiby.SST Central Processing Unit.
Struktur CPU.
Universitas Trunojoyo
CPU (CENTRAL PROCESSING UNIT)
Struktur Register dan Metode Pengalamatan Memori
ARSITEKTUR INTERNAL MIKROPROSESOR 8086
Struktur CPU.
Transcript presentasi:

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: Assembly (dengan DEBUG): Bahasa mesin: ??? #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

Arsitektur Mikroprosesor (CPU) Arsitektur umum Mikroprosesor Data Register Address Registers Control Unit Arithmetic Logic Unit Flags Register Data Bus Address Bus Output Lines 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 Register (16 Bit) 8 Bit Terendah 8 Bit Teratas Keterangan AX AL AH (Accumulator), sering digunakan untuk operasi aritmatika dan data movement. Operasi-operasi lain terkadang lebih efisien jika menggunakan register ini. BX BL BH (Base), digunakan juga dalam operasi aritmatika dan data movement. Mampu menyimpan alamat memori yang menunjuk ke suatu variabel (kemampuan pengalamatan). Register-register lain yang memiliki kemampuan pengalamatan adalah Index Registers (SI, DI dan BP). sony@ilkom.fmipa.ipb.ac.id

Register (Lanj.) Data (General Purpose) Registers Register (16 Bit) 8 Bit Terendah 8 Bit Teratas Keterangan CX CL CH (Counter), digunakan sebagai counter dalam instruksi perulangan (looping). Setiap terjadi perulangan secara otomatis register CX nilainya akan dikurangi satu dan perulangan akan berhenti ketika nilai register CX nol. DX DL DH (Data), digunakan untuk menyimpan alamat port I/O (8 bit atau 16 bit) Selain itu, memiliki peran khusus dalam operasi perkalian dan pembagian. Sebagai contoh, dalam perkalian DX akan menyimpan 16 bit nilai teratas dari hasil perkalian. 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 Register (16 Bit) Keterangan CS (Code Segment), menyimpan base location dari seluruh instruksi (kode) dari sebuah program Mendefiniskan alamat awal (starting address) dari bagian memori yang menyimpan kode program (instruksi) DS (Data Segment), merupakan default base location untuk variabel-variabel. CPU menghitung lokasi memori menggunakan nilai dari register DS SS (Stack Segment), berisi base location untuk stack. Stack entry point ditentukan oleh register SS dan SP (Stack Pointer  Special Registers). Register BP (Base Pointer  Index Registers) juga dapat digunakan bersama register SS. ES (Extra Segment), base location tambahan untuk variabel-variabel memori. Digunakan oleh beberapa instruksi terkait dengan string untuk menyimpan data tujuan 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 Register (16 Bit) Keterangan SI (Source Index), menyimpan alamat-alamat source dari data string dalam instruksi-instruksi string. Biasanya berisi offset dari register DS. DI (Destination Index), menyimpan alamat-alamat destination dari data string dalam instruksi-instruksi string. Biasanya berisi offset dari register ES, tetapi bisa juga digunakan untuk mengalamati variabel. BP (Base Pointer), Menunjuk ke sebuah lokasi memori (berlaku untuk seluruh jenis mikroprosesor) untuk melakukan proses transfer data pada memori. 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 Register (16 Bit) Keterangan IP (Instruction Pointer), berisi offset dari instruksi berikutnya yang akan dieksekusi. Register CS dan IP akan membentuk alamat memori lengkap dari instruksi berikutnya yang akan dieksekusi. SP (Stack Pointer), berisi offset/jarak dari awal stack segment sampai ke puncak stack. Register SS dan SP akan membentuk alamat memori lengkap dari puncak stack. sony@ilkom.fmipa.ipb.ac.id

Register (Lanj.) Flags Register x O D I T S Z A P C 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). 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 x O D I T S Z A P C sony@ilkom.fmipa.ipb.ac.id

Register (Lanj.) Flags Register Bit Arti Keterangan O Overflow Akan diset ketika hasil operasi aritmatika bilangan bertanda terlalu besar sehingga tidak cukup untuk disimpan di area tujuan. Bernilai 1 jika terjadi overflow dan 0 jika tidak terjadi overflow. D Direction Untuk memilih mode increment atau decrement untuk register DI dan/atau SI dalam instruksi string. Jika D=0 maka register Di dan SI akan secara otomatis dinaikkan (incremented). Flag D diset dengan perintah STD (set direction) dan direset dengan perintah CLD (clear direction). sony@ilkom.fmipa.ipb.ac.id

Register (Lanj.) Flags Register Bit Arti Keterangan I Interrupt Mengendalikan operasi dari pin input INTR (interrupt request). I=1 maka INTR dihidupkan. I=0 maka INTR dimatikan. Dikendalikan dengan peritah STI (set I flag) dan CLI (clear I flag). T Trap Memungkinkan trapping melalui fitur on-chip debugging. T=1 maka mikroprosesor akan menginterupsi alur program pada kondisi yang diindikasikan oleh debug registersdan control registers. T=0 fitur untuk trapping (debugging) dimatikan. sony@ilkom.fmipa.ipb.ac.id

Register (Lanj.) Flags Register Bit Arti Keterangan S Sign Menyimpan tanda bilangan hasil instruksi aritmatika atau logika. S=1 maka bagian MSD dari bit diset menjadi 1 yang berarti negatif. S=0 MSD di-clear menjadi 0 yang berarti positif. Z Zero Menunjukkan bahwa hasil operasi aritmatika bernilai nol. Z=1 maka hasil operasi bernilai nol. Z=0 berarti hasil operasi tidak bernilai nol. A Auxiliary Carry Menyimpan nilai carry (half carry) pada penjumlahan atau nilai borrow pada pengurangan antara posisi bit ke-3 dan ke-4 dari hasil. sony@ilkom.fmipa.ipb.ac.id

Register (Lanj.) Flags Register Bit Arti Keterangan P Parity Bernilai 0 untuk paritas ganjil (odd parity) dan bernilai 1 untuk paritas genap (even parity). Parity merupakan jumlah bit ‘1’ di dalam sebuah bilangan yang dinyatakan genap atau ganjil. Digunakan untuk verifikasi inegritas memori dan software komunikasi C Carry Menyimpan nilai carry pada penjumlahan dan nilai borrow pada pengurangan. Biasanya juga digunakan untuk mengindikasikan error condition yang terjadi pada program atau prosedur x Undifined - sony@ilkom.fmipa.ipb.ac.id

Register (Intel 8086-80286) General Purpose BP SP SI DI Index 16 Bit Flags IP Status and Control 16 Bit AH AL 8 Bit AX BH BL BX CH CL CX DH DL DX CS SS DS ES Segment 16 Bit sony@ilkom.fmipa.ipb.ac.id

Register (Intel 80386-Pentium 4) CS SS DS ES FS GS Segment ESP EBP SP BP DI SI EDI ESI 32 Bit Index IP EIP EFLAGS FLAGS Status and Control AH AL AX (16 Bit) EAX (32 Bit) BH BL BX (16 Bit) EBX (32 Bit) CH CL CX (16 Bit) ECX (32 Bit) DH DL DX (16 Bit) EDX (32 Bit) General Purpose 16 Bit 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

Pengalamatan Memori Sebuah alamat memori menunjukkan lokasi memori sepanjang 8 bit. Alamat memori dinyatakan dengan bilangan mulai dari 0 sampai ke lokasi memori tertinggi. Alamat memori bisa dinyatakan dalam 2 format heksadesimal: 32-bit segment-offset address. Merupakan kombinasi base location (segment) dengan offset untuk membentuk lokasi sebenarnya. Contoh : 08F1:0100. 20-bit absolute address. Menyatakan alamat memori sebenarnya. Contoh : 09010. Dengan alamat 20-bit dapat mengalamati 1.047.576 bytes memory, tetapi address registers hanya memiliki panjang 16 bit  solusi:kombinasi segment dan offset. sony@ilkom.fmipa.ipb.ac.id