SlideShare a Scribd company logo
1 of 7
Download to read offline
Assembler




                                              ASSEMBLER

2.1. Element dari Bahasa Pemrograman Assembler
        Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange). Ini
    untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine
    dependent. Untuk membandingkan bahasa mesin dan bahasa assembly, kita dapat melihatnya
    dari tiga karakteristik berikut :

    1. Mnemonic operation code. Sebagai pengganti numeric operation code (opcodes) yang
       digunakan pada bahasa mesin, digunakankanlah mnemonic code pada bahasa assembly.
       Selain kemudahan dalam penulisannya dibandingkan dari bahasa mesin juga mendukung
       pelacakan kesalahan seperti kesalahan penulisan operation code. Gambar 2.1. berikut
       menunjukkan daftar instuksi operation codes dari bahasa dan bahasa assembly.

            Instuction Op Code   Assembly Mnemonic   Remarks
                     00                STOP
                     01                 ADD           Operand pertama yang diasumsikan sebagai akumulator
                     02                 SUB
                     03                MULT
                     04                LOAD          Memanggil akumulator
                     05               STORE          Menyimpan akumulator ke dalam lokasi storage
                     06               TRANS          Mentransfer kontrol ke alamat yang disebutkan
                     07                TRIM          Mentransfer hanya jika akumulator < 0
                     08                 DIV          Membagi akumulator dengan isi lokasi storage
                     09                READ          Membaca kartu pada lokasi storage
                     10               PRINT          Mencetak isi lokasi storage
                     11                 LIR          Memanggil index register dengan 3 digit terakhir dari
                                                     storage operand
                     12                 IIR          Menaikkan index register dengan 3 digit terakhir dari
                                                     storage operand
                     13               LOOP           Mengurangi index register, jika isi baru . 0 kemudian sama
                                                     denan TRANS

    2. 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.

    3. 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. Sebagai contoh :
                -5 menjadi (11111010)2 atau 10.5 menjadi (41A80000)16


    Suatu statement bahasa assembly mempunyai bentuk umum sebagai berikut :

                 [Label]           Menmonic OpCode           Operand [operand…]

    Tanda kurung siku menunjukkan isi di dalamnya boleh digunakan atau tidak dalam statement
    tersebut, sebagai contoh : label bersifat optional. Jika label digunakan, hal tersebut menujukkan
    suatu symbolic name akan dibuat dalam machine word untuk keperluan assembly statement. Bila
    digunakan lebih dari satu operand, digunakan tanda “koma” untuk memisahkannya. 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.


Pemrograman Sistem                                                                                                1
Assembler




    Gambar 2.2 berikut ini mengilustrasikan program bahasa mesin yang dipersamakan dengan
    bahasa assembly.

                                                  START         100
    100) + 09 0 114                               READ          A
    101) + 11 4 114                               LIR           4, A
    102) + 04 0 115                               LOAD          ONE
    103) + 05 0 117                               STORE         RESULT
    104) + 05 0 116                               STORE         TERM
    105) + 04 0 117            AGAIN              LOAD          RESULT
    106) + 03 0 116                               MULT          TERM
    107) + 05 0 117                               STORE         RESULT
    108) + 04 0 116                               LOAD          TERM
    109) + 01 0 115                               ADD           ONE
    110) + 05 0 116                               STORE         TERM
    111) + 13 4 105                               LOOP          4, AGAIN
    112) + 100 117                                PRINT         RESULT
    113) + 00 0 000                               STOP
    114)                       A                  DS            1
    115) + 00 0 001            ONE                DC            ‘1’
    116)                       TERM               DS            1
    117)                       RESULT             DS            1
                                                  END
            (a)                                           (b)

        Gambar 2.2. (a) program bahasa mesin      (b) Eguivalent program bahasa assembly


    Program assembly mengenal tiga jenis statement : (i) imperative statement (ii) declarative
    statement (iii) assembler directive statement.

    Imperative Statement
    Statement imperative dalam bahasa assembly ditunjukan dengan suatu tindakan yang dikerjakan
    selama eksekusi program assembly. Karena itu setiap statement imperative ditranslasikan ke
    dalam instruksi mesin.
    Format instruksi :



                      Sign     Opcode   Index       Operand
                                        egister     address



    Declarative Statement
    Statement declarative dalam bahasa assembly menunjukkan konstanta atau storage area pada
    suatu program. Sebagai contoh :
                                      A     DS      1
    secara sederhana storage area sebesar 1 word ditunjukkan dengan sebuah label A. DS di sini
    menunjukkan Declare Storage (DS).

    Suatu konstanta dideklarasikan melalui Declare Constant (DC) statement, contohnya :
                                       ONE DC         ‘1’
    maksud dari statement di atas adalah label ONE berisi konstanta 1. Programmer dapat
    mendeklarasikan kontanta dalam desimal, binary, hexadesimal, dsb. Assembler akan
    mengkonversi bentuk tersebut ke dalam bentuk internal yang tepat.

    Beberapa assembler sering pula menggunakan’literal’ khususnya pada konstanta yang dipakai
    sebagai operand, seperti contoh berikut :




Pemrograman Sistem                                                                            2
Assembler



                         ADD     ONE                     ADD     = ‘1’
                          -                               -
                          -                               -
                 ONE     DC      ‘1’

    Penggunaan tanda “=” pada posisi awal suatu operand menunjukkan sebuah literal. Nilai
    konstanta yang ditulis dengan cara demikian sama dengan nilai yang dihasilkan bila
    menggunakan statement DC.


    Assembler Directive
    Statement jenis ini tidak merepresentasikan instruksi mesin ke dalm suatu objek program atau
    mengalokasikan storage untuk konstanta atau variable program. Sebaliknya, statement ini secara
    langsung mengarahkan assembler untukmengambil alih aksi selama proses assembling program.
    Statement ini digunakan untuk menunjukkan bagaimana input program assembly dibentuk, sebagi
    contoh :            START          100
    statement tersebut merupakan kata pertama dari objek program yang dibuat oleh assembler
    untuk menempatkan lokasi mesin pada alamat ‘100’. Begitupula dengan statement : END, yang
    mengindikasikan tidak ada lagi bahasa statement bahasa assembly yang akan diproses.



2.2. Proses Assembly
     Untik membangun skema proses translasi dari satu bahasa ke bentuk lainnya, hal pertama yang
     harus dilakukan adalah mengindentifikasikan tugas-tugas dasar yang harus dikerjakannya
     dalam proses translasi tersebut.

2.2.1.   Proses Translasi

         Secara umum model proses translasi dapat direpresentasikan sebagai berikut :

                 Analysis of           +      Synthesis of       =             Translation from
                 Source Text                  Target Text                Source Text to Target Text

         Model di atas diterapkan untuk mentranslasikan dari sautu bahasa pemrograman ke bentuk
         lain, translasi dari satu bahasa natural (Inggris, Perancis) ke bentuk coding / decoding pesan
         rahasia. Untuk mengaplikasikan model di atas, kita perlu menentukan komponen-komponen
         yang dibutuhkan selama proses analisis dan sintesis.

         Dalam fase analisis, focus perhatian kita adalah kepada penentuan arti dari source text. Untuk
         memahami arti dari source text tersebut, kita mengetahui aturan yang membentuk source
         text tersebut. Dalam aturan struktur tatabahasa (grammar), dikenal istilah syntax dan
         semantic. Perhatikan statement berikut :
                                 AGAIN            LOAD           RESULT + 4
         Dalam statement di atas, AGAIN menunjukkan label field, LOAD menunjukkan opcode
         mnemonic field dan RESULT + 4 menunjukkan operand field. Bila kita melihat lebih dalam
         lagi ke dalam operand field, kita dapat menukan bahwa RESULT + 4 adalah expression
         operand yang valid dan sesuai dengan aturan bahasa. Dalam bahasa assembly, aturan
         penulisan suatu statement sangat sederhana. Pembahasan mengenai tata bahasa akan
         dilanjutkan pada materi-materi berikutnya.

         Dalam fase sintesis, dilakukan pemilihan machine operation code yang sesuai dengan
         mnemonic LOAD dan menempatkannya pada machine instruction opcode field. Evaluasi
         korespondensi pengalamatan dilakukan untuk operand expression ’RESULT + 4’ dan
         menempatkannya pada alamat dari machine instruction.


Pemrograman Sistem                                                                                    3
Assembler




2.2.2. Skema Sederhana Assembly

    Fase Analysis
   -   Mengisolasikan / memisahkan label, mnemonic operation code dan operand field yang ada
       pada statement
   -   Memasukkan simbol yang ditemukan pada label field dan alamat yang akan dituju machine
       word ke dalam Symbol table.
   -   Melakukan validasi menmonic 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 Syntesis
   -   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


2.2.3.   Pass Structure pada Assembler

    Pada pembahasan di atas, kita telah mengidentifikasikan fungsi fase analisi dan sintesis dari
    assembler. Sekarang kita akan melihat fase program assembly ini berdasarkan statment demi
    statement hingga menghasilkan target program, seperti terlihat dari gambar 2.3 berikut ini :

         Assembly                                                               Equivalent
         languange             Analysis                Synthesis                 target
         statement                                                                code

             Gambar 2.3. Translasi statement demi statement program bahasa assembly

    Perhatikan contoh program assembly berikut ini :

                MOVE. L         FOUR, DO
                ADD.L           FIVE, DO
                MOVE.L          DO, SUM
    FOUR        DC.L            4
    FIVE        DC.L            5
    SUM         DS.L            1

    Pada contoh di atas terlihat bahwa FIVE merupakan label yang menunjuk pada alamat dimana isi
    dari FIVE tersebut disimpan. Dalam kasus ini FIVE tidak terdefinisi sebelumnya . Oleh karena ini,
    penterjemahan bentuk ini disebut forward reference. Pada kasus forward reference alamat dari
    label harus dikenali dalam jenisnya untuk diterjemahkan ke dalam suatu program yang
    semestinya. Solusi yang ditawarkan adalah kita perlu melakukan proses terhadap source
    statement lebih dari satu kali atau dilakukan secara beberapa tahap. Hal ini dikenal dengan
    konsep translator pass.

    Translator pass adalah penelusuran secara menyeluruh source program input oleh translator
    hingga mencapai equivalent representation.

    Translasi yang dilakukan statement demi statement disebut single pass translation, sedangkan
    translasi yang dilakukan sekelompok statement yang membutuhkan banyak pass disebut
    multipass translation.




Pemrograman Sistem                                                                                  4
Assembler



    A. Multi-Pass Translation

    Multi pass translation dalam program bahasa assembly dapat menangani masalah forward
    reference. Unit pada source program digunakan untuk tujuan mentranslasi semua bagian
    program. Ketika fase analisis statement program pertama kali dilakukan, proses LC akan
    dikerjakan dan simbol yang didefinisikan dalam program dimasukkan ke dalam simbol table.
    Selama second pass, statement diproses dengan tujuan mensintesa target form. Semua simbol
    dan alamat yang dapat ditemukan dalam simbol table tidak akan menimbulkan forward reference
    pada assembly.

    Kalimat “equivalent representation” digunakan pada translasi yang membutuhkan elaborasi.
    Sering kali ketika proses pemisahan field label, mnemonic opcode dan operand field terjadi
    duplikasi. Untuk mengurangi duplikasi tersebut, hasil analisa source statement dari first pass
    direpresentasikan dalam internal form pada source statement. Bentuk ini disebut intermediate
    code. Ilustrasi dari skema two pass assembler dengan menggunakan intermediate code form
    dapat dilihat pada gambar 2.4 berikut ini :

                                         Symbol
                                          Table

    Source                                                                Target
    Program             Pass I                          Pass II           Program
                                       Intermediate
                                           code



                                 Gambar 2.4. Skema multi pass assembler

    Selain membangun intermediate code, suatu assembler pass juga membangun dan/atau
    mengganti data base yang digunakan subsequent pass. Karena kebutuhan untuk membangun
    dan memproses intermediate code, suatu multi pass translator menjalankan fungsinya lebih
    lambat dibandingkan dengan single pass translation.


    B. Single Pass Translation

    Dalam single pass translation, pemecahan forward reference dapat ditangani sebagai berikut :
    instruksi yang memuat forward reference dapat ditinggalkan dalam keadaan tidak selesai hingga
    alamat reference symbol diketahui. Untuk meletakkan alamat operand pada bagain akhir dapat
    disimpan pada Table of Incomplete Instruction (TII). Di akhir program assembly, semua masukan
    pada table dapat diproses secara lengkap sesuai instruksinya.

    Keuntungan menggunakan single pass translation adalah setiap source statement hanya diproses
    satu kali. Proses ini lebih cepat bila dibandingkan dengan multi pass translation. Namun demikian,
    ada kekurangan yang terdapat pada single pass translation, yaitu besarnya area storage yang
    dibutuhkan oleh assembler, sebagai akibat dijalankannya fase analysis dan synthesis pada pass
    yang sama.

    Secara umum dikenal ada 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




Pemrograman Sistem                                                                                  5
Assembler



2.3. Perancangan Two Pass Assembler
      Pass I
      - memisahkan symbol, mnemonic opcode dan operand field
      - menentukan storage yang dibutuhkanuntuk setiap statement bahasa assembly dan meng-
        update location counter
      - membangun symbol table
      - merancang intermediate code untuk setiap statement bahasa assembly

      Pass II
       mensintesa target code dengan memproses intermediate code yang dibangkitkan selama
       pass I

      Flowchart yang menggambarkan Pass I assembler dapat dilihat di bawah ini :


                                                             S tart




                                                           In itialis e
                                                       d ata s tru c tu re


                                                             R ead
                                                       n ext s tatem en t



                                                            L ab el                    Y es
                                                           p res en t

                                                                  No                     E n ter (L ab le, < L C > )
                                                                                              in S Y M T A B
                                                          S earc h in
                                                           OPTAB



                                           Y es               M /C
                                                             in s tr.
                       L C = L C + len g h t
                                                                  No

                                                                                No
                                                          D C /D S ?
                             L iteral             No
                             u s ed ?
                                                                                                 T yp e of
                                                                  Y es
                                                                                               d irec tive ?
                                  Y es                    C alc u late
                           E n ter in to                S torag e s ize
                            L IT T A B                                                LT O R G
                                                                                       END                         O R IG IN          EQU


                                                                            A lloc ate literals ,           E valu ate          C orrec t
                                                                                  U p d ate                 O p eran d         SYM T A B
                                                                         L IT T A B ,P O O L T A B          A d d res s          en try




                                                                  Y es
                                                                                 End ?


                                                                  To                   No
                                                               P as s II


                                                                              U p d ate L C



                                                                               G en erate
                                                                             In term ed iate
                                                                                  C od e



                                                  Gambar 2.5 Pass I assembler


Pemrograman Sistem                                                                                                                          6
Assembler



      Pada Pass I digunakan beberapa table, yaitu :
      (i)    OPTAB : table mnemonic opcode dan informasi lain yang terkait
      (ii)   SYMTAB : symbol table
      (iii)  LITTAB : table literal yang digunakan dalam program


                      Mnemonic                 Class               Machine opcode /          Length
                       OpCode                                         Routine id
             LOAD                      1 (Imperative)                     04                      1
             DS                        2 (Declarative)                   R#7                      -
             START                     3 (Directive)                    R#11                      -
             STORE                     1 (Imperative)                     05                      1

                                                  OPTAB

             Symbol          Address                      Length                      Other Information




                                                  SYMTAB

               Literal     Address                       POOLTAB
                = ‘5’
                = ‘1’
                = ‘1’

                         LITTAB                                            Current pool pointer
                                          Next free entry




Pemrograman Sistem                                                                                        7

More Related Content

Viewers also liked

Bab2
Bab2Bab2
Bab2Lol L
 
Bab1 Asembler
Bab1 AsemblerBab1 Asembler
Bab1 AsemblerLol L
 
Stage d1 repartition 02 04 12
Stage d1 repartition 02 04 12Stage d1 repartition 02 04 12
Stage d1 repartition 02 04 12Marilou Lefort
 
Kinh nghiem chinh sach cac nuoc
Kinh nghiem chinh sach  cac nuocKinh nghiem chinh sach  cac nuoc
Kinh nghiem chinh sach cac nuocMrCây Xanh
 
Otomasi (pneumatik hidrolik)
Otomasi (pneumatik hidrolik)Otomasi (pneumatik hidrolik)
Otomasi (pneumatik hidrolik)Lol L
 
Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)
Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)
Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)hoang788085
 

Viewers also liked (12)

Bab2
Bab2Bab2
Bab2
 
Bab1 Asembler
Bab1 AsemblerBab1 Asembler
Bab1 Asembler
 
Ley de Ohm
Ley de OhmLey de Ohm
Ley de Ohm
 
Kasia ost
Kasia ostKasia ost
Kasia ost
 
Stage d1 repartition 02 04 12
Stage d1 repartition 02 04 12Stage d1 repartition 02 04 12
Stage d1 repartition 02 04 12
 
Kasia ost
Kasia ostKasia ost
Kasia ost
 
Kinh nghiem chinh sach cac nuoc
Kinh nghiem chinh sach  cac nuocKinh nghiem chinh sach  cac nuoc
Kinh nghiem chinh sach cac nuoc
 
Otomasi (pneumatik hidrolik)
Otomasi (pneumatik hidrolik)Otomasi (pneumatik hidrolik)
Otomasi (pneumatik hidrolik)
 
Ivete
IveteIvete
Ivete
 
Procesos de soldadura
Procesos de soldaduraProcesos de soldadura
Procesos de soldadura
 
Fitness
FitnessFitness
Fitness
 
Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)
Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)
Slide bai giang_tu_tuonh_ho_chi_minh_chuongiii_3702 (1)
 

Similar to Assembler 1

Utsman_2010010522.pptx
Utsman_2010010522.pptxUtsman_2010010522.pptx
Utsman_2010010522.pptxUtsman2
 
Assembler (Modul 4).pdf
Assembler (Modul 4).pdfAssembler (Modul 4).pdf
Assembler (Modul 4).pdfDesaSumbung
 
Slide 7-Pembangkit kode dan kode antara New.pptx
Slide 7-Pembangkit kode dan kode antara New.pptxSlide 7-Pembangkit kode dan kode antara New.pptx
Slide 7-Pembangkit kode dan kode antara New.pptxMSALMANALFARITSY
 
Pertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan jugaPertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan jugaBuhori Muslim
 
Mari belajar assembly
Mari belajar assemblyMari belajar assembly
Mari belajar assemblyTitin Martini
 
DK-A-207038026-Nur Amalia Nasution.pptx
DK-A-207038026-Nur Amalia Nasution.pptxDK-A-207038026-Nur Amalia Nasution.pptx
DK-A-207038026-Nur Amalia Nasution.pptxNurAmalia839668
 
8. ptk optimasi kode
8. ptk optimasi kode8. ptk optimasi kode
8. ptk optimasi kodeyuster92
 
Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)rdbmn
 
MODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIKMODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIKDidik Supriyono
 
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intelPertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan inteljumiathyasiz
 
Pemograman mikrokontroler
Pemograman mikrokontrolerPemograman mikrokontroler
Pemograman mikrokontrolerarie eric
 
Set intruksi
Set intruksiSet intruksi
Set intruksiryobroza
 
Pemograman debug Assemblay
Pemograman debug AssemblayPemograman debug Assemblay
Pemograman debug AssemblayFahrul Fuad
 
Tugas Pemograman Berbasis Komputer
Tugas Pemograman Berbasis KomputerTugas Pemograman Berbasis Komputer
Tugas Pemograman Berbasis KomputerAmanda Salshadilla
 

Similar to Assembler 1 (20)

Utsman_2010010522.pptx
Utsman_2010010522.pptxUtsman_2010010522.pptx
Utsman_2010010522.pptx
 
07 modul bahan ajar 04 0
07 modul bahan ajar 04 007 modul bahan ajar 04 0
07 modul bahan ajar 04 0
 
Assembler (Modul 4).pdf
Assembler (Modul 4).pdfAssembler (Modul 4).pdf
Assembler (Modul 4).pdf
 
Bahasa assembly
Bahasa assemblyBahasa assembly
Bahasa assembly
 
Modul praktikum Bahasa assembly
Modul praktikum Bahasa assemblyModul praktikum Bahasa assembly
Modul praktikum Bahasa assembly
 
Slide 7-Pembangkit kode dan kode antara New.pptx
Slide 7-Pembangkit kode dan kode antara New.pptxSlide 7-Pembangkit kode dan kode antara New.pptx
Slide 7-Pembangkit kode dan kode antara New.pptx
 
Assembly
AssemblyAssembly
Assembly
 
Pertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan jugaPertemuan 9.1 pengalamatan juga
Pertemuan 9.1 pengalamatan juga
 
Mari belajar assembly
Mari belajar assemblyMari belajar assembly
Mari belajar assembly
 
DK-A-207038026-Nur Amalia Nasution.pptx
DK-A-207038026-Nur Amalia Nasution.pptxDK-A-207038026-Nur Amalia Nasution.pptx
DK-A-207038026-Nur Amalia Nasution.pptx
 
8. ptk optimasi kode
8. ptk optimasi kode8. ptk optimasi kode
8. ptk optimasi kode
 
Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)Set intruksi (posting di slideshare)
Set intruksi (posting di slideshare)
 
MODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIKMODUL PLC (Programmable Logic Control) DIDIK
MODUL PLC (Programmable Logic Control) DIDIK
 
Pertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intelPertemuan 4 set instruksi arm, motorola, dan intel
Pertemuan 4 set instruksi arm, motorola, dan intel
 
Pemograman mikrokontroler
Pemograman mikrokontrolerPemograman mikrokontroler
Pemograman mikrokontroler
 
Teknik Optimasi - P8
Teknik Optimasi - P8Teknik Optimasi - P8
Teknik Optimasi - P8
 
Set intruksi
Set intruksiSet intruksi
Set intruksi
 
Pemograman debug Assemblay
Pemograman debug AssemblayPemograman debug Assemblay
Pemograman debug Assemblay
 
Tutor Tasm2
Tutor Tasm2Tutor Tasm2
Tutor Tasm2
 
Tugas Pemograman Berbasis Komputer
Tugas Pemograman Berbasis KomputerTugas Pemograman Berbasis Komputer
Tugas Pemograman Berbasis Komputer
 

Recently uploaded

contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptxHR MUSLIM
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxIrfanAudah1
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfirwanabidin08
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfbibizaenab
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAAndiCoc
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatanssuser963292
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptxMiftahunnajahTVIBS
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfSitiJulaeha820399
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfDimanWr1
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxIgitNuryana13
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxRezaWahyuni6
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BAbdiera
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASKurniawan Dirham
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...Kanaidi ken
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdfsdn3jatiblora
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxmawan5982
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5ssuserd52993
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptArkhaRega1
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxadimulianta1
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDNurainiNuraini25
 

Recently uploaded (20)

contoh penulisan nomor skl pada surat kelulusan .pptx
contoh penulisan nomor skl pada surat kelulusan  .pptxcontoh penulisan nomor skl pada surat kelulusan  .pptx
contoh penulisan nomor skl pada surat kelulusan .pptx
 
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptxRefleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
Refleksi Mandiri Modul 1.3 - KANVAS BAGJA.pptx.pptx
 
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdfREFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
REFLEKSI MANDIRI_Prakarsa Perubahan BAGJA Modul 1.3.pdf
 
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdfBab 6 Kreatif Mengungap Rasa dan Realitas.pdf
Bab 6 Kreatif Mengungap Rasa dan Realitas.pdf
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKAMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA
 
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi SelatanSosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
Sosialisasi PPDB SulSel tahun 2024 di Sulawesi Selatan
 
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
11 PPT Pancasila sebagai Paradigma Kehidupan dalam Masyarakat.pptx
 
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdfModul 1.2.a.8 Koneksi antar materi 1.2.pdf
Modul 1.2.a.8 Koneksi antar materi 1.2.pdf
 
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdfAksi nyata disiplin positif Hj. Hasnani (1).pdf
Aksi nyata disiplin positif Hj. Hasnani (1).pdf
 
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptxPaparan Refleksi Lokakarya program sekolah penggerak.pptx
Paparan Refleksi Lokakarya program sekolah penggerak.pptx
 
Materi Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptxMateri Pertemuan Materi Pertemuan 7.pptx
Materi Pertemuan Materi Pertemuan 7.pptx
 
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase BModul Ajar Bahasa Indonesia Kelas 4 Fase B
Modul Ajar Bahasa Indonesia Kelas 4 Fase B
 
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATASMATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
MATERI EKOSISTEM UNTUK SEKOLAH MENENGAH ATAS
 
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
PELAKSANAAN + Link2 Materi Pelatihan "Teknik Perhitungan & Verifikasi TKDN & ...
 
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf2 KISI-KISI Ujian Sekolah Dasar  mata pelajaranPPKn 2024.pdf
2 KISI-KISI Ujian Sekolah Dasar mata pelajaranPPKn 2024.pdf
 
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docxTugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
Tugas 1 pembaruan dlm pembelajaran jawaban tugas tuton 1.docx
 
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
JAWAPAN BAB 1 DAN BAB 2 SAINS TINGKATAN 5
 
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 pptppt-modul-6-pend-seni-di sd kelompok 2 ppt
ppt-modul-6-pend-seni-di sd kelompok 2 ppt
 
Perumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptxPerumusan Visi dan Prakarsa Perubahan.pptx
Perumusan Visi dan Prakarsa Perubahan.pptx
 
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SDPPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
PPT AKSI NYATA KOMUNITAS BELAJAR .ppt di SD
 

Assembler 1

  • 1. Assembler ASSEMBLER 2.1. Element dari Bahasa Pemrograman Assembler Bahasa assembly dikategorikan sebagai bahasa tingkat rendah (low level languange). Ini untuk menggambarkan kekhususannya sebagai bahasa yang berorientasi pada machine dependent. Untuk membandingkan bahasa mesin dan bahasa assembly, kita dapat melihatnya dari tiga karakteristik berikut : 1. Mnemonic operation code. Sebagai pengganti numeric operation code (opcodes) yang digunakan pada bahasa mesin, digunakankanlah mnemonic code pada bahasa assembly. Selain kemudahan dalam penulisannya dibandingkan dari bahasa mesin juga mendukung pelacakan kesalahan seperti kesalahan penulisan operation code. Gambar 2.1. berikut menunjukkan daftar instuksi operation codes dari bahasa dan bahasa assembly. Instuction Op Code Assembly Mnemonic Remarks 00 STOP 01 ADD Operand pertama yang diasumsikan sebagai akumulator 02 SUB 03 MULT 04 LOAD Memanggil akumulator 05 STORE Menyimpan akumulator ke dalam lokasi storage 06 TRANS Mentransfer kontrol ke alamat yang disebutkan 07 TRIM Mentransfer hanya jika akumulator < 0 08 DIV Membagi akumulator dengan isi lokasi storage 09 READ Membaca kartu pada lokasi storage 10 PRINT Mencetak isi lokasi storage 11 LIR Memanggil index register dengan 3 digit terakhir dari storage operand 12 IIR Menaikkan index register dengan 3 digit terakhir dari storage operand 13 LOOP Mengurangi index register, jika isi baru . 0 kemudian sama denan TRANS 2. 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. 3. 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. Sebagai contoh : -5 menjadi (11111010)2 atau 10.5 menjadi (41A80000)16 Suatu statement bahasa assembly mempunyai bentuk umum sebagai berikut : [Label] Menmonic OpCode Operand [operand…] Tanda kurung siku menunjukkan isi di dalamnya boleh digunakan atau tidak dalam statement tersebut, sebagai contoh : label bersifat optional. Jika label digunakan, hal tersebut menujukkan suatu symbolic name akan dibuat dalam machine word untuk keperluan assembly statement. Bila digunakan lebih dari satu operand, digunakan tanda “koma” untuk memisahkannya. 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. Pemrograman Sistem 1
  • 2. Assembler Gambar 2.2 berikut ini mengilustrasikan program bahasa mesin yang dipersamakan dengan bahasa assembly. START 100 100) + 09 0 114 READ A 101) + 11 4 114 LIR 4, A 102) + 04 0 115 LOAD ONE 103) + 05 0 117 STORE RESULT 104) + 05 0 116 STORE TERM 105) + 04 0 117 AGAIN LOAD RESULT 106) + 03 0 116 MULT TERM 107) + 05 0 117 STORE RESULT 108) + 04 0 116 LOAD TERM 109) + 01 0 115 ADD ONE 110) + 05 0 116 STORE TERM 111) + 13 4 105 LOOP 4, AGAIN 112) + 100 117 PRINT RESULT 113) + 00 0 000 STOP 114) A DS 1 115) + 00 0 001 ONE DC ‘1’ 116) TERM DS 1 117) RESULT DS 1 END (a) (b) Gambar 2.2. (a) program bahasa mesin (b) Eguivalent program bahasa assembly Program assembly mengenal tiga jenis statement : (i) imperative statement (ii) declarative statement (iii) assembler directive statement. Imperative Statement Statement imperative dalam bahasa assembly ditunjukan dengan suatu tindakan yang dikerjakan selama eksekusi program assembly. Karena itu setiap statement imperative ditranslasikan ke dalam instruksi mesin. Format instruksi : Sign Opcode Index Operand egister address Declarative Statement Statement declarative dalam bahasa assembly menunjukkan konstanta atau storage area pada suatu program. Sebagai contoh : A DS 1 secara sederhana storage area sebesar 1 word ditunjukkan dengan sebuah label A. DS di sini menunjukkan Declare Storage (DS). Suatu konstanta dideklarasikan melalui Declare Constant (DC) statement, contohnya : ONE DC ‘1’ maksud dari statement di atas adalah label ONE berisi konstanta 1. Programmer dapat mendeklarasikan kontanta dalam desimal, binary, hexadesimal, dsb. Assembler akan mengkonversi bentuk tersebut ke dalam bentuk internal yang tepat. Beberapa assembler sering pula menggunakan’literal’ khususnya pada konstanta yang dipakai sebagai operand, seperti contoh berikut : Pemrograman Sistem 2
  • 3. Assembler ADD ONE ADD = ‘1’ - - - - ONE DC ‘1’ Penggunaan tanda “=” pada posisi awal suatu operand menunjukkan sebuah literal. Nilai konstanta yang ditulis dengan cara demikian sama dengan nilai yang dihasilkan bila menggunakan statement DC. Assembler Directive Statement jenis ini tidak merepresentasikan instruksi mesin ke dalm suatu objek program atau mengalokasikan storage untuk konstanta atau variable program. Sebaliknya, statement ini secara langsung mengarahkan assembler untukmengambil alih aksi selama proses assembling program. Statement ini digunakan untuk menunjukkan bagaimana input program assembly dibentuk, sebagi contoh : START 100 statement tersebut merupakan kata pertama dari objek program yang dibuat oleh assembler untuk menempatkan lokasi mesin pada alamat ‘100’. Begitupula dengan statement : END, yang mengindikasikan tidak ada lagi bahasa statement bahasa assembly yang akan diproses. 2.2. Proses Assembly Untik membangun skema proses translasi dari satu bahasa ke bentuk lainnya, hal pertama yang harus dilakukan adalah mengindentifikasikan tugas-tugas dasar yang harus dikerjakannya dalam proses translasi tersebut. 2.2.1. Proses Translasi Secara umum model proses translasi dapat direpresentasikan sebagai berikut : Analysis of + Synthesis of = Translation from Source Text Target Text Source Text to Target Text Model di atas diterapkan untuk mentranslasikan dari sautu bahasa pemrograman ke bentuk lain, translasi dari satu bahasa natural (Inggris, Perancis) ke bentuk coding / decoding pesan rahasia. Untuk mengaplikasikan model di atas, kita perlu menentukan komponen-komponen yang dibutuhkan selama proses analisis dan sintesis. Dalam fase analisis, focus perhatian kita adalah kepada penentuan arti dari source text. Untuk memahami arti dari source text tersebut, kita mengetahui aturan yang membentuk source text tersebut. Dalam aturan struktur tatabahasa (grammar), dikenal istilah syntax dan semantic. Perhatikan statement berikut : AGAIN LOAD RESULT + 4 Dalam statement di atas, AGAIN menunjukkan label field, LOAD menunjukkan opcode mnemonic field dan RESULT + 4 menunjukkan operand field. Bila kita melihat lebih dalam lagi ke dalam operand field, kita dapat menukan bahwa RESULT + 4 adalah expression operand yang valid dan sesuai dengan aturan bahasa. Dalam bahasa assembly, aturan penulisan suatu statement sangat sederhana. Pembahasan mengenai tata bahasa akan dilanjutkan pada materi-materi berikutnya. Dalam fase sintesis, dilakukan pemilihan machine operation code yang sesuai dengan mnemonic LOAD dan menempatkannya pada machine instruction opcode field. Evaluasi korespondensi pengalamatan dilakukan untuk operand expression ’RESULT + 4’ dan menempatkannya pada alamat dari machine instruction. Pemrograman Sistem 3
  • 4. Assembler 2.2.2. Skema Sederhana Assembly Fase Analysis - Mengisolasikan / memisahkan label, mnemonic operation code dan operand field yang ada pada statement - Memasukkan simbol yang ditemukan pada label field dan alamat yang akan dituju machine word ke dalam Symbol table. - Melakukan validasi menmonic 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 Syntesis - 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 2.2.3. Pass Structure pada Assembler Pada pembahasan di atas, kita telah mengidentifikasikan fungsi fase analisi dan sintesis dari assembler. Sekarang kita akan melihat fase program assembly ini berdasarkan statment demi statement hingga menghasilkan target program, seperti terlihat dari gambar 2.3 berikut ini : Assembly Equivalent languange Analysis Synthesis target statement code Gambar 2.3. Translasi statement demi statement program bahasa assembly Perhatikan contoh program assembly berikut ini : MOVE. L FOUR, DO ADD.L FIVE, DO MOVE.L DO, SUM FOUR DC.L 4 FIVE DC.L 5 SUM DS.L 1 Pada contoh di atas terlihat bahwa FIVE merupakan label yang menunjuk pada alamat dimana isi dari FIVE tersebut disimpan. Dalam kasus ini FIVE tidak terdefinisi sebelumnya . Oleh karena ini, penterjemahan bentuk ini disebut forward reference. Pada kasus forward reference alamat dari label harus dikenali dalam jenisnya untuk diterjemahkan ke dalam suatu program yang semestinya. Solusi yang ditawarkan adalah kita perlu melakukan proses terhadap source statement lebih dari satu kali atau dilakukan secara beberapa tahap. Hal ini dikenal dengan konsep translator pass. Translator pass adalah penelusuran secara menyeluruh source program input oleh translator hingga mencapai equivalent representation. Translasi yang dilakukan statement demi statement disebut single pass translation, sedangkan translasi yang dilakukan sekelompok statement yang membutuhkan banyak pass disebut multipass translation. Pemrograman Sistem 4
  • 5. Assembler A. Multi-Pass Translation Multi pass translation dalam program bahasa assembly dapat menangani masalah forward reference. Unit pada source program digunakan untuk tujuan mentranslasi semua bagian program. Ketika fase analisis statement program pertama kali dilakukan, proses LC akan dikerjakan dan simbol yang didefinisikan dalam program dimasukkan ke dalam simbol table. Selama second pass, statement diproses dengan tujuan mensintesa target form. Semua simbol dan alamat yang dapat ditemukan dalam simbol table tidak akan menimbulkan forward reference pada assembly. Kalimat “equivalent representation” digunakan pada translasi yang membutuhkan elaborasi. Sering kali ketika proses pemisahan field label, mnemonic opcode dan operand field terjadi duplikasi. Untuk mengurangi duplikasi tersebut, hasil analisa source statement dari first pass direpresentasikan dalam internal form pada source statement. Bentuk ini disebut intermediate code. Ilustrasi dari skema two pass assembler dengan menggunakan intermediate code form dapat dilihat pada gambar 2.4 berikut ini : Symbol Table Source Target Program Pass I Pass II Program Intermediate code Gambar 2.4. Skema multi pass assembler Selain membangun intermediate code, suatu assembler pass juga membangun dan/atau mengganti data base yang digunakan subsequent pass. Karena kebutuhan untuk membangun dan memproses intermediate code, suatu multi pass translator menjalankan fungsinya lebih lambat dibandingkan dengan single pass translation. B. Single Pass Translation Dalam single pass translation, pemecahan forward reference dapat ditangani sebagai berikut : instruksi yang memuat forward reference dapat ditinggalkan dalam keadaan tidak selesai hingga alamat reference symbol diketahui. Untuk meletakkan alamat operand pada bagain akhir dapat disimpan pada Table of Incomplete Instruction (TII). Di akhir program assembly, semua masukan pada table dapat diproses secara lengkap sesuai instruksinya. Keuntungan menggunakan single pass translation adalah setiap source statement hanya diproses satu kali. Proses ini lebih cepat bila dibandingkan dengan multi pass translation. Namun demikian, ada kekurangan yang terdapat pada single pass translation, yaitu besarnya area storage yang dibutuhkan oleh assembler, sebagai akibat dijalankannya fase analysis dan synthesis pada pass yang sama. Secara umum dikenal ada 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 Pemrograman Sistem 5
  • 6. Assembler 2.3. Perancangan Two Pass Assembler Pass I - memisahkan symbol, mnemonic opcode dan operand field - menentukan storage yang dibutuhkanuntuk setiap statement bahasa assembly dan meng- update location counter - membangun symbol table - merancang intermediate code untuk setiap statement bahasa assembly Pass II mensintesa target code dengan memproses intermediate code yang dibangkitkan selama pass I Flowchart yang menggambarkan Pass I assembler dapat dilihat di bawah ini : S tart In itialis e d ata s tru c tu re R ead n ext s tatem en t L ab el Y es p res en t No E n ter (L ab le, < L C > ) in S Y M T A B S earc h in OPTAB Y es M /C in s tr. L C = L C + len g h t No No D C /D S ? L iteral No u s ed ? T yp e of Y es d irec tive ? Y es C alc u late E n ter in to S torag e s ize L IT T A B LT O R G END O R IG IN EQU A lloc ate literals , E valu ate C orrec t U p d ate O p eran d SYM T A B L IT T A B ,P O O L T A B A d d res s en try Y es End ? To No P as s II U p d ate L C G en erate In term ed iate C od e Gambar 2.5 Pass I assembler Pemrograman Sistem 6
  • 7. Assembler Pada Pass I digunakan beberapa table, yaitu : (i) OPTAB : table mnemonic opcode dan informasi lain yang terkait (ii) SYMTAB : symbol table (iii) LITTAB : table literal yang digunakan dalam program Mnemonic Class Machine opcode / Length OpCode Routine id LOAD 1 (Imperative) 04 1 DS 2 (Declarative) R#7 - START 3 (Directive) R#11 - STORE 1 (Imperative) 05 1 OPTAB Symbol Address Length Other Information SYMTAB Literal Address POOLTAB = ‘5’ = ‘1’ = ‘1’ LITTAB Current pool pointer Next free entry Pemrograman Sistem 7