总目录1.基础概念区分指令寻址 vs 数据寻址2.指令结构与寻址特征标识3.第一类基础寻址6 种立即、直接、间接、寄存器、寄存器间接、隐含4.第二类偏移寻址3 种基址、变址、相对核心重难点5.复合寻址基址 变址6.最后一种堆栈寻址7.拓展补充条件跳转硬件原理PSW 标志位8.通用核心考点汇总、易混对比、访存次数速记一、前置基础概念1.指令寻址上节内容做区分作用确定下一条指令存放地址依靠 PC程序计数器两种方式顺序寻址、跳跃寻址只管理指令位置和操作数无关。2.数据寻址本节核心定义单条指令执行时解析指令内形式地址 A的规则算出操作数真实主存地址有效地址 EA。疑问来源内存多程序并发程序起始地址不固定不能简单把 A 当成真实地址。举例程序从主存 100 开始存放原跳转地址 7 不能直接使用必须基于起始地址偏移计算。符号规范全书统一计算题必用•A指令内自带的形式地址指令给出的编码•EA有效地址操作数在主存真实物理地址•(X)对地址 / 寄存器 X 访存取出内部存储内容•PC程序计数器取完指令自动更新指向下一条指令•BR基址寄存器IX变址寄存器SP堆栈指针ACC累加器•寻址特征位指令中额外比特标识本条形式地址采用哪种寻址10 种寻址仅需 4bit 标识通用硬件前提默认系统指令字长 机器字长 存储字长讲解统一示例目标操作数 3。多地址指令规则每个形式地址独立配一组寻址特征各自单独解析。二、第一部分6 种基础数据寻址方式1.立即寻址核心规则形式地址 A不是地址就是操作数本身立即数汇编用 #标识立即数多用补码存储。访存次数仅取指令 1 次指令执行阶段无需访存速度所有寻址里最快。优缺点✅ 优点执行速度最快不用访问内存❌ 缺点A 位数有限立即数表示范围很小只能存常量不能存放变量2. 直接寻址核心规则EAA形式地址直接等于有效地址无需地址换算。执行流程 访存1.第一次访存取出整条指令2.第二次访存根据 A 访问主存取出操作数总计2 次访存取指 1 次 取数 1 次优缺点✅ 硬件简单无需 ALU 计算地址逻辑直观❌ ① A 位宽限制寻址范围② 操作数地址改变时必须修改指令内 A程序灵活性差3. 间接寻址一次间址 / 多次间址一次间接寻址规则A 指向主存单元单元内存储的才是 EA公式 EA(A)访存总计 3 次取指令→访 A 取 EA→访 EA 取操作数。多次间接寻址主存单元最高位标记是否继续间接•最高位 1继续间接寻址•最高位 0当前单元内容为最终 EA优缺点✅ 大幅扩大寻址范围存储字长远大于指令内 A 的位数方便多层函数调用编程❌ 多次访存指令执行效率极低4. 寄存器寻址规则形式地址 A 是通用寄存器编号操作数直接存放在 CPU 寄存器内不在主存。访存仅取指令 1 次执行阶段不访问主存。优缺点✅ 速度极快寄存器编号只需少量比特缩短指令字长支持向量矩阵运算❌ 寄存器硬件成本高数量有限可存放数据少5. 寄存器间接寻址规则A 为寄存器编号寄存器内部存放的是操作数主存地址公式 EA(Ri)访存总计 2 次取指 1 次 根据寄存器内地址访存取数 1 次和主存间接寻址对比间接查找地址在寄存器中完成无需额外访存速度远快于一次间接寻址。6. 隐含寻址规则其中一个操作数地址不显示写在指令中由硬件规则隐含指定典型单地址加法指令一个操作数由 A 指明另一个默认存放在 ACC 累加器。优缺点✅ 减少指令中地址码数量缩短指令字长❌ 需要专用硬件寄存器存放隐含操作数三、第二部分偏移寻址大类3 种考试高频大题考点共同特征以基准地址 形式地址 A偏移量 EA三者核心区别是基准地址来源不同。1.基址寻址硬件实现两种方案1.专用 BR 基址寄存器操作系统赋值存放程序在内存的起始地址2.通用寄存器充当基址寄存器指令额外比特指定寄存器编号8 个寄存器仅需 3bit 编号计算公式EA(BR)A•(BR)程序起始物理地址基地址•A程序内逻辑偏移量固定不变核心作用 配套操作系统知识1.实现程序浮动、多道程序并发程序可加载到内存任意起始位置OS 仅修改 BR所有指令无需改动地址码。2.扩大寻址范围BR 位宽更长弥补形式地址 A 位数不足。关键区分点BR 由操作系统管理普通用户程序无法修改对应操作系统 “重定位寄存器”。2. 变址寻址硬件专用 IX 变址寄存器 / 通用寄存器充当 IX计算公式EAA(IX)•A数组 / 数据段固定首地址基准•(IX)用户可自由修改的偏移量循环自增核心用途数组遍历、循环程序示例数组 A0~A9 求和•A 固定为数组首地址 7IX 初始 0每轮循环 IXIX1依次访问 7、8、9…16 地址单元。•仅需 6 条指令即可完成 10 次累加无需重复编写多条取数指令简化代码。和基址寻址核心对比3. 相对寻址跳转指令专属关键易错前提CPU 取出当前指令后PC自动更新为下一条指令地址偏移量 A 是相对于下一条指令而非当前指令。指令字长决定 PC 自增值单指令 4 字节则 PC42 字节则 PC2。公式EA(PC)AA 是带符号补码偏移量可正向后跳转、可负向前回跳。作用代码段内部浮动循环跳转、分支 if/else 专用一段代码在程序内部移动无需修改跳转指令的 A 值。和基址寻址 “浮动” 区分•基址寻址整个程序在主存大范围移动•相对寻址一段代码块在程序内部局部移动四、复合寻址基址 变址寻址公式EA(BR)A(IX)使用场景程序加载到任意内存位置BR 修正全局地址同时遍历数组IX 局部偏移二维数组、复杂结构体访问常用。逻辑理解多重地址映射相当于复合函数多层偏移叠加计算真实物理地址。五、第十种寻址堆栈寻址基础定义操作数地址隐含由 SP堆栈指针寄存器指明无需指令给出形式地址栈遵循后进先出。两种硬件实现1.硬堆栈CPU 寄存器组实现•优点PUSH/POP 仅操作寄存器指令执行阶段无访存速度快•缺点寄存器成本高栈空间容量固定、很小2. 软堆栈主流主存划分区域做栈•优点成本低、栈空间大支持函数递归调用、局部变量存储•缺点入栈出栈都需要访存速度较慢SP 指针变化规则以栈低地址为栈顶为例1.POP 出栈读取 SP 指向栈顶单元 → SPSP1指向下一个栈顶2.PUSH 入栈SPSP-1 → 将数据写入 SP 指向单元注意栈增长方向不同向高地址 / 低地址SP 加减规则相反做题需先看题干说明。有效地址规则SP 指向单元即为栈顶操作数的 EA地址由硬件自动维护指令无显式地址码。六、拓展补充条件跳转底层硬件原理1.PSW 程序状态字寄存器标志寄存器执行比较指令 CMP A,B 本质硬件执行 A-B运算结果特征存入 PSW 标志位•ZF 零标志结果 0 → ZF1否则 0判断两数相等•SF 符号标志结果为负 → SF1正数 0•CF 进位 / 借位标志减法产生借位 CF1•OF 溢出标志加减运算溢出 OF12. 条件跳转指令硬件读取 PSW 标志位判断是否跳转修改 PC 值•JE相等跳转ZF1 跳转•JG前数更大跳转SF0、ZF03. 无条件跳转 JMP不判断标志位直接修改 PC 为目标地址。七、核心考点汇总1.各寻址指令执行阶段访存次数不含取指令 1 次立即寻址0 次寄存器寻址0 次直接寻址1 次寄存器间接寻址1 次基址 / 变址 / 相对寻址1 次一次间接寻址2 次软堆栈 POP/PUSH1 次硬堆栈0 次2. 易混易错点相对寻址偏移基准是更新后的 PC下一条指令不是当前指令地址基址寄存器 OS 管控变址寄存器用户可修改不可写反间接寻址访存次数最多效率最低立即、寄存器寻址速度最快浮动区分基址 整个程序搬家相对 代码段内部移动隐含寻址、堆栈寻址操作数地址不显示在指令中靠硬件约定3. 速记口诀立即无访存寄存器最快直接 A 即地址间接三次访寄存间址访一次隐含靠 ACC偏移三类分基准BR 管程序 IX 扫数组相对跟着 PC 走跳转代码随便挪堆栈 SP 藏地址软硬栈分快慢。