bahasa rakitan - Riki Ruli Siregar

advertisement
DIKTAT
BAHASA RAKITAN
Riki Ruli S
Modul I dan II
Page 1
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 2
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 rangkaianrangkaian digital: memory/register, pengolah logika aritmatika, rangkaian kontrol operasi
sekuensial.
Modul I dan II
Page 3
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 4
•
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 5
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 6
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 7
A p p l i cat i o n s
High Level Language
Low Level language
Hardware
Assembly Language
C,VB,JAVA
Word, Excel,Photoshop
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
Modul I dan II
Page 8
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 9
mov cx, 12
; number of characters.
mov di, 03h ; start from byte after 'h'
mov ah, 0
int 16h
Modul I dan II
Page 10
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 11
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 12
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.
Modul I dan II
Page 13
Download