Kelas : TF-A
NPM : 1234010002
RESUME
Sumber :
http://ndoware.com/mode-pengalamatan-8051.html
aqwamrosadi.staff.gunadarma.ac.id/Downloads/files/12687/ADDRESSING%2BMODES.doc
staffsite.gunadarma.ac.id/supriyan/index.php?stateid=download&id=9815&part=files
agfi.staff.ugm.ac.id/pdf/sampel_asm03.pdf
EAX AH AL Memory
8AH 8AH
8AH 11234H
EBX 11233H
ECX 11232H
Sebuah Array
(TABLE) memuat 50 bit
yang tidak langsung
ditujukan melalui
register BX
5. Pengalamatan Relatif
Dasar (base relative addressing)
Jenis addressing ini biasanya digunakan untuk mengakses suatu tabel dengan mengambil
alamat efektivenya. Alamat efektive dari tabel tersebut nantinya digunakan sebagai patokan
untuk mengakses data yang lain pada tabel tersebut. Register yang digunakan sebagai
penunjuk alamat efektive ini adalah register BX,BP,SI dan DI. Pada mode pengalamatan ini,
alamat efektif dihitung dengan cara menjumlahkan nilai pergerseran dengan isi register dasar
BX atau BP. Perhatikan contoh program berikut ini:
; nama berkas: program0303.asm
; program contoh
; mode pengalamatan relatif dasar
;
#make_COM#
ORG 100h
start:
MOV BX,010AH ; BX diisi dulu
MOV DX,[BX]+2 ; mode relatif dasar
INT 20H
Pada tabel diatas, register BX diisi dengan nilai 010Ah terlebih dahulu, kemudian lokasi
memori yang ditunjuk oleh [BX]+2 yaitu 010Ah+2 atau 010Ch disalin ke register DX. Selain cara
penulisan seperti pada contoh program tersebut, Anda bisa juga menuliskan dengan cara:
6. Pengalamatan
Langsung Terindeks (direct indexed addressing)
Dengan mode pengalamatan langsung terindeks, alamat efektif merupakan jumlah dari
pergeseran dengan register indeks SI atau DI. dengan contoh program berikut ini:
; nama berkas: program0304.asm
; program contoh
; mode pengalamatan langsung terindeks
;
#make_COM#
JMP START
START:
MOV DI,2 ; disalin indeks ke-2
MOV AL,TABEL[DI] ; ke register AL
INT 20H
Pertama didefinisikan terlebih dahulu data TABEL, yaitu 45h, 23h dan 12h. Data pertama
berindeks 0 dan akan disalin data yang ketiga atau berindeks 2 ke register AL (melalui register
DI yang diisi 2). Melalui emulator terlihat bahwa TABEL diberikan lokasi 0102h hingga 0104h,
Hasil eksekusi program ini berupa isi register AL yang berubah menjadi 12h).
7. Pengalamatan Dasar
Terindeks (Base Indexed Addressing)
Jenis addressing ini biasanya digunakan untuk mengakses suatu record atau suatu array 2
dimensi. Dalam mode pengalamatan ini (dasar terindeks), alamat efektif merupakan jumlahan
register dasar, register indeks dan (opsional) pergeseran. Mode pengalamatan ini sangat
cocok untuk akses data larik dua dimensi. Seperti pada contoh dibawah ini
1.1. Buatlah daftar instruksi yang diperlukan untuk menjalankani instruksi mesin dibawah ini
Add LOCA,R0
Dalam kondisi mentransfer antara komponen seperti pada gambar 1.2. Asumsikan bahwa
instruksi itu sendiri tersimpan di memori lokasi INSTR ( melalui siklus instruksi ) serta pada
mulanya alamat ini adalah di register PC (program counter). Dua langkah pertama mungkin
seperti ini:
Transfer isi dari register PC ke register MAR
Kemudian akan membaca perintah ke memori, dan kemudian menunggu sampai
perintah tersebut telah ditransfer ke register MDR
Perlu diketahui bahwa untuk memasukkan langkah yang diperlukan untuk mengupdate
isi PC dari yang tadinya INSTR harus diubah ke INSTR+1 sehingga langkah berikutnya
dapat berjalan.
Jawab :
Siklus fetch (siklus penjemputan):
MAR [PC]
Masukkan isi dari register PC ke register MAR
IR [MDR]
Mentransfer Instruksi dari MDR ke IR setelah itu akan dibaca
READ
Perintah akan dibaca setelah itu akan diproses di MDR
ALU [MDR]
Mentransfer isi dari MDR ke ALU(ALU digunakan untuk proses perhitungan)
ALU [R0]
Mentransfer isi dari MDR ke ALU
R0 MDR + [R0]
Melakukan penambahan dari dua operan yaitu MDR dan R0 dan hasilnya diletakkan di R0
ALU [PC]
Mentransfer konten dari PC ke ALU
PC ALU + 1
Menambahkan 1 operan untuk ALU dan mentransfer increment address ke PC
1.2. Ulangi pertanyaan no 1.1 diatas untuk menjalankan instruksi mesin dibawah ini:
Add R1,R2,R3
Jawab :
Siklus fetch (siklus penjemputan):
MAR [PC]
Masukkan isi dari register PC ke register MAR
IR [MDR]
Mentransfer Instruksi dari MDR ke IR setelah itu akan dibaca
ALU R1 + R2
Mentransfer isi dari R1 dan R2 ke ALU (ALU digunakan untuk proses perhitungan)
R3 ALU
R1 dan R2 ditambahkan, dan hasilnya dismpan ke R3
ALU [PC]
Mentransfer konten dari PC ke ALU
PC ALU + 1
Menambahkan 1 operan untuk ALU dan mentransfer increment address ke PC
1.3. A. Berikan sebuah urutan singkat instruksi mesin untuk mekakukan tugas yaitu: “Tambakan isi
dari memori A ke memori B, dan tempatkan hasil tersebut ke memori C”
Instruksi
Load LOC,Ri
Dan
Store Ri,LOC
Adalah satu satunya instruksi yang tersedia untuk mentransfer data antara memori ke dalam
register Ri . Tambahkan instruksi yang telah dijelaskan di bagian 1.3 dan 1.6.3. serta Tidak
boleh menghapus isi konten A dan isi konten B.
B. Semisal instruksi Move dan Add tersedia dalam format dibawah ini:
Move/Add Location1,Location2
Instruksi tersebut melakulan “Move” atau menambahkan “Copy” dari lokasi pertama ke lokasi
kedua, menimpa operan asli pada lokasi kedua. Lokasi i bisa berarti memori atau set register
processor. Pertanyaannya apakah mungkin bisa untuk menggunakan lebih sedikit instruksi
untuk menyelesaikan pertanyaan 3.A diatas? Jika iya, berikan urutan-urutannya
Jawab :
A. Load A, R0
isi dari A disalin ke R0
Load B, R1
Isi dari B disalin ke R1
Add R0,R1
R0 dan R1 ditambahkan, dan hasilnya disimpan ke R1
Store R1,C
Menyimpan hasil dari R1 ke C
B. Bisa/ Iya
Dengan cara:
Move B,C
Memindahkan isi dari B ke C
Add A,C
Menambahkan A + C dan hasilnya disimpan di C