You are on page 1of 24

BAHASA ASSEMBLY

Salahuddin, Salahuddin , SST

Email : salahuddin_ali@ymail.com salahuddin.ali00@gmail.com 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, 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, dan LOC untuk mengacu pada lokasi memori. S l Set lengkap k nama simbolik i b lik semacam itu i dan d aturan penggunaannya membentuk bahasa pemrograman, yang biasanya disebut sebagai bahasa 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.

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 untuk k 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, sesuai , biasanya satu atau lebih karakter 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 j juga g dapat p dihubungkan g dengan g alamat item data. Contoh d di i 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 Mnemonic Code Program Objek Biner Code

Tiga Jenis Statement


Program assembly mengenal tiga jenis statement : imperative p 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
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

declarative statement

assembler directive statement.


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) 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

Fase Syntesis

Translasi statement demi statement program bahasa assembly

Assembly Language Statement

Analysis

Synthesis

Equivalent q target code

contoh program assembly


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 SUM

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 j jenisnya y untuk diterjemahkan ke dalam suatu program yang semestinya Proses terhadap source statement dilakukan lebih dari satu kali atau t secara b beberapa b t tahap 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 mencapai i

equivalent representation

single g pass p translation


Translasi yang dilakukan statement demi statement

multipass translation
translasi yang dilakukan sekelompok statement yang membutuhkan banyak pass

MultiMulti -Pass Translation


bahasa assembly dapat menangani masalah forward reference. Unit pada source program digunakan untuk tujuan mentranslasi semua bagian program

Multi pass translation dalam 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 :

menghasilkan kode objek langsung ke memori, yang mengakibatkan eksekusi menjadi lebih cepat. single pass translation yang menghasilkan berbagai tipe pemrograman untuk keperluan eksekusi selanjutnya

single pass translation yang

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

You might also like