ORGANISASI KOMPUTER

advertisement
ORGANISASI
KOMPUTER
Mode Pengalamatan
18-Jul-17
1
Addressing Modes
 Cara / mode di mana letak (alamat) operand atau
data dari suatu instruksi ditentukan.
Jenis Addressing Modes:
Yang paling banyak dipergunakan :
1. Register mode
- Operand berada di register CPU.
- Nama register tsb diberikan pada instruksi.
Contoh : Move R2, R1
18-Jul-17
2
2. Absolute (direct) mode
Operand berada di lokasi memory
Alamat lokasi ini diberikan secara eksplisit
pada instruksi.
Contoh : Move 200, 100
Memindahkan isi memori alamat 200 ke alamat
100
18-Jul-17
3
Basic Addressing Mode yg lain:
3. Immediate Mode
 Operand diberikan secara eksplisit pada
instruksi.
 Mode ini digunakan utk menentukan konstanta
address dan data dalam program.
Contoh : Move R0, 200 (Immediate)
menempatkan nilai 200 dalam register R0
Dlm bhs Assembly, instruksi tsb ditulis sbg:
Move R0, #200
18-Jul-17
4
4. Indirect Mode.
Effective address dari operand berada
dalam register atau lokasi memory utama,
yang addressnya muncul dalam instruksi.
Indirection ditunjukkan dengan
menempatkan nama register atau memory
address dlm tanda kurung.
18-Jul-17
5
Add C,(A)
:
:
A
B
:
:
B
operand
Gambar diagram indirect mode addressing
18-Jul-17
6
Contoh :
Add C, (A)
(A) menunjukkan lokasi dimana effective
address (alamat sebenarnya) berada.
B bukan operand tetapi effective address dr
operand.
Jadi isi lokasi memory yg ditunjukkan oleh B
adalah operand yg dimaksud
Pengalamatan indirect address juga bisa
melalui register
18-Jul-17
7
Add R0,(R1)
Main
Memory
B
R1
Operand
B
Register
Gambar diagram indirect mode addressing melalui
register
18-Jul-17
8
Contoh indirect Addressing yg digunakan dlm
program.
Address
Loop
Contents
Move
Move
Clear
Add
Increment
Decrement
Branch > 0
Move
R1, N
R2, #Num1
R0
R0, (R2)
R2
R1
Loop
Sum, R0
Initialization
18-Jul-17
9
5. Index Mode
Effective address dari operand dihasilkan
dengan menjumlahkan suatu nilai
konstanta dengan isi suatu register
Index berada dalam suatu register, baik
Special Purpose Register ataupun salah
satu dr General Purpose Register,
dinamakan index register
18-Jul-17
10
Alamat ditunjukkan dg X(R), dimana:
X : suatu konstanta yg disebut sbg
offset atau displacement.
R : nama register yg terlibat.
Effective address dr operand diberikan
oleh:
Addreff = X + [R]
18-Jul-17
11
(a) Offset diberikan sbg sebuah konstanta.
Add R2, 20(R1)
:
:
1000
20 = offset
1020
1000
R1
:
:
Operand
18-Jul-17
12
(b) Offset yang berada di index register
Add R2, 1000(R1)
:
:
1000
20 = offset
1020
20
R1
:
:
Operand
18-Jul-17
13
Contoh penggunaan pengalamatan index
untuk program daftar nilai siswa
N
List
N
Student ID
Test1
Student 1
Test2
Test3
Student ID
Test1
Student 2
Test2
Test3
:
:
18-Jul-17
14
Sebuah list dr nilai test siswa pd suatu m.k
Digunakan 4 word utk menyimpan
informasi bagi tiap siswa: ID siswa, nilai
test 1, test 2, dan test 3.
Terdapat n siswa di kelas.
Diperlukan program utk menghitung
jumlah nilai test 2 dan nilai test 3.
18-Jul-17
15
Gb. Indexed addressing yg digunakan utk
mengakses nilai test.
Address
Loop
Contents
Move
Move
Clear
Clar
Add
Add
Add
Decrement
Branch > 0
Move
Move
R0,#List
R1,N
R2
R3
R2,2(R0)
R3,3(R0)
R0,#4
R1
Loop
Sum2,R2
Sum3,R3
Initialization
18-Jul-17
16
Beberapa variasi addressing mode ini:
 (Ri, Rj)
effective Address adl jumlah isi register Ri
dan Rj.
X (Ri, Rj)
effective address adl jumlah konstanta X
dengan isi register Ri dan Rj.
18-Jul-17
17
Beberapa variasi addressing mode ini:
 (Ri, Rj)
effective Address adl jumlah isi register Ri
dan Rj.
X (Ri, Rj)
effective address adl jumlah konstanta X
dengan isi register Ri dan Rj.
18-Jul-17
18
Dua mode yg berguna utk mengakses
data item pada lokasi yg berurutan dlm
memory:
 Autoincrement mode:
Effective address dr operand adl isi suatu
register yg ditentukan dlm instruksi. Setelah
mengakses operand, isi register ini di inkremen
utk menunjukkan item berikutnya dlm suatu list.
Misal: (R4)+
Mode ini memungkinkan utk menghilangkan
instruksi Increment pd Gb. 1
18-Jul-17
19
Contoh Autoincrement addressing mode yg
digunakan dlm program penjumlahan
beberapa bilangan.
LOOP
Move
Move
Clear
Add
Decrement
Branch > 0
Move
R1,N
R2,#NUM1
R0
R0,(R2)+
R1
LOOP
SUM,R0
18-Jul-17
20
Autodecrement mode
- Isi suatu register yg ditentukan dlm instruksi di
decremen. Isi ini kemudian digunakan sbg
effective address operand.
Misal: - (R4)
- Mode ini memungkinkan utk meng akses
operand dg urutan address descending.
- Jadi 2 mode ini dilakukan dg menggunakan 2
instruksi. Dg menggabungkan 2 operasi tsb dlm
1 instruksi maka dapat mengurangi jumlah
instruksi yg diperlukan utk melakukan suatu
tugas.
18-Jul-17
21
 Soal.
Register R1 dan R2 sebuah komputer berisi
nilai desimal 1200 dan 4600. Tentukan effective
address dan isi tiap register yang terlibat setelah
pelaksanaan tiap instruksi di bawah ini yg
dilakukan secara sekwensial:
Mov
R5,20(R1)
Load
R5,#3000
Store
30(R1,R2),R5
Add
R5,-(R2)
Sub R5,(R1)+
18-Jul-17
22
Download