Mode pengalamatan Disusun oleh Herdy Nugraha 10209051 Adam











![Lanjutan Sintax mode pengalamatan Based & indexed dengan displacement [BX + SI] [BX + Lanjutan Sintax mode pengalamatan Based & indexed dengan displacement [BX + SI] [BX +](https://slidetodoc.com/presentation_image_h/2b9bc24c7731279e6cc0c88b7a43d00b/image-12.jpg)







- Slides: 19
Mode pengalamatan Disusun oleh : Herdy Nugraha – 10209051 Adam Prapanca – 10209058 Eko Herianto - 10209077 Juliandi S Zebua - 10209085
Bab 6 MODE PENGALAMATAN Sasaran Bab ini: 1. Pengalamatan segera 2. Pengalamatan Register 3. Pengalamatan Langsung 4. Pengalamatan Tak Langsung 5. Pengalamatan Displacement
Mode Pengalamatan Kumpulan instruksi intel menyediakan caranya yang berfariasi untuk menemukan lokasi memori. Cara-cara ini disebut dengan mode pengalamatan. Cara ini dapat memudahkan pemrosesan program listing dan untuk mengacu struktur data yang kompleks. Selain itu kompiler bahasa tingkat tinggi memerlukannya untuk membuat instruksi mesin yang lebih sedikit ketika set instruksi CPU menggunakan cara yang baik dalam pengacuan data.
Pengalamatan Segera Suatu proses penyalinan data yang berukuran byte atau word langsung kedalam register tujuan. Data yang dimaksud adalah suatu nilai atau bilangan tertentu atau bisa juga berupa sebuah konstanta. Contoh: MOV AL, 11 h ; menyalin bilangan 11 h kedalam register AL MOV AX, 1234 h ; menyalin 1234 h kedalam register AX MOV AX, A ; menyalin 25 h kedalam register AX
Lanjutan Yang terlarang dalam mode pengalamatan segera adalah memberikan nilai untuk segmen register (SS, CS, DS, ES). Contoh: MOV ES, 0 FFh ; salah, yang benar ada dua langkah dibawah ini MOV AX, 0 ffh ; disalin ke AX dulu MOV ES, AX ; baru kemudian disalin dulu AX
Pengalamatan Register (Operand Register) Operand register mirip dengan operasi yang dilakukan pada operand immediate, hanya saja operand-operandnya berupa register. Contoh: MOV AL, BL ; menyalin isi register BL ke AL ADD CX, DX ; CX ← CX+DX, tambahkan isi DX ke CX
Pengalamatan Langsung Suatu proses penyalinan data pada register dan suatu alamat efektif. Alamat ini disimpan pada byte berikut setelah opcode instruksi. Contoh: MOV AX, [100 h] ; menyalin data pada alamat 100 h ke AX A DB 89 h ; mendifinisikan variabel A MOV AL, A ; pengalamatan langsung
Pengalamatan Tak Langsung Register Jika offset suatu variabel ditempatkan dalam suatu register basis atau index, maka register menjadi pointer ke label. Register yang digunakan sebagai pointer adalah BX, SI, DI atau BP. Register BX, SI atau DI mempunyai operand yang disimpan pada segmen DS sedangkan register BP tersimpan pada segmen SS.
Contoh: ORG 100 h JMP AWAL RAKITAN DB ‘ABCDEFG’ AWAL: MOV BX, offset RAKITAN ADD BX, 5 MOV DL, [BX] RET Pada contoh diatas mode pengalamatan tak langsung register menggunkan register BX. Jika kita membuat sebuah string dalam memori pada lokasi 0102 h dan mengeset BX ke offset string, kita dapat memproses elemen dalam string dengan menjumlahkan offsetnya ke BX. Huruf ‘F’ berada dalam offset 5 dalam contoh diatas.
Operand target
Pengalamatan Displacement Merupakan mode pengalamata yang menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung. Metode ini mensyaratkan intruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit (field eksplisit bernilai A dan field implisit mengarah pada register). Operand berada pada alamat A ditambah isi register
Lanjutan Sintax mode pengalamatan Based & indexed dengan displacement [BX + SI] [BX + DI] [BP + SI] [BP + DI] [SI] [DI] d 16(offset variabel saja) [BX] [BX + SI + d 8] [BX + DI + d 8] [BP + SI + d 8] [BP + DI + d 8] [SI +d 8] [DI + d 8] [BP + d 8] [BX + SI + d 16] [BX + DI + d 16] [BP + SI + d 16] [BP + DI + d 16] [SI + d 16] [DI + d 16] [BP + d 16] [BX + d 16] d 8 adalah sebuah displacement 8 bit bertanda (contoh: 22, 55 h, -1, dan seterusnya. . ) d 16 adalah sebuah displacement 16 bit bertanda (contoh: 300, 5517 h, -259 h, dan seterusnya. . )
Model Displacement: a. Relative addressing Register yang direferensi secara implisit adalah program counter (PC). Alamat efektif didapat dari alamat instruksi saat itu ditambahkan ke field almat. b. Base register addressing Register yang direferensikan berisi sebuah alamat memori, dan field alamat berisi perpindahan dari alamat itu. Referensi register dapat eksplisit maupun implisit. c. Indeksing adalah field alamat mereferensi alamat memori utama, dan register yang direferensikan berisi pemindahan positif dari alamat tersebut. Merupakan kebalikan dari model base register. Field alamat dianggap sebagai alamat memori dalam indexing. Manfaat dari indexing adalah untuk eksekusi program-program tertentu.
Contoh program dibawah digunakan mode pengalamatan Base (menggunakan register base BX). Jika kita membuat LARIK bernilai byte yang disimpan dalam lokasi memori 0102 h dan mengset BX dengan 5, maka BX akan menunjukan bilangan pada offset 5 ke dalam variabel komputer. ORG 100 H JMP AWAL KOMPUTER DB 0 FH, 0 EH, 0 DH, 0 CH, 0 BH, 0 AH, 09 H, 08 H AWAL: MOV BX, 5 MOV AL, KOMPUTER[BX] RET
Operand Target • Anggap T adakah sebuah array (ukuran word) dan BX berisi 4. dalam instruksi MOV AX, T[BX]
Lanjutan Displacement adalah alamat offset dari variabel T. instruksi menyalin elemen pada alamat T+4 ke AX.
Pada contoh ini digunakan mode pengalamatan based and indexed (menggunakan register base BX, register index SI). Alamat efektif yang dibangun oleh [BX+SI] adalah 0109: ORG 100 H JMP AWAL LARIK DB 10 H, 20 H, 30 H, 40 H, 50 H DB 60 H, 70 H, 80 H, 90 H, 0 A 0 H DB 0 B 0 H, 0 C 0 H, 0 D 0 H, 0 E 0 H, 0 F 0 H AWAL: MOV BX, OFFSET LARIK ; menunjuk pada larik (0102) ADD BX, 5 ; memilih baris kedua MOV SI, 2 ; memilih kolom ketiga MOV AL, [BX+SI] ; mengambil nilai pada alamat ; efektif 0109
Operand Target
Dua buah register base atau dua buah register index tidak dapat digabungkan. contoh: MOV DL, [BP-BX]; salah karena dua register base MOV AX, [SI-DI]; salah karena dua register index Alamat efektif operand dibangun dengan menggunakan register base, register index dan displacement, Contoh: MOV DX, LARIK[BX] [SI] MOV AX, [BX + SI + LARIK] ADD DL, [BX + SI + 3] SUB CX, LARIK[BP+SI]