• Breaking News

    Panduan dan Tutorial Lengkap serta Materi Pelajaran di Mulyono Blog. Konten Terlengkap dan Terpercaya

    Rabu, 31 Agustus 2011

    Mode Pengalamatan INDEXED

    Dalam mode pengalamatan indexed, alamat efektif adalah variabel dan tergantung pada dua faktor: 1) isi index register saat itu dan 2) nilai offset yang terkandung dari byte yang mengikuti kode operasi. Terdapat tiga jenis pengalamatan indexed yang didukung oleh CPU keluarga M68HC05, yaitu: no-offset, 8-bit offset, dan 16-bit offset. Dalam mode pengalamatan indexed-no offset, alamat efektif dari operan terkandung dalam index register 8-bit. Karena itu, mode pengalamatan ini dapat mengakses 256 lokasi memori (dari $0000 sampai $00FF). Instruksi mode ini membutuhkan satu byte instruksi. Contoh: 0200 F6 LDA 0,X
    Pertama CPU akan membaca kode operasi $F6 yang menginstruksikan CPU untuk menggunakan mode pengalamatan indexed-no offset. Kemudian CPU menyusun alamat lengkap dengan menjumlahkan $0000 ke isi dari index register 8-bit (X). Alamat ini kemudian diletakkan dalam bus alamat dan setelah itu dilakukan proses pembacaan data. Tabel 5.5 menampilkan semua instruksi yang dapat menggunakan mode pengalamatan ini.
    INDEXED-NO OFFSET dan INDEXED-8 BIT OFFSET
    Instruksi
    Mnemonic
    Add with Carry
    Add (without carry)
    Logical AND
    Arithmetic Shift Left
    ADC
    ADD
    AND
    ASL
    Arithmetic Shift Right
    Bit Test Memory with Accumulator
    Clear
    Compare Accumulator with Memory
    ASR
    BIT
    CLR
    CMP
    Complement (invert all bits)
    Compare Index Register with Memory
    Decrement
    Exclusive OR Memory with Accumulator
    COM
    CPX
    DEC
    EOR
    Increment
    Jump
    Jump to Subroutine
    Load Accumulator from Memory
    INC
    JMP
    JSR
    LDA
    Load Index Register from Memory
    Logical Shift Left
    Logical Shift Right
    Negate (two’s complement)
    LDX
    LSL
    LSR
    NEG
    Inclusive OR
    Rotate Left thru Carry
    Rotate Right thru Carry
    Substract with Carry
    ORA
    ROL
    ROR
    SBC
    Store Acuumulator in Memory
    Strore Index Register in Memory
    Substract (without borrow)
    Test for Negative or Zero
    STA
    STX
    SUB
    TST
    Dalam mode pengalamatan indexed-8 bit offset, alamat efektif dicapai dengan menambahkan data byte yang mengikuti kode operasi dengan isi dari index register. Harga byte offset yang disediakan dalam instruksi adalah integer tak bertanda 8-bit. Karena itu operasi ini adalah dua byte instruksi di mana offset terkandung dalam byte yang mengikuti kode operasi. Isi dari index register tidak akan dirubah. Contoh: 0200 E6 05 LDA 5,X
    Pertama CPU akan membaca kode operasi $E6 yang menginstruksikan CPU menggunakan mode pengalamatan indexed 8-bit offset. Kemudian CPU akan membaca 8-bit offset ($05) dari alamat $0201. CPU akan menyusun alamat lengkap dengan menambahkan nilai offset $05 ke isi dari index register 8-bit (X). Setelah itu, alamat diletakkan dalam bus alamat dan opersi pembacaan data ke akumulator dikerjakan. Tabel 5.5 menunjukkan semua instruksi yang mampu menggunakan mode pengalamatan ini. Dalam mode pengalamatan indexed-16 bit offset, alamat efektif dari operan suatu instruksi adalah hasil penjumlahan antara isi dari index register 8-bit dengan dua byte alamat yang mengikuti kode operasi. Isi dari kode operasi tidak dirubah. Instruksi ini memakan tiga byte, satu untuk kode operasi dan dua byte untuk offset 16-bit. Contoh: 0200 D6 03 77 LDA $377,X
    Pertama CPU akan membaca kode operasi $D6 yang menginstruksikan CPU untuk menggunakan mode pengalamatan indexed –16 bit offset. Kemudian CPU akan membaca high order alamat ($03) dari alamat memori $0201 dan membaca low order alamat ($77) dari alamat $0202. CPU akan menyusun alamat lengkap dengan menambahkan isi dari index register 8-bit dengan 16-bit alamat yang baru saja dibaca. Alamat ini diletakkkan dalam bus alamat dan kemudian operasi pembacaan data dilakukan.
    Instruksi-instruksi Mode Pengalamatan INDEXED-16 BIT OFFSET
    Instruksi
    Mnemonic
    Add with Carry
    Add (without carry)
    Logical AND
    Bit Test Memory with Accumulator
    ADC
    ADD
    AND
    BIT
    Compare Accumulator with Memory
    Compare Index Register with Memory
    Exclusive OR Memory with Accumulator
    Jump
    CMP
    CPX
    EOR
    JMP
    Jump to Subroutine
    Load Accumulator from Memory
    Exclusive OR Memory with Accumulator
    Jump
    JSR
    LDA
    LDX
    ORA
    Substract with Carry
    Store Accumulator in Memory
    Store Index Register in Memory
    Substract (without borrow)
    SBC
    STA
    STX
    SUB
    Mode Pengalamatan RELATIVE
    Mode pengalamatan relative ini digunakanhanya dalam instruksi percabangan. Instruksi percabangan, selain percabangan instruksi manipulasi bit, membangkitkan dua byte kode mesin: satu untuk kode operasi dan satu untuk offset relatifnya. Karena kemampuannya untuk bercabang ke dua arah, byte offset adalah bilangan bertanda dengan jangkauan –128 sampai +127. Jika kondisi percabangan TRUE, isi dari byte bertanda 8-bit yang mengikuti kode operasi akan ditambahkan dengan isi dari PC untuk membentuk alamat efektif percabangan; jika FALSE maka kontrol program akan terus ke instruksi di bawah instruksi percabangan. Programmer akan menspesifikasikan tujuan dari percabangan sebagai alamat absolute (dengan label atau alamat langsung). Kemudian assembler akan mengkalkulasi offset relatif 8-bit yang akan diletakkan di belakang kode memori dalam memori. Contoh: 0200 27 rr BEQ DEST
    Pertama CPU akan membaca kode operasi $27. Bit CCR Z akan set jika hasil dari operasi aritmatika atau logika sebelumnya adalah nol. CPU kemudian akan membaca harga offset $rr dari alamat $0201. Setelah siklus ini, PC akan menunjukkan ke byte pertama dari instruksi berikutnya ($0202). Jika bit Z nol, maka tidak ada aksi apa-apa. Program akan terus ke instruksi berikutnya pada alamat $0202. Jika bit Z satu, CPU akan menambahkan nilai offset $rr ke isi dari PC sekarang untuk mendapatkan alamat tujuan dari percabangan. Hal ini menyebabkan eksekusi program berlanjut ke alamat baru (DEST). Tabel 5.7 menunjukkan instruksi yang dapat menggunakan mode pengalamatan relative.
    Instruksi-instruksi Mode Pengalamatan RELATIVE
    Instruksi
    Mnemonic
    Branch if Carry Clear
    Branch if Carry Set
    Branch if Equal
    Branch if Half-Carry Clear
    BCC
    BCS
    BEQ
    BHCC
    Branch if Half-Carry Set
    Branch if Higher
    Branch if Higher or Same
    Branch if Interrupt Line is High
    BHCS
    BHI
    BHS
    BIH
    Branch if Interrupt Line is Low
    Branch if Lower
    Branch if Lower or Same
    Branch if Interrupt Mask is Clear
    BIL
    BLO
    BLS
    BMC
    Branch if Minus
    Branch if Interrupt Mask is Set
    Branch if Not Equal
    Branch if Plus
    BMI
    BMS
    BNE
    BPL
    Branch Always
    Branch if Bit n is Clear
    Branch if Bit n is Set
    Branch Never
    BRA
    BRCLR
    BRSET
    BRN
    Branch to Subroutine
    BSR