Addressing Mode
অ্যাড্রেসিং মোড
একটা instruction-এর operand field থেকে অপারেন্ডের প্রকৃত মান (বা তার ঠিকানা) বের করার নিয়ম — সরাসরি মান (immediate), register-এর মান, নাকি register+offset দিয়ে গণনা করা একটা memory address।
also: addressing scheme, effective address
ছয়টা মূল mode, effective address (EA) গণনা ও memory access সহ:
| Mode | উদাহরণ | EA | Memory access? |
|---|---|---|---|
| Immediate | addi t0,zero,5 | — | না |
| Register direct | add t3,t1,t2 | — | না |
| Register indirect | lw t1,0(s0) | s0 | হ্যাঁ |
| Base+displacement | lw t1,-8(s0) | s0-8 | হ্যাঁ |
| PC-relative | beq t0,t1,off | PC+off | না (fetch-এর ঠিকানা) |
| Indexed (x86) | [ebx+ecx*4] | ebx+ecx*4 | হ্যাঁ |
Base+displacement সবচেয়ে গুরুত্বপূর্ণ — local variable
(frame pointer + offset) আর struct field access
(offsetof-এর মানই displacement) উভয়েরই ভিত্তি।
RISC-V-তে মাত্র একটা memory addressing mode (base+displacement) — ইচ্ছাকৃত সিদ্ধান্ত। জটিল ঠিকানা (array indexing) কয়েকটা সরল instruction (shift+add) দিয়ে synthesize করা হয়, hardware-এ নতুন mode যোগ না করে। CISC-এর (VAX-এর ~২০টা mode, x86-এর SIB byte) বিপরীত — কম mode মানে একটাই uniform effective-address-computation পথ, তাই predictable latency, সহজ pipelining।