Files
final-exam/接口与通讯技术/重点复习/选择题专题/小端序与存储器组织.md
T

3.7 KiB
Raw Blame History

tags, create time
tags create time
接口与通讯技术
小端序
存储器
物理地址
选择题
重点复习
2026-06-28 16:30

小端序与存储器组织 选择题考点

概述

小端序(Little-Endian)和 8086 存储器组织在 3 套试卷中共出现 5 题,几乎每套必考。核心考点为字单元内容计算、物理地址计算、堆栈中的小端序应用。

正文

1. 小端序存储规则

x86 采用小端序:低字节存低地址,高字节存高地址。

graph LR
    subgraph "内存布局"
        LO["低地址<br/>存低字节"] --> HI["高地址<br/>存高字节"]
    end
    subgraph "逻辑含义"
        VAL["一个字 = 高字节×256 + 低字节"]
    end
    style LO fill:#dfd,stroke:#333,color:#000
    style HI fill:#fdd,stroke:#333,color:#000

2. 字单元内容计算(通用方法)

三步法:

  1. 找到起始地址和下一个地址的内容
  2. 起始地址(低地址)→ 低字节;下一个地址(高地址)→ 高字节
  3. 字内容 = 高字节 × 256 + 低字节 = 高字节拼接低字节

[!example] 真题1 (22000H)=33H, (22001H)=44H,以 22000H 为地址的字单元内容 = ?

  • 低字节(22000H)= 33H,高字节(22001H)= 44H
  • 字内容 = 4433H

[!example] 真题2 (12341H)=11H, (12342H)=22H, (12343H)=33H,以 12342H 为地址的字单元内容 = ?

  • 低字节(12342H)= 22H,高字节(12343H)= 33H
  • 字内容 = 3322H

[!example] 真题3 (20000H)=12H, (20001H)=34H, (20002H)=56H,地址 20001H 的字单元内容 = ?

  • 低字节(20001H)= 34H,高字节(20002H)= 56H
  • 字内容 = 5634H

[!tip] 速算技巧 直接高地址内容拼低地址内容:看到 (addr)=34H, (addr+1)=56H → 答案就是 5634H。

3. 8086 物理地址计算

\text{物理地址} = \text{段基址} \times 10\text{H} + \text{偏移地址}

[!example] 真题 (CS)=2000H, (IP)=3456H,下一条指令的物理地址 = ?

2000\text{H} \times 10\text{H} + 3456\text{H} = 20000\text{H} + 3456\text{H} = \textbf{23456H}

graph TD
    A["段基址: 2000H"] --> B["左移4位: 20000H"]
    C["偏移地址: 3456H"] --> D["相加"]
    B --> D
    D --> E["物理地址: 23456H"]
    style E fill:#ffd,stroke:#333,color:#000

[!question] 思考题 为什么 8086 要采用"段基址×16+偏移"的方式,而不是直接用 32 位地址?

答:8086 内部寄存器是 16 位的,最大寻址 64KB。通过段基址左移 4 位(×16)再加上 16 位偏移,可以用两个 16 位值组合出 20 位物理地址,寻址 1MB 空间。这是 16 位架构下的巧妙设计。

4. 堆栈中的小端序(POP 操作)

堆栈操作同样遵循小端序规则:

POP AX 时:
  低地址内容 → AL(低字节)
  高地址内容 → AH(高字节)

[!example] 真题 (SS)=1000H, (SP)=1234H, (11234H)=12H, (11235H)=34H

  • 栈顶 = 1000H × 10H + 1234H = 11234H
  • AL ← [11234H] = 12H(先弹,低地址)
  • AH ← [11235H] = 34H(后弹,高地址)
  • AX = 3412H

[!warning] 易错点 POP 弹出的是字(2字节),不是字节!答案不会是 12H 或 34H 单个字节,而是组合后的 3412H。

5. 三类题型速查

题型 关键公式/规则 常见陷阱
字单元内容 高地址内容拼接低地址内容 搞反高低字节顺序
物理地址 段基址×10H + 偏移 忘记×10H(左移4位)
POP 堆栈 先弹低地址给低寄存器 把 AH/AL 取反

关联笔记