Appearance
题目
偏移寻址将某个寄存器内容与一个形式地址相加而生成有效地址。下列寻址方式中,不属于偏移寻址方式的是( )。
错因
B
基址寻址 EA = (基址寄存器) + 形式地址 A,完全符合题干给的偏移寻址定义(寄存器内容 + 形式地址)。基址寄存器内容由操作系统设定(通常用于程序重定位),是偏移寻址的典型代表,不应排除。
C
相对寻址 EA = (PC) + 形式地址 A——寄存器是 PC,形式地址是相对偏移量。同样符合定义,常用于条件转移指令。把它排除往往是因为 "PC 听起来不是普通寄存器"——但只要能写成"寄存器 + 形式地址"的形式,就是偏移寻址。
D
变址寻址 EA = (变址寄存器) + 形式地址 A——和基址寻址形式上几乎一样,只是用途不同:基址寻址里基址寄存器固定、形式地址变(用于程序重定位),变址寻址里形式地址固定、变址寄存器变(用于数组遍历)。本质都是偏移寻址。
总解析
偏移寻址的定义(题干给出):
其中 是指令中的形式地址(位移量)。
三种典型偏移寻址——只是"寄存器"换了角色:
| 寻址方式 | 寄存器 | 形式地址 | 典型用途 |
|---|---|---|---|
| 基址寻址 | 基址寄存器 BR | 段内偏移 | 程序重定位、操作系统多道程序 |
| 变址寻址 | 变址寄存器 IX | 数组首地址 | 循环遍历数组(IX 自增) |
| 相对寻址 | 程序计数器 PC | 跳转偏移量 | 条件 / 无条件转移指令 |
间接寻址不同:
形式地址 指向内存某单元,那个单元的内容才是有效地址——完全没有"加法"运算,更没有寄存器参与,与偏移寻址结构不同。
判定口诀:偏移寻址必有"+",且加法的一边是寄存器,另一边是指令里的位移量。间接寻址只有"取址 → 再取址"的两次访存,没有加法。
最终答案是 A(间接寻址)。