tugas 6 (pemrograman assembly)

24
Pemrograman Assembly KELOMPOK 4 : Angger Agung E 672009046 Wirawan Bagus P 672009148 Andang Johar Y.N 672009199 Firdaus Wahyu S 672009200 Upik Mamoba 672009254

Upload: awan-suka-chelsea

Post on 25-Jun-2015

243 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Tugas 6 (Pemrograman Assembly)

Pemrograman Assembly

KELOMPOK 4 :Angger Agung E 672009046 Wirawan Bagus P 672009148 Andang Johar Y.N 672009199 Firdaus Wahyu S 672009200 Upik Mamoba 672009254

Page 2: Tugas 6 (Pemrograman Assembly)

Definisi

• Bahasa Assembly (Assembler) merupakan salah satu dari sekian banyak bahasa pemrograman yang tergolong dalam Bahasa Pemrogaman Tingkat Rendah (Low Level Language) dan setingkat diatas bahasa mesin (Machine Language).

Page 3: Tugas 6 (Pemrograman Assembly)

Definisi(2)

• Bahasa assembly mempunyai keunggulan yang tidak mungkin diikuti oleh bahasa tingkat apapun dalam hal kecepatan, ukuran file yang kecil serta kemudahan dalam manipulasi sistem computer.

• Program yang ditulis dalam bahasa assembly dapat secara otomatis ditranslasikan ke rangkaian instruksi mesin oleh suatu program yang disebut assembler.

Page 4: Tugas 6 (Pemrograman Assembly)

Assembler

• Program assembler adalah salah satu kumpulan program yang merupakan bagian dari software sistem. Assembler, seperti halnya program yang lain, disimpan sebagai rangkaian instruksi mesin dalam memori komputer.

Page 5: Tugas 6 (Pemrograman Assembly)

ApplicationsHigh Level LanguageLow Level language

HardwareAssembly Language

C, JAVAWord, Excel

HHL

ComplierAssemblyLanguage

AssemblerMachineLanguage

Page 6: Tugas 6 (Pemrograman Assembly)

Assembly Language

• termasuk Low-Level Languange, dapat dibaca & dimengerti oleh manusiasebagaihasilrepresentasibinary code yang dieksekusiolehkomputer

• Berorientasi pada mesin (machine dependent)• bahasayang dikendalikanolehoperasiprimitive

dalamdata binari • Operasi dasarnya meliputi data movement,

addition, substraction, comparison, shifting dan branching

Page 7: Tugas 6 (Pemrograman Assembly)

Peran Assembler

Source Assembler Object LinkerProgram Code

Executable Code

Loader

Page 8: Tugas 6 (Pemrograman Assembly)

Karateristik Dasar Assembly Language

Mnemonic Code• Lebih mudah dibandingkan operation codes (opcodes)• Terbagi menjadi bagian-bagian kecil yang memudahkan penulisan

program• Mendukung pengindikasian kesalahan coding (mis. Kesalahan

penulisan operation code).• Contoh:

Op code Assembly Mnemonic00 STOP01 ADD

02 SUB03 MULT 04 LOAD

Page 9: Tugas 6 (Pemrograman Assembly)

Karateristik Dasar Assembly Language (2)

• Symbolic Operand Specification Dihubungkan dengandata atau instruksi Operand dapat ditentukan dalam bentuk

symbolic reference• Declaration of Data / Storage AreaBentuk umum statement assembly languange

[Label] Mnemonic Op code Operand[operand]

AGAIN LOAD NUMBER[4]

Page 10: Tugas 6 (Pemrograman Assembly)

Statement Assembly Language

• Imperative StatementMenunjukkan aksi yang berlangsung selama eksekusi

program assemblySetiap imperative statement ditranslasikan ke dalam

instruksi mesinFormat instruksi :

sign upcode Index Operand

register Address

Page 11: Tugas 6 (Pemrograman Assembly)

Statement Assembly Language (2)• Declarative Statement Menunjukkan konstanta atau storage area pada program Contoh :

A DS 1 (DS = Declaration Storage)

ONE DC ‘1’ (DC = Declaration Constant)

• Assembler Directive Statement Statement ini secara langsung mengarahkan assembler untuk

mengambil alih aksi selama proses assembling program Menunjukkan bagaimana input program assembly dibentuk Contoh :

START 100END

Page 12: Tugas 6 (Pemrograman Assembly)

Proses Assembly

• Proses TranslasiAnalysis of + Synthesis of = Translation from Sourcesource text target text Text of Target Text

• Phase Analysis : mencari arti dari source text, dengan menggunakan struktur tatabahasa (literal, syntax, semantic)

• Phase Synthesis : pemilihan machine operation code yang sesuai dengan mnemonic code

Page 13: Tugas 6 (Pemrograman Assembly)

Skema Sederhana Assembly

• Phase Analysis Mengisolasi/memisahkan label, mnemonic opcode dan

operand field yang ada pada statement Memasukkan simbol yang ditemukanpada label field dan

alamat yang akan dituju machine word ke dalam Symbol Table Melakukan validasi mnemonic opcode dengan melihat pada

Mnemonic Table Menentukan alamat yang dibutuhkan statement berdasar pada

mnemonic opcode dan oerand field pada statement. Proses perhitungan alamat awal machine word mengikuti

target code yang dibangkitkan untuk statement tersebut (Location Counter-LC processing)

Page 14: Tugas 6 (Pemrograman Assembly)

Skema Sederhana Assembly (2)

• Phase SyntesisMenghasilkan machine operation code yang

berkorespondensi dengan mnemonic opcode yang telah dicari pada Mnemonic Table

Menghasilkan alamat oerand dari Symbol Tabel

Melakukan sintesa instruksi machine

Page 15: Tugas 6 (Pemrograman Assembly)

Pass Structure Assembly

Translasi statement demi statemet program assembly

Assembly Equivalentlanguage Analysis Synthesis targetstatement code

Page 16: Tugas 6 (Pemrograman Assembly)

Pass Structure Assembly (2)Contoh :

START 100A DS 1B DS 1FIRST READ A

READ BLOAD ASUB BTRIM LARGEBPRINT A

LARGEB STOPPRINT BSTOPEND

Forward refference

LARGEB

Page 17: Tugas 6 (Pemrograman Assembly)

Pass Structure Assembly (3)• Dalam pemrograman Assembly sering ditemui Forward Refference,

yaitu symbol/label yang baru muncul setelah program tersebut menjadi acuan (lihat contoh pada slide sebelumnya…)

• Solusi untuk forward refference adalah melakukan proses terhadap source statement lebih dari satu kali secara beberapa tahap atau dikenal dengan konsep translator pass

• Translator Pass adalah penelusuran secara menyeluruh source program input oleh translator hingga mencapai equivalent representation

Single Pass Translation, translasi yang dilakukan statement demi statement

Multi Pass Translation, translasi yang dilakukan sekelompok statement yang membutuhkan banyak pass

Page 18: Tugas 6 (Pemrograman Assembly)

Multi Pass Translation

Skema Multi Pass TranslationSource Symbol Table

Source Pass I Pass II Target

Program Intermediate ProgramCode

Page 19: Tugas 6 (Pemrograman Assembly)

Multi Pass Translation (2)

• unit source program mentranslasikan semua bagian program

• pada fase analisis(pass I), proses LC dikerjakan, simbol yang didefinisikan padaprogram dimasukkan ke dalam Symbol Table

• pass II, statement diproses untuk mensintesa target form

• cara lain, melakukan elaborasi pada hasil analisa source statement untuk mencegah duplikasi yang direpresentasikan dalam intermediate code

Page 20: Tugas 6 (Pemrograman Assembly)

Single Pass Translation Solusi forward refference dengan single pass translation adalah

dengan cara: • meninggalkan instruksi yang memuat forward refference dalam

keadaan tidakselesaihingga alamat refference symbol diketahui.• Alamat operand pada bagian akhir disimpan pada Table Incomplete

Instruction (TII)• Di akhir program, semua masukkan pada table diproses secara

lengkap

Keuntungan : setiap source statement hanya diproses satu kaliKekurangan : membutuhkan area storage yang besar karena fase analysis

dan fase synthesis dijalankan bersamaan

Page 21: Tugas 6 (Pemrograman Assembly)

Perancangan Two Pass Assembler

• Pass I Memisahkan symbol, mnemonic code dan operand field Menentukan kebutuhan storage untuk setiap assembly

languange statement dan update location counter (LC) Membangun table simbol Merancang intermediate code untuk setiap assembly

languange statement• Pass II Mensintesa target code dengan memproses

intermediate code yang digenerate pada Pass I

Page 22: Tugas 6 (Pemrograman Assembly)

Pass I AssemblerDalam Pass I assembler digunakan beberapa table :

• OPTAB : table mnemonic opcode dan informasi lain yang terkait• SYMTAB : symbol table• LITTAB : literal table

Struktur data yang digunakan pada Pass I Assembler

OPTAB

Mnemonic upcode

Class Machine upcode

Length

LOAD 1. (Imperative) 04 1DS 2. (Declarative) R#7 -

START 3. (Directive) R#11 -STORE 4. (Imperative) 05 1

Page 23: Tugas 6 (Pemrograman Assembly)

Pass I Assembler (2)

Strukturdata yang digunakan pada Pass I Assembler

SYMTAB

Symbol Address Length Other Information

Page 24: Tugas 6 (Pemrograman Assembly)

Pass I Assembler (3)

POOLTAB

LITTABNext Currentfree poolentry pointer

Literal Address

= ‘5’

=‘1’

=‘1’