DASAR KOMPUTER Assembly Language
CPU Register
Register PC • General purpose registers • AX - the accumulator register
(divided into AH / AL). • BX - the base address register (divided into BH / BL). • CX - the count register (divided into CH / CL). • DX - the data register (divided into DH / DL).
• • • •
SI - source index register. DI - destination index register. BP - base pointer. SP - stack pointer.
• segment registers • CS - points at the segment containing the current program. • DS - generally points at segment where variables are defined. • ES - extra segment register, it's up to a coder to define its usage. • SS - points at the segment containing the stack. • special purpose registers • IP - the instruction pointer.
• flags register - determines the
current state of the microprocessor.
Memory Access
[BX + SI] [BX + DI] [BP + SI] [BP + DI]
[SI] [DI] d16 (variable offset only) [BX]
[BX + SI + d8] [BX + DI + d8] [BP + SI + d8] [BP + DI + d8]
[SI + d8] [DI + d8] [BP + d8] [BX + d8]
[BX + SI + d16] [BX + DI + d16] [BP + SI + d16] [BP + DI + d16]
[SI + d16] [DI + d16] [BP + d16] [BX + d16]
Programming Language
Assembly • termasuk Low-Level Languange, dapat dibaca &
dimengerti oleh manusia sebagai hasil representasi binary code yang dieksekusi oleh komputer. • Berorientasi pada mesin (machine dependent)ode yang dieksekusi oleh komputer • Bahasa yang dikendalikan oleh operasi primitive dalam data binari • Operasi dasarnya meliputi data movement, addition, substraction, comparison, shifting dan branching
Element Assembly • Mnemonic Code
• Symbolic Operand Specification • Declaration of Data / Storage Area
Mnemonic Code (1) • Pengganti numeric operation code (opcode) • Lebih mudah dibandingkan operation codes (opcodes) • Terbagi menjadi bagian-bagian kecil yang memudahkan
penulisan program • Mendukung pengindikasian kesalahan coding (mis. Kesalahan penulisan operation code.
Mnemonic Code (2)
Symbolic Operand Specification •D „ iasosiasikan dengan data atau instruksi
• Operand lebih menunjukkan symbolic reference
dibandingkan dengan alamat • Mempermudah programmer
Declaration of Data/Storage Area • Penulisannya dapat dilakukan dalam desimal.
Bentuk Umum Assembly Statement
Bahasa Mesin vs Bahasa Assembly
Assembly Statement • Imperative Statement
• Declarative Statement • Assembler Directive Statement
Imperative Statement • Menunjukkan aksi yang berlangsung selama eksekusi
program assembly • Setiap imperative statement ditranslasikan ke dalam instruksi mesin
Declarative Statement • Menunjukkan konstanta atau storage area pada program
• Contoh : • A DS • ONE
1 (DS = Declaration Storage) 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 100 • END
Proses Translasi
Analisis “source code”/ “source text” • Penentuan arti dari source text berdasarkan aturan struktur grammar (literal, syntax dan semantic)
Sintesis “target text”
• pemilihan machine operation code yang sesuai dengan mnemonic code
Hasil translasi dari source text target text
Fase Analysis • Memisahkan label , mnemonic operation code dan •
• •
•
operand field. Memasukkan simbol yang ditemukan pada label field dan alamat yang akan 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 target code yang dibangkitkan untuk statement tersebut (Location Counter (LC) processing)
Fase Sintetis • Menghasilkan machine operation code yang
berkorespondensi dengan mnemonic operation code yang telah dicari pada mnemonic table • Menghasilkan alamat operand dari Symbol table • Melakukan sintesa instruksi machine
Pass Structure pada Assembler
• Dalam pemrograman Assembly sering ditemui Forward
Refference, yaitu symbol/label yang baru muncul setelah program tersebut menjadi acuan • Solusi untuk forward refference adalah melakukan proses
terhadap source statement lebih dari satu kali secara beberapa tahap atau dikenal dengan konsep translator pass
Pass Structure • Def : Translator Pass adalah penelusuran secara
menyeluruh source program input oleh translator hingga mencapai equivalent representation. • Single-pass translation : proses yg berdasarkan translasi dari
pernyataan satu ke pernyataan lainnya (statement to statement). • Multi-pass translation : proses dari beberapa group pernyataan yg
memerlukan sebuah translator dan mempunyai beberapa passes.
Multi Pass Translation
• Unit source program mentranslasikan semua bagian program • pada fase analisis (pass I), proses LC dikerjakan, simbol yang
didefinisikan pada program 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
Single Pass Translation • Solusi forward refference dengan single pass translation
adalah dengan cara: • meninggalkan instruksi yang memuat forward refference dalam
keadaantidakselesai hingga 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 kali • Kekurangan : membutuhkan area storage yang besar karena fase analysis dan fase synthesis dijalankan bersamaan
2 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
Pass I • Dalam Pass I assembler digunakan beberapa table : • OPTAB : table mnemonic opcode dan informasi lain yang terkait • SYMTAB : symbol table • LITTAB : literal table
Pass I
• Quiz/Tugas…!!