PEMROGRAMAN BAHASA RAKITAN

dokumen-dokumen yang mirip
Secara fisik, kerja dari sebuah mikrokontroler dapat dijelaskan sebagai siklus

Microcontroller: Bahasa Pemrograman Assembly 8051

INTRUKSI-INTRUKSI BAHASA PEMROGRAMAN ASSEMBLY

Menggunakan Bahasa Pemrograman Assembly

Bahasa Pemrograman Assembler 8051

Sistem Bilangan & Dasar Assembler Dadang Mulyana

PERTEMUAN BAHASA PEMOGRAMAN DAN FORMAT BILANGAN MIKROKONTROLER

Organisasi & Arsitektur Komputer

MODUL I PENGENALAN ASSEMBLY

8/4/2011. Microprocessor & Microcontroller Programming. Bahasa Pemrograman. Bahasa Pemrograman. Bahasa Pemrograman

BAHASA PEMROGRAMAN MIKROKOMPUTER

Pertemuan 2. sistem bilangan

REPRESENTASI DATA. Pengantar Komputer Teknik Sipil dan Perencanaan Universitas Gunadarma

Sistem Bilangan dan Pengkodean -2-

Materi 4: Assembly Language Programming

BAB 3 MODE AKSES MEMORI, PENGGUNAAN VARIABEL DAN STACK

BAHASA MESIN. PDE - bahasa mesin 1

BAB V MEMULAI DENGAN ASSEMBLY

SATUAN ACARA PERKULIAHAN Mata Kuliah: BAHASA RAKITAN Jurusan / Jenjang / Kode / SKS : SI / D3 / KK /2

SISTEM BILANGAN DAN FORMAT DATA

BAB VI MIKROKONTROLER

PERCOBAAN 1 DISPLAY LED

Representasi Data. M. Subchan M

DIKTAT BAHASA RAKITAN

Daftar Isi. Daftar Isi Pertemuan 6: Perintah Masukkan dari Keyboard P6.1. Teori Masukkan dari Keyboard... 3

Sistem Bilangan. Rudi Susanto

8/4/2011. Microprocessor & Microcontroller Programming. Sistem Bilangan. Sistem Bilangan. Sistem Bilangan. Sistem Bilangan

MAKALAH. Mata Kuliah. Arsitektur dan Organisasi Komputer

Pertemuan ke 6 Set Instruksi. Computer Organization Dosen : Eko Budi Setiawan

ARSITEKTUR SISTEM KOMPUTER. Wayan Suparta, PhD Maret 2018

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Aritmatik Komputer. Oky Dwi Nurhayati, ST, MT

BAHASA PEMOGRAMAN AT89S/Cxx (assembly)

MAKALAH KONVERSI BILANGAN

Rencana Program dan Kegiatan Pembelajaran Semester (RPKPS) MIKROPROSESOR

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

Representasi Data Digital (Bagian 1)

Tahun Akademik 2015/2016 Semester I DIG1B3 Konfigurasi Perangkat Keras Komputer

BAHASA DAN PENGEMBANGAN PROGRAM MIKROPROSESOR

KOMPETENSI DASAR : MATERI POKOK : Sistem Bilangan URAIAN MATERI 1. Representasi Data

a b a AND b a OR b a XOR b a NOT a

BAB I TUGAS MATA KULIAH SISTEM MIKROPROSESOR DOSEN PEMBERI TUGAS : FATAH YASIN, ST, MT.

Bab 1. Pemrograman dan Bahasa Rakitan. 1.1 Pendahuluan

Review Kuliah Sebelumnya

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM POINTER OPERASI ARITMATIKA

Sistem Bilangan & Kode Data

Representasi Bilangan dan Operasi Aritmatika

Quis. 2. Sistem bilangan yang menggunakan basis 8 adalah: A. Biner D. Hexadesimal B. Oktal E. Sexagesimal C. Desimal

DCH1B3 Konfigurasi Perangkat Keras Komputer

Perangkat Lunak Untuk Simulasi Penerapan Modus Pengalamatan Dan Operasi Aritmatika Bahasa Rakitan Pada Mikroprosesor 8086/8088

LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY PROGRAM OPERASI ARITMATIKA. Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210

Sasaran Pertemuan 2 PERTEMUAN 2 SISTEM BILANGAN

Definisi Gerbang Logika

Sistem Bilangan Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2012/2013 STMIK Dumai -- Materi 08 --

Pokok Pokok Bahasan :

RUNNING TEXT. Gambar 1. Susunan Running Text

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

Algoritma dan Struktur Data

ORGANISASI KOMPUTER INSTRUKSI MESIN DAN PROGRAM MATA KULIAH:

MODUL 1 SISTEM BILANGAN

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

SISTEM BILANGAN, OPERASI ARITMATIKA DAN PENGKODEAN

Sistem Bilangan Mata Kuliah Arsitektur Komputer Program Studi Sistem Informasi 2012/2013 STMIK Dumai -- Materi 08 --

DCH1B3 Konfigurasi Perangkat Keras Komputer

SISTEM BILANGAN DAN KONVERSI BILANGAN. By : Gerson Feoh, S.Kom

MODUL PRAKTIKUM ORGANISASI SISTEM KOMPUTER

Arsitektur dan Organisasi Komputer. Set instruksi dan Pengalamatan

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

BAB V b SISTEM PENGOLAHAN DATA KOMPUTER (Representasi Data) "Pengantar Teknologi Informasi" 1

SISTEM BILANGAN. B. Sistem Bilangan Ada beberapa sistem bilangan yang digunakan dalam sistem digital, diantaranya yaitu

BAB 2 LANDASAN TEORI. bisa digunakan untuk memindahkan program yang ber-ekstention.hex ke Flash,

Memprogram Port sebagai Output dan Input Sederhana

BAB II ARITMATIKA DAN PENGKODEAN

Pendahuluan (1) D E F

SET INSTRUKSI. Organisasi dan Arsitektur Komputer

Representasi Bilangan dan Operasi Aritmatika

Web Site :

FORMAT BILANGAN DALAM MIKROPROSESOR

2.1 Desimal. Contoh: Bilangan 357.

BAHASA RAKITAN BAB I BILANGAN

MODUL V STACK dan PENGENALAN PROCEDURE

Daftar Isi. Daftar Isi Pertemuan 2: Pengenalan Debug dan Interrupt P2.1. Teori Pengenalan DEBUG... 3

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

BAB IV IMPLEMENTASI DAN PENGUJIAN IMPLEMENTASI DAN PENGUJIAN

Assessment KE-4 DCH1B3 (Konfigurasi Perangkat Keras Komputer) Semester Gasal 2016/2017. Desember 2016 Durasi : 100 menit

BUKU PETUNJUK PRAKTIKUM DASAR ALGORITMA DAN PEMROGRAMAN

MODUL III FLOW CONTROL INSTRUTIONS

Part 2 - Algoritma & Pemrograman Konsep dasar Pemrograman

Sistem Digital. Sistem Angka dan konversinya

SATUAN ACARA PERKULIAHAN MATA KULIAH ORGANISASI SISTEM KOMPUTER KODE / SKS : KD / 3

PERTEMUAN : 4 EKSPLORASI DEBUG

Representasi Bilangan dan Operasi Aritmatika

Pengenalan Pemrograman

Pemrograman Assembler dengan Debug

Bagian 2 STRUKTUR CPU

Kuis : Bahasa Rakitan (UAS)

BAB I PENDAHULUAN. A. Deskripsi. B. Prasyarat. C. Petunjuk Penggunaan Modul. 1. Bagi Guru/Fasilitator

BAHASA KOMPUTER. Komunikasi antara manusia dengan komputer (HUMAN COMPUTER INTERACTION HCI)

Hanif Fakhrurroja, MT

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR APLIKASI DASAR INSTRUKSI ARITMATIKA DAN OPERASI LOGIK

REGISTER Register-register yang terdapat pada mikroprosesor, antara lain :

Transkripsi:

BUKU AJAR PEMROGRAMAN BAHASA RAKITAN oleh : Adian Fatchur Rochim, ST, MT Program Studi Sistem Komputer Fakultas Teknik Universitas Diponegoro 2009

KATA PENGANTAR Puji syukur dipanjatkan kehadirat Allah SWT karena hanya atas izin-nya, penyusunan buku ajar Pemrograman Bahasa Rakitan, dapat diselesaikan dengan baik. Maksud disusunnya buku ajar ini untuk membantu mahasiswa didalam mengikuti perkuliahan di Program Studi Sistem Komputer Fakultas Teknik Universitas Diponegoro. Diharapkan dengan telah disusunnya buku ajar ini, perkuliahan akan dapat dilaksanakan dengan lebih terarah dan sistematis. Secara umum materi Bahan-bahan Listrik ini meliputi : 1. Pengantar Bahasa Rakitan 2. Dasar Dasar Mikroprosesor 3. Konversi Bilangan 4. Sintaks-sintaks instruksi Bahasa Rakitan 5. Interupsi Interupsi pada Bahasa Rakitan Tiada gading yang tak retak, penyusunan buku ajar inipun tentu masih terdapat kekurangan disana-sini, saran dan kritik yang membangun sangat diharapkan. Penyempurnaan akan dilakukan dengan menambah materi dari beberapa referensi buku, jurnal maupun artikel hasil penelitian. Semoga buku ajar ini bermanfaat. Semarang, Juli 2009 Penyusun

DAFTAR ISI Halaman Judul... Kata Pengantar... Daftar Isi... Hal i ii iii BAB I BAB II BAB III BAB IV BAB V BAB VI BAB VII PENGANTAR BAHASA RAKITAN DAN KONVERSI BILANGAN HEX, DEC DAN BINER 1.1. Pendahuluan 1 1.2. Konversi Bilangan 3 DASAR DASAR MIKROPROSESOR 2.1 Umum 7 2.2. Konfigurasi Dasar Sistem Mikroprosesor 9 2.3. Unit Pemroses Pusat 10 2.4. Memori 11 KONVERSI, REGISTER, DAN PENGELOLAAN MEMORI 3.1 Konversi Alamat Fisik ke Alamat Logika 14 3.2. Pengertian Register 15 3.3. General Purpose Register 17 3.4. Segmen Register 19 3.5. Pointer Register 20 3.6. Index Register 20 3.7. Struktur Organisasi Memori 23 3.8. Peta Memori 25 INTERUPSI DAN COMPILER BAHASA RAKITAN 4.1 Compiler dan Linker 31 4.2. Perbedaan com dan exe 33 INSTRUKSI-INSTRUKSI BAHASA RAKITAN & PROGRAM BAHASA RAKITAN SEDERHANA 5.1 Label 35 5.2 Komentar 35 5.3. Perintah MOV 35 5.4. Perintash INT 36 5.5. Mencetak Huruf 41 OPERASI ARITMATIKA 6.1 Operasi Penambahan 47 6.2. Operasi Pengurangan 51 6.3. Operasi Perkalian 56 6.4. Operasi Pembagian 57 BANDINGKAN DAN LOMPAT

7.1 Lompat Tanpa Syarat 59 7.2. Membandingkan dengan CMP 59 7.3. Lompat yang mengikuti CMP 60 7.4. Lompat Bersyarat 62 BAB VIII S T A C K 8.1 Apa itu STACK 66 8.2 Cara Kerja STACK 67 DAFTAR PUSTAKA 73

B A B I PENGANTAR BAHASA RAKITAN DAN KONVERSI BILANGAN HEX, DEC DAN BINER Tujuan Instruksional Pada Bab ini dijelaskan kedudukan dan posisi bahasa rakitan dibandingkan dengan bahasa aras sangat rendah (bahasa mesin) dan bahasa tingkat menengah (C/C++) dan bahasa tingkat tinggi (Pascal dsb). Juga dijelaskan dalam bab ini mengenai representasi kode kode dalam bilangan biner, desimal dan hexadesimal. Yang diharapkan dalam bab selanjutnya akan lebih mudah mengikuti pembelajaran mengenai instruksi bahasa rakitan, mengingat kesemua data menggunakan pola pola konversi bilangan yang wajib bagi mahasiswa untuk menguasai terlebih dahulu bab ini. 1. Pendahuluan Bahasa Rakitan termasuk ke dalam bahasa tingkat rendah dan merupakan bahasa dasar komputer. Bahasa ini memerlukan logika yang cukup rumit di samping instruksinya yang jauh berbeda dengan bahasa pemrograman lainnya. Program yang dihasilkan memiliki kecepatan yang paling baik. Kelebihan dari bahasa rakitan adalah : 1. Memiliki fasilitas fungsi dan makro (ciri khas bahasa pemrograman yang menyebabkan pemrograman menjadi lebih mudah). 2. Program dapat dibuat secara modular (dipecah dalam modul-modul kecil dan dapat diintegrasikan kembali). 3. Ukuran program lebih kecil, sehingga lebih menghemat media penyimpan. 4. Lebih dekat ke hardware sehingga seluruh kemampuan komputer dapat dimanfaatkan secara maksimal. Bahasa rakitan merupakan bahasa pemrograman yang posisinya di antara bahasa pemrograman lainnya adalah termasuk dalam bahasa pemrograman tingkat rendah karena bahasa ini berhubungan langsung dengan bahasa mesin. Sedangkan bahasa pemrograman Delphi berada di atas bahasa pemrograman rakitan, yang sering disebut OOP (Object Orinted Programming).

Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang bisa dijalankan oleh komputer. Sedangkan bahasa rakitan memakai kode mnemonic untuk menggantikan kode biner, agar lebih mudah diingat sehingga memudahkan penulisan program. Program yang ditulis dengan bahasa rakitan terdiri dari label; kode mnemonic dan lainnya, pada umumnya dinamakan sebagai program sumber (source code) yang belum bisa diterima oleh prosesor untuk dijalankan sebagai program tapi harus diterjemahkan terlebih dahulu menjadi bahasa mesin dalam bentuk kode biner. Jika yang ditulis hanya bahasa rakitan saja maka biasanya program dibuat dengan program editor biasa, misalnya note pad pada Windows atau sidekick pada DOS, selanjutnya program sumber diterjemahkan ke bahasa mesin dengan menggunakan program rakitan. Hasil kerja program rakitan adalah program objek dan juga rakitan listing. Tapi karena di sini bahasa rakitan ditulis bersama dengan bahasa Delphi maka program dibuat di dalam editor milik Delphi. Program objek berisikan kode kode bahasa mesin, kode kode bahasa mesin inilah yang diumpankan ke memori memori prosesor. Perlu diperhatikan bahwa setiap prosesor mempunyai konstruksi yang berbeda beda, instruksi untuk mengendalikan masing masing prosesor juga berbeda beda. Dengan demikian bahasa rakitan untuk masing masing prosesor juga berbeda, yang sama hanyalah pola dasar cara penulisan program rakitan saja. Adapun bagan kerja proses rakitan dapat dilihat pada Gambar 2.2 : Program Objek EPROM/ Microcontroller Kode Sumber Rakitan Assembly Listing Gambar 2.2 Bagan kerja proses rakitan

Dalam bahasa rakitan program sumbernya menganut prinsip 1 baris untuk satu perintah, setiap baris perintah tersebut bisa terdiri atas beberapa bagian, yaitu bagian label, bagian mnemonic, dan bagian operan yang bisa lebih dari satu. Label mewakili nomor memori program dari instruksi pada baris yang bersangkutan, misal pada saat menulis JUMP, label ini ditulis pada bagian operand untuk menyatakan nomor memori program yang dituju. Dengan demikian label selalu mewakili nomor memori program dan harus ditulis di bagian awal baris instruksi. Selain label dikenal pula symbol, yakni satu nama yang mewakili satu nilai tertentu dan nilai yang diwakili bisa apa saja tidak harus nomor memori program. Cara penulisan simbol sama dengan penulisan label, harus dimulai di huruf pertama dari baris instruksi. Mnemonic merupakan singkatan perintah, dikenal dua macam mnemonic, yakni mnemonic yang dipakai sebagai instruksi mengendalikan prosesor, misalnya ADD, MOV, DJNZ dan lainnya. Ada pula mnemonic yang dipakai untuk mengatur kerja dari program rakitan misalnya ORG, EQU atau DB, mnemonic untuk mengatur kerja dari program rakitan ini dinamakan sebagai rakitan directive. Operan adalah bagian yang letaknya di belakang bagian mnemonic, merupakan pelengkap bagi mnemonic. Kalau sebuah instruksi diibaratkan sebagai kalimat perintah, maka mnemonic merupakan subjek (kata kerja) dan operan merupakan objek (kata benda) dari kalimat perintah tersebut. 2. Konversi Bilangan Hexadesimal, Biner dan Desimal sebagai modal awal belajar Bahasa Pemrograman Rakitan Salah satu penyebab kesulitan mahasiswa untuk mempelajari bahasa Rakitan adalah hal hal yang menyangkut konversi Bilangan biner dan hexadecimal. Meskipun dianggap sesuatu hal yang mengada ada oleh sebagian anda bahwa : untuk apa bilangan bilangan direpresentasikan dengan orde yang bermacam-macam? Yang malah menyulitkan bagi pengguna bilangan. Sebetulnya tidak demikian. Coba anda bayangkan bagaimana merepresentasikan Bilangan desimal 4 (yang kita pakai sehari hari) dalam digital? Seperti yang anda ketahui dalam dunia digital representasi adalah 1 dan 0, karena secara fakta lebih mudah dan tegas perbedaan antara 1 dan 0. 1 adalah on dan 0 adalah off.

Disebut sebagai biner (1 dan 0) sehingga dari ungkapan saya diatas dapat dipahami mengapa biner dibutuhkan, sehingga desimal 4 adalah 100 (biner) kalau representasi pada nyala 3 buah led maka nyala padam dan padam. Kemudian muncul pertanyaan untuk apa bilangan hexadesimal? Coba bayangkan representasi bilangan desimal 65536 dalam biner..? maka anda dapat menulis sepanjang 16 bilangan biner. Hal ini sangat menyulitkan kala sudah masuk dalam pemrograman, sehingga muncul bilangan orde 16 atau hexadesimal yang berfungsi untuk menyederhanakan penulisan (mengecilkan ukuran representasi bilangan desimal dan biner ) menjadi FF (hexadesimal) hanya membutuhkan dua karakter bilangan saja. Oleh sebab itulah mengapa biner dan hexadesimal dibutuhkan dalam representasi bilangan. Oleh karena itu pemahaman konversi bilangan penting sebab penggunaan mereka menyederhanakan lain topik kompleks termasuk desain logika dengan aljabar boolean, untuk meyederhanakan representasi data. Bab ini mendiskusikan beberapa konsep penting mencakup konversi biner dan hexadecimal, sistem, organisasi data biner (bytes), sistem nomorsign dan unsign, perhitungan, logis, pergeseran, dan operasi rotasi pada biner, bit dan representasi data, dan karakter ASCII. Bab ini wajib anda kuasai, sebelum anda menguasai sistem bilangan dan konversinya sebaiknya tidak melangkah ke bab berikutnya. BILANGAN DESIMAL Kita terbiasa dengan bilangan basis 10 (desimal) coba anda lihat angka ini 123 representasi dalam bilangan basis 10 adalah seperti berikut : 1*10 2 + 2*10 1 + 3*10 0 atau sama dengan 100 + 20 + 3 kemudian coba perhatikan bilangan ini 123,456 direpresentasikan dalam desimal sebagai berikut 1*10 2 + 2*10 1 + 3*10 0 +4*10. -1 +5*10-2 +6*10-3 atau sama dengan 100 + 20 + 3 + 0,4 + 0,05 + 0,006

BILANGAN BINER Sistem komputer menggunakan bilangan biner, dioperasikan menggunakan logika biner. Komputer merepresentasikan nilai-nilai menggunakan dua tingkatan voltase yang pada umumnya 0v dan + 5v. Dengan dua nilai seperti kita dapat merepresentasikan persisnya dua nilai-nilai berbeda. Ini bisa karena dimanapun dua nilai yang berbeda secara absolut, Dalam penggunaanya kita menggunakan nilai-nilai nol dan satu. Contoh disini sangat mudah untuk mengkonversikan bilangan biner ke desimal. Anda perhatikan bilangan biner ini 11001010 2 direpresentasikan dengan cara seperti pada desimal diatas menjadi sebagai berikut : 1*2 7 + 1*2 6 + 0*2 5 + 0*2 4 + 1*2 3 + 0*2 2 + 1*2 1 + 0*2 0 sama dengan 128 + 64 + 8 + 2 202 10 Mudah kan? Sedangkan untuk mengkonversi desimal ke biner agak sedikit lebih sulit, karena anda harus menemukan terlebih dahulu pangkat dua tertinggi berapakah yang sama dengan atau lebih kecil dari bilangan desimal yang akan dikonversi. Contoh anda perhatikan bilangan berikut : 1359 (desimal) coba kita konversikan.. - cari nilai pangkat dua yang sama dengan atau lebih kecil dari 1359, kita ambil misalnya 2 10 = 1024 -> lebih kecil dari 1359, kemudian - kita naikkan satu tingkat 2 11 = 2048 ternyata 2048 lebih besar dari 1359, sehingga kita pilih 2 pangkat 10 (2 10 ). - Kurangkan desimal yang akan dikonversi dengan nilai desimal dari pangkat dua yang lebih kecil dari bilangan tersebut sehingga, 1359-1024 adalah sama dengan 335 - Cari bilangan pangkat dua yang lebih kecil atau sama dengan 335 -> 2 8 = 256. - Kurangkan 335 dengan 256, 335 256 = 79 - Ulangi langkah keempat kita dapatkan pangkat dua yang mendekati adalah 64 shg 79-64 = 5 - Ulangi lagi langkah sebelumnya kita dapat 4, mjd 5-4 = 1

- Dari hasil langkah langkah tersebut diatas dilengkapi sampai nilai nomila terkecil kemudian diurutkan dan kemudian kita susun binernya menjadi seperti berikut ini - 2 10 2 8 2 6 2 4 2 3 2 2 2 1 dan 2 0 selanjutnya kita urutkan mulai bilangan pangkat dua terbesar sampai yang terkecil, pangkat dua yang terepresentsi spt hitungan kita tadi kita urutkan dengan 1 yang terwakili dan 0 tidak terwakili menjadi urutan bilangan biner seperti ini : 1010101111 BILANGAN HEXADESIMAL Bilangan Hexadesimal merupakan bilangan dengan orde 16, Dengan urutan sebagai berikut (paling kiri merupakan MSB dan paling kanan adalah LSB) : F E D C B A 9 8 7 6 5 4 3 2 1 0. dimana bilangan F adalah 16 dalam orde 10 dan 1111 dalam orde biner. Konversi bilangan dari bilangan biner ke hexadesimal sangat mudah, bila dibandingkan konversi dari bilangan hexadesimal ke desimal. Cara mengkonversi bilangan hexadesimal ke biner adalah dengan cara menguraikan bilangan bilangan hexadesimal tersebut empat bit empat bit sesuai dengan konversi dalam biner. Contoh bilangan FE 16 dalam konversi biner nya adalah F menjadi 1111 2 dan E menjadi 0001 2 sehingga FE 16 = 11110001 2. Cara mengkonversi ke bilangan desimal sama dengan biner Contoh: 3A hexa = (3 * 161) + (10 * 160) = 48 + 10 = 58 desimal