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