teori dasar barcode

Embed Size (px)

DESCRIPTION

atmega

Text of teori dasar barcode

  • BAB II TINJAUAN PUSTAKA

    2.1 Bahasa Assembly Menurut Jogiyanto Hartono, MBA, Ph.D. Pengenalan Komputer

    (2000:600), Sebuah mikrokontroler tidak akan bekerja tanpa adanya program

    yang diberikan kepadanya. Program tersebut memberitahukan mikrokontroler apa

    yang harus dikerjakannya. Bahasa assembly adalah bahasa komputer yang

    kedudukannya ada diantara bahasa mesin dan bahasa tingkat tinggi misalnya

    bahasa C atau bahasa pascal. Dikatakan sebagai bahasa level tinggi karena

    masukannya berupa kata-kata dan pernyataan yang mudah dimengerti oleh

    manusia, meskipun masih jauh berbeda dengan bahasa manusia sesungguhnya

    Bahasa mesin adalah kumpulan kode biner yang merupakan instruksi yang

    bisa dijalankan oleh komputer. Sedangkan bahasa assembly merupakan program

    yang menterjemahkan program aplikasi menjadi bahasa mesin. Bahasa assembly

    memakai kode mnemonic untuk menggantikan kode biner, agar lebih mudah

    diingat sehingga lebih memudahkan penulisan program pada mikrokontroler.

    Menurut Jasson Perstiliano dalam bukunya Strategi Bahasa Assembler (2005:3),

    Bahasa Assembler terdiri dari struktur bahasa assembler, perangkat instruksi,

    simbol khusus dan pengalamatan data.

    2.1.1 Struktur Bahasa Assembly Struktur dasar program assembly menganut satu baris untuk satu perintah.

    [label:] Mnemonic [Operand][,Operand][;Komentar]

    Label

    Digunakan untuk mewakili nomor memori program dari instruksi pada

    baris yang bersangkutan. Apabila ada perintah JUMP (loncat) ke suatu label maka

    assembler akan mengingat nomor memori program yang dimaksud dan

    menjalankan instruksi-instruksi yang terdapat dalam label tersebut.

    Mnemonic

    Merupakan singkatan perintah yang mudah diingat. Bagian ini adalah

    bagian yang menginstruksikan suatu program untuk bekerja sesuai perintah yang

    diterimanya.

    4

  • 5

    Ada dua macam mnemonic, yaitu mnemonic yang dipakai sebagai instruksi

    pengendali proses, misalnya MOV, ADD, JMP dan lain sebagainya. Dan

    mnemonic yang dipakai untuk mengatur kerja program assembly atau dikenal

    sebagai Directive assembler, contoh dari Directive assembler antara lain, ORG,

    DB, DW, EQU.

    Operand

    Adalah bagian yang merupakan objek dari sebuah instruksi atau bagian

    yang harus dieksekusi oleh program assembly sesuai perintah dari bagian

    mnemonic.

    Komentar

    Bagian ini tidak berpengaruh pada jalannya proses dan kerja program.

    Bagian ini hanya dimaksudkan untuk mempermudah seseorang mengerti maksud

    dari program tersebut.

    2.1.2 Register Untuk mempelajari bahasa assembler, harus menghafalkan semua register

    dan mengerti apa kegunaannya, karena akan selalu berhubungan dengan register

    register tersebut. Register adalah sebagian kecil memory komputer yang dipakai

    untuk tempat penampungan data dengan ketentuan bahwa data yang terdapat

    dalam register dapat diproses dalam berbagai operasi dengan melihat berapa besar

    kemampuan menampung register tersebut. Secara umum register dibagi dalam

    lima golongan :

    1. General Purpose Register

    Register AX, Register AX merupakan register aritmatika karena register ini selalu dipakai dalam operasi pertambahan,pengurangan,perkalian dan

    pembagian

    Register BX, Register BX merupakan salah satu dari dua register base addressing mode, yang dapat mengambil atau menulis langsung dari/ke

    memori.

    Register CX, Register CX merupakan suatu counter untuk meletakan jumlah lompatan pada loop-loop yang anda lakukan.

  • 6

    Register DX Register ini digunakan untuk menampung sisa hasil pembagian 16 bit.

    2. Segment Register

    Terdiri dari 20 jalur alamat external tetapi memiliki 16 bit alamat internal.

    Register yang berukuran 16 bit ini berfungsi untuk mencatat alamat sebagai

    penunjuk lokasi data di memori.

    Register CS : Code Segment Register Menunjukan tempat atau segment yang sedang aktif.

    Register DS : Data Segment Register Menunjukan alamat atau segment di mana data-data program di simpan.

    Register SS : Stack Segment Register Menunjukan letak dari segment yang digunakan oleh stack.

    Register ES : Extra Segment Register Register tambahan yang berguna untuk menunjukan suatu alamat di

    memori, misalnya alamat memori video.

    3. Pointer Register

    Register ini secara umum digunakan sebagai penunjuk (pointer) terhadap suatu

    lokasi di memori dan berukuran 16 bit.

    IP : Instruction Pointer Register SP : Stack Pointer Register BP: Base Pointer Register

    4. Index Register

    SI : Source Index Register DI : Destination Index Register

    5. Flag Register

    Register yang berukuran 1 bit ini menunjukkan kondisi dari suatu keadaan

    (ya/tidak atau 1/0). Kondisi-kondisi yang dicatat oleh flag register pada

    mikroprosessor adalah sebagai berikut :

  • 7

    Auxiliary, untuk menyesuaikan nilai AL pada penjumlahan atau pengurangan suatu Binary Code Decimal apakah terjadi Carry atau

    Borrow.

    Carry, benilai 1 bila terjadi Carry pada operasi penjumlahan atau terjadi Borrow pada operasi pengurangan.

    Interrupt, bila bit ini bernilai 0 maka CPU akan mengabaikan Interrupt yang terjadi.

    Overflow, bernilai 1 apabila terjadi overflow pada operasi aritmatika.

    2.1.3 Perintah Debug 1. Q (Quit)

    Bila anda mengetikan huruf Q dan menekan enter, maka akan segera

    kembali ke dos prompt.

    2. R (Register)

    Perintah R digunakan untuk mengetahui isi masing-masing register pada

    saat mengetik R dan menekan enter.

    3. A (Assembler)

    Perintah Assembler berguna untuk tempat menulis program Assembler.

    Contoh : -A100 0FD8:100 4. N (Name)

    Perintah ini digunakan untuk memberi nama suatu program assembler.

    5. RCX (Register CX)

    Perintah ini digunakan untuk mengetahui dan memperbaruhi isi register

    CX yang merupakan tempat penampungan panjang program yang sedang

    aktif.

    6. RIP (Register IP)

    Perintah ini digunakan untuk memberitahu komputer untuk memulai

    memproses program dari titik tertentu.

    7. W (Write)

    Perintah ini digunakan untuk menulis/ menyimpan program.

    8. G (Go)

    Perintah ini digunakan untuk menjalankan suatu program.

  • 8

    9. Komentar

    Bagian komentar tidak mutlak ada dalam sebuah program, namun bagian

    ini sering kali dibutuhkan untuk menjelaskan proses-proses kerja ataupun

    catatan-catatan tertentu pada bagian-bagian program. Bahkan pembuat

    program sekalipun seringkali membutuhkannya untuk mengingat kembali

    jalannya program rancangannya. Penggunaan komentar biasanya diawali

    dengan tanda ; dan dapat diletakkan pada bagian manapun dari suatu

    program. Sebuah komentar tidak hanya digunakan untuk menjelaskan satu

    baris perintah saja, namun dapat juga digunakan untuk menjelaskan

    kinerja dari beberapa baris perintah atau memberikan catatan-catatan

    tertentu.

    2.1.4 Perintah-Perintah Dasar Assembly 1. MOV, perintah MOV adalah perintah untuk mengisi, memindahkan,

    memperbarui isi suatu register, variable ataupun lokasi memori.

    Adapun tata penulisan perintah MOV adalah : MOV [operand A], [Operand B]

    2. INT (Interrupt), Interrupt adalah suatu permintaan khusus untuk

    melakukan sesuatu dan harus segera dipenuhi oleh Mikroprosessor

    (Prestiliano, 2005:14). Bila terjadi interupsi, maka komputer akan

    menghentikan dahulu apa yang sedang dikerjakannya dan melakukan apa

    yang diminta oleh yang menginterupsi.

    3. ORG 100h, pada program COM perintah ini akan selalu digunakan.

    Perintah ini digunakan untuk memberitahukan assembler supaya program

    pada saat dijalankan (di-Load ke memori) ditaruh mulai pada offset ke

    100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte

    kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan

    ditempati oleh PSP (Program Segment Prefix) dari program tersebut. PSP

    ini digunakan oleh DOS untuk mengontrol jalannya program pada DOS.

    4. PUSH, perintah untuk memasukkan isi register kedalam stack.

    5. POP, perintah untuk mengeluarkan isi register dari stack.

    6. DISPCLR (Display Clear), instruksi ini akan menghapus semua display

    dan mengembalikan kursor ke posisi awal ( alamat 0 ).

  • 9

    7. FUNCSET ( Function Set ), mengatur panjang data yang ingin

    ditampilkan pada LCD, dan biasanya tidak lebih dari 16 karakter.

    8. ENTRMOD ( Entry Mode Set ), instruksi ini mengatur arah pergerakan

    kursor, apakah display akan digeser

    9. Delay, berfungsi sebagai penunda waktu.

    10. AL, berfungsi untuk menuliskan karakter yang ingin di cetak.

    11. CX, berfungsi menentukan banyaknya karakter tersebut akan dicetak.

    12. Control Word ( CW ), berisi tentang informasi mode dan bit/reset yang

    kemudian dikirim oleh CPU ke mikrokontroller. Dan harus di tulis di

    setiap program assembly walaupun program tersebut digabung menjadi

    satu.

    13. JMP, Perintah JMP (JUMP) ini digunakan untuk melompat menuju

    tempat yang ditunjukan oleh perintah JUMP.

    Adapun syntax-nya adalah : JUMP Tujuan Dimana tujuannya dapat berupa label, perintah JUMP yang digunakan

    pada contoh di atas dimaksudkan agar melewati tempat data program

    karena jika tidak ada perintah JUMP ini . Maka data program yang akan

    dieksekusi kemungkinan besar akan menyebabkan program menjadi hang

    atau tidak jalan.

    14. LOOP, perintah