Skip to content

2016年 408 计算机组成原理 第 14 题

计算机组成原理2016年选择题2分

题目

某计算机字长为 32 位,按字节编址,采用小端 (Little Endian) 方式存放数据,假定有一个 double 型变量,其机器数表示为 1122 3344 5566 7788H 存放在 0000 8040H 开始的连续存储单元中,则存储单元 0000 8046H 中存放的是( )。

错因

B

字节偏移算成了 5(应是 6),又把字节顺序方向想对了一半。0x8046 - 0x8040 = 6,不是 5;如果按 5 来定位会落到第 5 字节 33H,刚好命中 B。建议每次都把"基地址 + 偏移 = 当前地址"在草稿上写清楚,别心算偏移。

C

把"小端"理解反了——以为最低地址放最高字节(实际是大端的规则)。按大端推:0x8040 放 11H、0x8041 放 22H、…… 0x8046 放 66H,结果就掉进 C。记忆法:小端 = "地址存字节";大端 = "地址存字节"。

D

字节顺序方向用反(同 C 的大端理解),偏移又错位 1。两步同时出错才能落到 77H。建议把 8 个字节按地址从小到大列成表,再读对应行——别在头脑里直接定位。

总解析

第一步:明确 double 占 8 字节,覆盖地址范围

double 数据 0x1122_3344_5566_7788 共 8 字节,从 0x0000_8040 起连续存放,覆盖地址 0x8040 ~ 0x8047

第二步:列出小端字节排列表

小端规则:最低地址存最低字节。把机器数按字节从低到高拆开(最右两位是最低字节):

字节序号该字节值
最低字节 B088H
B177H
B266H
B355H
B444H
B533H
B622H
最高字节 B711H

按小端写入内存:

地址0x80400x80410x80420x80430x80440x80450x80460x8047
字节88H77H66H55H44H33H22H11H

第三步:定位查询地址

0x8046 - 0x8040 = 6 → 第 6 字节(从 0 计数),值为 22H

最终答案是 A(22H)

易混淆速记

  • 小端:"Little-endian = 低地址放 LSB(最低字节)"——首字母 L 对 L
  • 大端:"Big-endian = 低地址放 Biggest(最高字节)"——首字母 B 对 B
  • 内存视图按地址从小到大读:小端 = 数据"反着读";大端 = 数据"正着读"

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题