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

Anda Telah Membaca Mode Pengalamatan INDEXED

Semoga Artikel Mode Pengalamatan INDEXED Bisa Bermanfaat untuk kita semua. Jika Ada Hal yang ingin ditanyakan, Silahkan Komentar atau Hubungi kami via Web Chat yang tersedia