bahasa assembly - Salahuddin bin Ali

advertisement
BAHASA ASSEMBLY
Salahuddin,, SST
Salahuddin
Email : [email protected]
[email protected]
Web Site : www.salahuddinali.com
Pendahuluan
„
„
„
Program adalah kumpulan instruksi/perintah yang
disusun sebagai satu kesatuan prosedur yang berupa
urutan langkah untuk menyelesaikan masalah yang
diimplementasikan dengan menggunakan bahasa
pemograman sehingga
hi
dapat
d
t dieksekusi
di k k i oleh
l h computer.
t
Pemrograman adalah proses untuk
mengimplementasikan urutan langkah penyelesaian
suatu masalah dengan suatu bahasa pemrograman
Bahasa Pemograman berfungsi sebagai media untuk
menyusun dan memahami suatu program computer
serta sebagai alat komunikasi antara programmer
dengan computer.
computer
Bahasa Pemrograman
„
Tingkat Rendah (Low Level Language)
„
„
„
„
„
Berorientasi pada mesin
Lebih dekat ke bahasa mesin dari pada manusia
Waktu eksekusi lebih cepat
Bahasa Assembly
Tingkat Tinggi (High Level Language)
„
„
„
„
Lebih dekat ke bahasa manusia dari pada bahasa mesin.
Mudah dipahami ole manusia
Waktu eksekusi lebih lama
BASIC Fortran,
BASIC,
Fortran COBOL,
COBOL Pascal,
Pascal Prolog
Prolog, C
C, dll.
dll
Bahasa Pemrograman
„
Tingkat Rendah (Low Level Language)
„
„
„
„
„
Berorientasi pada mesin
Lebih dekat ke bahasa mesin dari pada manusia
Waktu eksekusi lebih cepat
Bahasa Assembly
Tingkat Tinggi (High Level Language)
„
„
„
„
Lebih dekat ke bahasa manusia dari pada bahasa mesin.
Mudah dipahami oleh manusia
Waktu eksekusi lebih lama
BASIC Fortran,
BASIC,
Fortran COBOL,
COBOL Pascal,
Pascal Prolog
Prolog, C
C, dll.
dll
Bahasa Assembly
„
„
„
„
„
Instruksi mesin dinyatakan dengan pola 0 dan l. Pola semacam itu
sangat sulit untuk dijelaskan pada saat membahas atau menyiapkan
program Oleh karena itu,
program.
itu kita menggunakan nama simbolik untuk
menyatakan pola tersebut.
Sejauh ini kita telah menggunakan kata kata biasa seperti Move,
Add Increment
Add,
Increment, dan Branch
Branch,, untuk instruksi operasi yang
menyatakan pola kode biner yang sesuai.
Pada saat menulis program untuk komputer tertentu, kata kata
tersebut biasanya diganti dengan akronim yang disebut mnemonic,
seperti MOV, ADD, INC, dan BR Serupa dengan kita
menggunakan notasi R3 untuk mengacu pada register 3,
3, dan LOC
untuk mengacu pada lokasi memori.
S llengkap
Set
k nama simbolik
i b lik semacam itu
i dan
d aturan penggunaannya
membentuk bahasa pemrograman, yang biasanya disebut sebagai
bahasa assembly.
assembly.
Set aturan untuk menggunakan mnemonic dalam spesifikasi
instruksi dan program lengkap disebut syntax bahasa.
Program assembly
„
„
„
„
„
„
salah satu kumpulan program yang merupakan bagian dari
software sistem.
disimpan sebagai rangkaian instruksi mesin dalam memori
komputer
program user hanyalah
h
l h kumpulan
k
l baris
b i karakter
k kt alfanumerik
lf
ik
program assembly dieksekusi, program tersebut membaca
program
p
og a user,
use , menganalisanya,
e ga a sa ya, dan
da kemudian
e ud a menghasilkan
e g as a
program bahasa mesin yang diinginkan
Program user dalam format teks alfanumerik aslinya disebut
source program
program bahasa mesin yang di assembly disebut object
program..
program
Bahasa Mesin VS Bahasa Assembly
„
Tiga karakteristik untuk membandingkan bahasa mesin dan bahasa
assembly,
y
„ Mnemonic operation code. Sebagai pengganti numeric operation
code (opcodes) yang digunakan pada bahasa mesin, digunakankanlah
„
„
mnemonic code pada bahasa assembly
assembly.. Selain kemudahan dalam
penulisannya dibandingkan dari bahasa mesin juga mendukung
pelacakan kesalahan seperti kesalahan penulisan operation code.
code.
Symbolic operand specification. Penamaan simbol diasosiasikan
sebagai suatu data atau instruksi. Operand lebih menunjukkan symbolic
reference dibandingkan dengan alamat mesin suatu data atau instruksi.
Hal ini akan mempermudah pada saat harus dilakukan modifikasi
program.
Declaration of data/storage area. Data dapat dinyatakan dalam
notasi desimal. Ini dilakukan untuk mencegah konversi secara manual
dari konstanta ke dalam representasi internal mesin.
„
S b
Sebagai
i contoh
t h:
-5 menjadi (11111010)2 atau 10.5 menjadi (41A80000)16
Bentuk Statement Bahasa Assembly
„
„
„
„
Tanda kurung siku menunjukkan isi di dalamnya boleh
digunakan atau tidak dalam statement tersebut
Jika label digunakan, hal tersebut menunjukkan suatu
symbolic name akan dibuat dalam machine word untuk
keperluan assembly statement.
Bila digunakan lebih dari satu operand, digunakan tanda
“k
“koma”
” untukk memisahkannya
hk
Jika digunakan index, nomor index register ditunjukan
dalam sebuah simbol, seperti contoh berikut :
AGAIN
LOAD NUMBER(4)
Dimana ‘4’ menunjukkan register yang memiliki index.
AGAIN diasosiasikan dengan instruksi mesin yang dihasilkan untuk
statement LOAD.
Ilustrasi Program
Bentuk Umum Penulisan Source Program
Penulisan Source Program
Empat field dipisahkan oleh pemisah yang
sesuai,, biasanya satu atau lebih karakter
sesuai
kosong..
kosong
Penulisan Source Program
„
„
„
„
„
Label adalah nama opsional yang dihubungkan dengan alamat
memori
memo i dimana instruksi
inst ksi bahasa mesin yang
ang dihasilkan dari
da i
pernyataan tersebut akan diload
diload..
Label jjuga
g dapat
p dihubungkan
g
dengan
g alamat item data.
„ Contoh d
dii atas terdapat lima label: SUM, N, NUM1, START,
dan LOOP.
Field Operation berisi mnemonic OPOP-code directive assembler.
Field Operand berisi informasi pengalamatan untuk
mengakses satu atau dua operand, tergantung pada tipe
informasinya..
informasinya
Field Comment diabaikan oleh program assembly.
assembly Field
tersebut digunakan untuk tujuan dokumentasi sehingga
program lebih mudah dipahami
dipahami..
ASSEMBLY DAN EKSEKUSI PROGRAM
Source program yang ditulis dalam bahasa assembly
harus diassemble object program bahasa mesin sebelum
dapat dieksekusi.
dieksekusi. Hal ini dilakukan oleh program
assembler, yang mengganti semua simbol untuk mode
operasi dan penggalamatan dengan kode biner yang
digunakan dalam instruksi mesin
mesin,, dan mengganti semua
nama dan label dengan nilai sebenarnya.
sebenarnya.
Bahasa
Assembly
Source
Program
Program
Objek
Mnemonic
Code
Biner Code
Tiga Jenis Statement
„
Program assembly mengenal tiga jenis statement :
„ imperative
p
statement
„
„
declarative statement
„
„
Statement imperative dalam bahasa assembly ditunjukkan
dengan suatu tindakan yang dikerjakan selama eksekusi
program assembly. Karena itu setiap statement imperative
ditranslasikan ke dalam instruksi mesin.
Statement declarative dalam bahasa assembly menunjukkan
konstanta atau storage area pada suatu program
assembler directive statement.
„
„
Statement ini tidak merepresentasikan instruksi mesin ke
dalm suatu objek program atau mengalokasikan storage
untuk konstanta atau variable program.
Sebalikn a statement ini secara
Sebaliknya,
seca a langsung
langs ng mengarahkan
menga ahkan
assembler untukmengambil alih aksi selama proses
assembling program
Proses Translasi
„
model proses translasi Secara umum
Analysis of
Source Text
„
„
+
Synthesis of
Target Text
=
Translation from Source
Text to Target Text
Dalam fase analisis, penentuan arti dari source text
Dalam fase sintesis, dilakukan pemilihan machine operation
code yang sesuai
Skema Sederhana Assembly
„
F
Fase
A
Analysis
l i
„
„
„
Mengisolasikan / memisahkan label, mnemonic operation code dan operand field
yang ada pada statement
M
Memasukkan
kk simbol
i b l yang ditemukan
dit
k pada
d label
l b l field
fi ld dan
d alamat
l
t yang akan
k
dituju machine word ke dalam Symbol table.
Melakukan validasi mnemonic operation code dengan melihat pada Mnemonic
table
„
„
Menentukan alamat yang dibutuhkan statement berdasar pada mnemonic
operation code dan operand field pada statement. Proses penghitungan alamat
awal machine word mengikuti
g
target
g code yang
y g dibangkitkan
g
untuk statement
tersebut (Location Counter (LC) processing)
Fase Syntesis
„
„
„
Menghasilkan
g
machine operation
p
code yang
y g berkorespondensi
p
dengan
g mnemonic
operation code yang telah dicari pada mnemonic table
Menghasilkan alamat operand dari Symbol table
Melakukan sintesa instruksi machine
Translasi statement demi statement
program bahasa assembly
Assembly
Language
Statement
Analysis
Synthesis
Equivalent
q
target
code
contoh program assembly
FIVE
SUM
„
„
„
„
„
MOVE. L
MOVE
ADD.L
MOVE.L
DC.L
DC L
DC.L
DS.L
FOUR,
FOUR DO
FIVE, DO
DO, SUM FOUR
4
5
1
FIVE merupakan label yang menunjuk pada alamat dimana isi dari
FIVE tersebut disimpan.
FIVE tidak terdefinisi sebelumnya
Penterjemahan seperti ini disebut forward reference
forward reference alamat dari label harus dikenali dalam jjenisnya
y
untuk diterjemahkan ke dalam suatu program yang
semestinya
Proses terhadap source statement dilakukan lebih dari satu kali
atau
t secara b
beberapa
b
ttahap
h (konsep
(k
translator
t
l t pass. )
Translator pass
„
Penelusuran secara menyeluruh source program
i
input
t oleh
l h translator
t
l t hingga
hi
mencapaii
equivalent representation
„
single
g pass
p
translation
Translasi yang dilakukan statement demi statement
„
multipass translation
translasi yang dilakukan sekelompok statement
yang membutuhkan banyak pass
Multi--Pass Translation
Multi
„
„
Multi pass translation dalam program
bahasa assembly dapat menangani
masalah forward reference.
Unit pada source program digunakan
untuk tujuan mentranslasi semua
bagian program
Single Pass Translation
„
„
„
Instruksi yang memuat forward reference dapat
ditinggalkan dalam keadaan tidak selesai hingga
alamat reference symbol diketahui
Keuntungan menggunakan single pass
translation adalah setiap source statement
hanya diproses satu kali
Kekurangan pada single pass translation, yaitu
besarnya area storage yang dibutuhkan oleh
assembler, karena fase analysis dan synthesis
dijalankan
j
pada
p
pass
p
yang
y g sama.
Single Pass Translation
Dua macam tipe single pass translation /
one pass, yaitu :
„
„
single pass translation yang
menghasilkan kode objek langsung ke
memori, yang mengakibatkan eksekusi
menjadi lebih cepat.
single pass translation yang menghasilkan
berbagai tipe pemrograman untuk
keperluan eksekusi selanjutnya
Keluaran Assembler
Object
File
Source
program
fil
file
ASSEMBLER
PROGRAM
Program
Listing
Cross
Reference
Listing
Listing Program
„
„
Menyediakan record dari source program
dan object code
Menyediakan pesan diagnosa untuk
informasi error dalam pemrograman
Download