dikt

13
Modul I dan II Page 1 DIKTAT BAHASA RAKITAN Riki Ruli S

description

belajar emulator

Transcript of dikt

  • Modul I dan II Page 1

    DIKTAT

    BAHASA RAKITAN

    Riki Ruli S

  • Modul I dan II Page 2

    PERTEMUAN : 1

    PENGENALAN BAHASA ASSEMBLY

    Deskripsi singkat : Dalam pertemuan ini akan dibahas mengenai pengenalan sistem

    komputer dan bahasa assembly serta masalah-masalah yang dapat diselesaikan dengan bahasa

    assembly.

    Tujuan Pembelajaran :

    1. Dapat memahami fungsi dan konsep dua bidang ilmu yang berbeda yang memiliki

    hubungan yaitu perangkat keras (hardware) dan perangkat lunak (software).

    2. Dapat memahami dan mampu menerangkan perbedaan antara bahasa pemrograman

    assembly mikrokontroler dan mikroprosesor.

    1.1 Pengenalan Sistem Komputer

    Secara umum komputer terbagi atas dua macam ilmu yang berbeda. Pertama, perangkat keras

    (hardware). Bidang disiplin ilmu yang diperlukan adalah pengetahuan tentang ilmu Fisika atau

    elektronika. Kedua, perangkat lunak (software). Fungsinya adalah sebagai pengatur hardware.

    Tanpa software, komputer bukanlah suatu barang yang berguna, tetapi hanyalah sebuah benda

    yang tidak lebih berupa gabungan atau rakitan komponen-komponen dalam sebuah rangkaian

    yang saling terhubung. Dalam perangkat keras, komponen yang paling penting adalah

    mikroprosesor, selain komponen pendukung lainnya seperti memori, hardisk, DVD, dan lainnya.

    Mikroprosesor pertama di dunia adalah Intel 4004, yang merupakan mikroprosesor 4-bit

    sebuah kontroler yang bisa diprogram dalam sebuah chip. Mikroprosesor tersebut mampu

    mengalamati 4096 lokasi memori selebar 4-bit. Mikroprosesor 4004 hanya memiliki 45 instruksi.

    Mikroprosesor ini digunakan dalam sistem video game pertama dan sistem kontrol kecil berbasis

    mikroprosesor. Masalah utama mikroprosesor pertama ini adalah kecepatan, lebar word, dan

    ukuran memorynya. Evolusi mikroprosesor 4 bit berakhir adalah ketika Intel mengeluarkan

    4040. Mikroprosesor 4040 beroperasi pada kecepatan yang lebih tinggi meskipun tidak ada

    peningkatan dalam hal lebar word dan ukuran memori. Walaupun terjadi evolusi, ada beberapa

    yang masih bertahan pada aplikasi tingkat rendah, seperti oven microwave dan sistem kontrol

  • Modul I dan II Page 3

    kecil. Sampai saat ini ditahun 2012, prosesor canggih dari Intel adalah Intel Core i7 yang berisi

    lebih dari 700 jutaan transitor didalamnya dan dengan kecepatan orde gigahertz, disamping itu

    banyak yang membuat para kompatibelnya, seperti prosesor AMD. Mikroprosesor adalah piranti keras yang tidak akan bisa bekerja kalau tidak ada perangkat

    lunak. Inilah yang membedakan mikroprosesor dengan rangkaian digital diskrit. Kemampuannya

    untuk diprogram, dan diprogram ulang adalah suatu kelebihan didalam sistem mikroprosesor.

    Contohnya dalam suatu sistem pengendali lampu lalu lintas dengan rangkaian diskrit perlu

    menambahkan atau merubah rangkaian bila diperlukan perubahan sistem, tetapi dengan sistem

    mikroprosesor, bisa dilakukan dengan hanya merubah program. Perhatikan juga bahwa PC saat

    ini bisa multi fungsi dengan hanya mengganti programnya saja. Dalam perkembangannya,

    mikroprosesor dibuat menurut kebutuhan aplikasinya yang lebih spesifik, dalam hal ini menjadi

    beberapa jenis, yaitu;

    Mikoprosesor RISC (Reduced Instruction Set of Computing) dan CISC (Complex

    Instruction Set of Computing). Jenis ini yang digunakan untuk pengolahan informasi

    dengan software yang rumit dan digunakan untuk kebanyakan PC saat ini.

    Pengolah Sinyal Digital DSP (Digital Signal Processor). Memiliki software dan

    hardware yang ditujukan untuk mempermudah memproses sinyal-sinyal digital.

    Digunakan pada perangkat audio video modern seperti VCD, DVD, home teater dan

    juga pada card-card multimedia di komputer.

    Mikroprosesor dapat bekerja karena didalamnya terdapat bahasa-bahasa mesin (machine

    languages) yang telah "dimasukkan" terlebih dahulu ke dalam memory sistem rangkaian

    berbasis mikroprosesor itu. Di dalam sebuah mikroprosesor, paling tidak terdiri dari rangkaian-

    rangkaian digital: memory/register, pengolah logika aritmatika, rangkaian kontrol operasi

    sekuensial.

  • Modul I dan II Page 4

    Gambar 1.1 Skema Mikroprosesor

    Mikrokontroler adalah salah satu bagian dasar dari suatu sistem komputer. Meskipun

    berbentuk jauh lebih kecil daripada personal komputer (PC) dan mainframe, mikrokontroler

    dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan

    keluaran spesifik berdasarkan masukan yang diterima dan program yang dikerjakan. Seperti

    umumnya komputer, mikrokontroler adalah alat yang mengerjakan instruksi-instruksi yang

    diberikan kepadanya. Tahun 1976 Intel meluncurkan mikrokontroler pertama yang disebut seri

    MCS-48 yang berisi lebih dari 17.000 transistor, hingga saat ini seri ini masih digunakan untuk

    aplikasi khusus. Mikrokontroler, adalah mikroprosesor yang dikhususkan untuk instrumentasi

    dan kendali. Contoh aplikasi pada kendali motor, berperan seperti PLC (Programmable Logic

    Controller), pengaturan pengapian dan injeksi bahan bakar pada kendaraan bermotor atau alat

    mengukur suatu besaran, seperti suhu, tekanan, kelembaban dan lain-lain.

    Sebagaimana dijelaskan diatas, mikrokontroler adalah pengembangan dari mikroprosesor untuk

    keperluan instrumentasi sederhana, misalnya untuk pengaturan motor, pengaturan permukaan

    cairan, pengukuran suhu, pH, konduktifitas, aplikasi PLC sederhana dan semacamnya.

    Mikrokontroler adalah suatu chip yang dibuat dengan ciri-ciri kekhasannya, biasanya adalah ;

    Memiliki memory internal relatif sedikit.

    Memiliki unit I/O langsung

    Pemroses bit, selain byte

    Memiliki perintah / program yang langsung berhubungan dengan I/O

    Program relatif sederhana.

  • Modul I dan II Page 5

    Beberapa varian memiliki memori yang tidak hilang bila catu padam didalamnya untuk

    menyimpan program

    Sedangkan dalam hal aplikasi, sistem mikokontroler memiliki karakteristik sebagai berikut;

    Memiliki program khusus yang disimpan dalam memori untuk aplikasi tertentu, tidak

    seperti PC yang multifungsi karena mudahnya memasukan program. Program

    mikrokontroler relatif lebih kecil daripada program-program pada PC.

    Konsumsi daya kecil.

    Rangkaian sederhana dan kompak

    Murah, karena komponen sedikit

    Unit I/O yang sederhana, misalnya keypad, LCD, LED, Latch.

    Lebih tahan terhadap kondisi lingkungan ekstrem misalnya temperatur, tekanan, kelembaban

    dan sebagainya.

    Gambar 1.2 Struktur Sistem Komputer

    1.2 Bahasa Assembly

    Bahasa assembly diprakarsai oleh IBM pada tahun 1956-1963. Bahasa assembly termasuk

    bahasa tingkat rendah (low level language). Pada tahun 1957, sebuah tim yang dipimpin oleh

    John W. Backus berhasil mengembangkan sebuah bahasa baru yang lebih mengarah pada

  • Modul I dan II Page 6

    keperluan untuk menganalisis persoalan numeric. Bahasa assembly disebut bahasa level-bawah

    karena dalam struktur dan fungsi dekat dengan bahasa mesin. Sebaliknya, bahasa tingkat tingggi

    seperti Pascal, Basic, Fortran, Cobol, C/C++, JAVA mempunyai perintah-perintah yang handal

    yang diterjemahkan ke dalam berbagai instruksi mesin oleh kompiler.

    Ekstensi yang dihasilkan dari bahasa assembly adalah file dengan ekstensi COM dan EXE.

    Secara umum kedua jenis file tersebut memiliki perbedaan antara program yang berkestensi

    COM dan EXE, yang merupakan ukuran luas daerah yang menyebabkan kelainan pemrograman

    dalam assembler.

    Bahasa assembly adalah bahasa pemrograman dengan korespondensi satu-satu antara

    perintah-perintah/pernyataannya dan bahasa mesin komputer. Bahasa assembly tidak satu jenis

    sebagaimana CPU komputer pun bermacam-macam. Setiap bahasa assembly secara langsung

    dipengaruhi oleh set instruksi mesin komputer dan arsitektur perangkat keras. Secara singkat,

    bahasa assembly IBM-PC mengacu pada istruksi-instruksi yang dikenali oleh keluarga

    mikroprosesor Intel 8086-80486.

    Assembler adalah program yang mengkonversi kode program sumber ke dalam bahasa

    mesin. Pada tulisan ini akan mengacu pada assembler yang membuat instruksi mesin untuk

    mikrokomputer IBM yang sesuai. Semua kompter tersebut menggunakan mikroprosesor

    keluarga intel, mulai dari intel 8088 sampai 80486. Program akan berjalan dibawah sistem

    operasi PC-DOS/MS-DOS versi 3.0 atau lebih tinggi. Terdapat dua assembler yang dikenal baik

    untuk IBM-PC yaitu MASM (Microsoft Assembler) dan TASM (Turbo Assembler). Bahasa

    assembly adalah kumpulan instruksi yang spesifik untuk sistem komputer tertentu. Assembler

    adalah program yang menerjemahkan program yang ditulis dalam bahasa assembly ke dalam

    bahasa mesin, yang dapat dieksekusi oleh komputer. Setiap tipe komputer memiliki bahasa

    assembly yang berbeda, karena rancangan komputer mempengaruhi instruksi yang dapat

    dieksekusi.

    1.3 Elemen Bahasa Assembly

    Seiring dengan perkembangan mikroprosesor yang telah disebutkan pada penjelasan

    sebelumnya. Pemrograman assembly juga berkembang mulai dari tasm 1.9, 2.0, hingga 5.01

    yang bisa digunakan untuk meng-compile hingga 32 bit, sedangkan untuk 64 bit bisa digunakan

  • Modul I dan II Page 7

    FAsm (Fast Assembler), pada saat dicompiler menjadi file ekesekusi yang dikonversi menjadi 32

    bit. Semua itu tergantung pada linker (yang mengubah file obj menjadi file COM ataupun EXE).

    Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level language). Hal itu

    untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine

    dependent. Ciri dari perbedaan antara bahasa assembly dan bahasa mesin, bahasa assembly

    merupakan representasi teks dari bahasa mesin, yang dimana satu statement merepresentasikan

    satu instruksi mesin dan sebagai lapisan inti antara program bahasa tingkat tinggu dan kode

    mesin. Sedangkan bahasa mesin merupakan bahasa alamiah/ibu dari sebuah sistem komputer

    dengan instruksi dalam words (kata) di lakukan dengan beberapa set intruksi yang

    direpresentasikan dalam bit ke operasi mesin yang akan dieksekusi oleh hardware.

    Gambar 1.3 Level Bahasa Sistem Komputer

  • Modul I dan II Page 8

    Gambar 1.4 Komputer Architecture Languages

    Dalam bahasa assembly 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.

    Pada penulisan di bahasa assembly, menggunakan dengan istilah mnemonic code.

    Mnemonic code merupakan kode alphabet pendek yang membantu memori dalam mengingat

    suatu instruksi CPU. 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

    assembly misalnya ORG, EQU atau DB, mnemonic untuk mengatur kerja dari program assembly

    ini dinamakan sebagai assembly directive. Dapat berupa: instruksi atau directive instruksi atau

    AApppplliiccaattiioonnss

    HHiigghh LLeevveell LLaanngguuaaggee

    LLooww LLeevveell llaanngguuaaggee

    HHaarrddwwaarree

    Assembly Language

    C,VB,JAVA

    Word, Excel,Photoshop

  • Modul I dan II Page 9

    directive. Contoh dalam penulisan instruksi : mov (Move), int (Interrupt), sedangkan pada

    directive : DB (Define Byte), ORG

    Operand 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.

    Sebuah instruksi bisa berisi nol, satu atau dua operand Sebuah Operand bisa berupa:

    register, variabel memori, atau immediate value Contoh:

    10 (immediate value)

    count (variabel memori)

    AX (register)

    Komentar digunakan untuk menjelaskan maksud sekumpulan baris program atau satu

    baris program, setiap komentar didahului oleh tanda titik koma (;). Komentar tidak dirakit ke

    dalam bahasa mesin. Berikut ini contoh program menggunakan emu8086.

    name "Coba" ; Program menampilkan Latihan

    org 100h ; set segment register:

    mov ax, 0b800h

    mov ds, ax

    ; print program "Latihan"

    mov [02h], 'L'

    mov [04h], 'a'

    mov [06h], 't'

    mov [08h], 'i'

    mov [0ah], 'h'

    mov [0ch], 'a'

    mov [0eh], 'n'

    mov [10h], '-'

    mov [12h], 'S'

    mov [14h], 'a'

    mov [16h], 't'

    mov [18h], 'u'

  • Modul I dan II Page 10

    mov cx, 12 ; number of characters.

    mov di, 03h ; start from byte after 'h'

    mov ah, 0

    int 16h

  • Modul I dan II Page 11

    Gambar 1.5 Program menggunakan Emulator 8086

    Judul (name) akan memulai suatu program bahasa assembly. Pada judul fungsinya secara

    umum akan sesuai dengan bagaimana suatu program dihasilkan. Fungsi beberapa pengarah yang

    digunakan pada program di atas dapat dijelaskan sebagai berikut:

    NAME merupakan nama program yang akan dibuat.

    ORG singkatan dari originate untuk menentukan alamat awal suatu blok dalam program baik

    untuk blok data maupun blok perintah.

    Tubuh program dapat saja mengandungi label, mnemonik, operan, komentar dan pengarah.

    Secara umum susunan perintah pada tubuh program dalam satu baris adalah sebagai berikut:

    Label : MNEMONIK Operan ; Komentar

    Label akan dinyatakan apabila baris program akan menjadi tempat lompatan dari baris program

    lain. Label dituliskan sebagaimana adanya suatu pengenal dan dapat dinyatakan sesuai maksud

    lompatan dan diakhiri dengan titik dua (:).

    Mnemonik adalah sekumpulan huruf yang terdiri dari dua sampai lebih, singkatan yang

    mewakili dari maksud perintah dinyatakan, misalnya MOV disingkat dari MOVE yang berarti

    pemindahan nilai,

    yaitu MOV AH,02h berarti AH=02h. Mnemonik dapat saja memerlukan operan, dan kadangkala

    lebih dari dua operan. Mnemonik berlaku khusus, seperti INT disingkat dari interrupt yang

    diartikan sela/jeda, merupakan pemanggilan perangkat keras yang dihasilkan secara eksternal

  • Modul I dan II Page 12

    dari sinyal perangkat keras atau pemanggilan perangkat lunak secara internal dari pelaksanaan

    perintah atau dengan peristiwa lain. INT berasal dari BIOS (basic input-output system) dan SO

    (sistem operasi), misalnya INT 16h dan INT 20h berasal dari SO yang masing-masing berfungsi

    dan mempunyai ketentutan sendiri, yaitu

    INT 21h Layanan 16h

    Fungsi : Untuk menampilkan untaian karakter yang

    diakhiri $.

    Masukan : AH = 02h

    DS:DX = alamat untaian

    INT 20h

    Fungsi : Untuk kembali ke prompt sistem operasi

    Masukan : -

    Operan mengandungi nilai-nilai dengan mana pengoperasian perintah mnemonik didahulukan.

    Sedikit saja perintah yang tidak memerlukan operan, dan kebanyakan pula perintah memerlukan

    dua operan. Jika demikian, operan pertama disebut tujuan (destination),

    sedangkan operan kedua (jika ada) disebut sumber (source).

    Operan mengambil banyak bentuk yang berbeda sesuai dengan kebutuhan dan syarat-syarat

    penggunaannya, misalnya MOV memerlukan dua operan, yaitu AH dan 09h, yang tidak lain

    berupa salah satu register dan data (nilai) langsung. Sedangkan MOV DX, OFFSET Pesan

    berlaku cara berbeda, dengan mana operan sumber menggunakan pengarah untuk menunjuk

    alamat untaian karakter yang diwakili oleh peubah Pesan. Register adalah salah satu operan,

    yang berasal dari sistem komputer. Untuk melakukan suatu pekerjaan, pengolah mikro

    (microprocessor) menggunakan register sebagai tempat pengolahannya.

    Register dikategorikan menjadi dua bagian: register serbaguna dan register khusus. Register

    serba guna (general-puspose register) atau disingkat register umum terdiri dari empat register

    yaitu accumulator (A), base (B), count (C), dan data (D), dan masing-masing diberi akhiran X

    bila berukuran 16-bit: AX, BX, CX dan DX. Kemudian, masing-masing juga dapat dibagi

    menjadi dua, sebagai register 8- bit, dan diberi akhiran H dan L untuk menandakan high dan low:

    AH, AL, BH, BL, CH, CL, DH dan DL. Untuk pengolah Intel yang terbaru dengan

    menggunakan register 32-bit masing-masing diberi tambahan awalan E (extended): EAX, EBX,

    ECX dan EDX.

  • Modul I dan II Page 13

    Register khusus terdiri dari register cetakan (offset) yang berfungsi menunjuk alamat memori per

    16-bit atau 32-bit, register penggal (segment) yang berfungsi menunjuk alamat blok memori, dan

    register bendera yang bertugas khusus sebagai rujukan kendali beberapa pernyataan. Semua ini

    akan dibicarakan secara lebih luas pada bab-bab berikutnya.