news 2026/6/10 20:18:53

HNU2026-计算机系统-第一次作业

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HNU2026-计算机系统-第一次作业

2026年春第一次作业:

教材第19页,第2题;
教材第47页,第5题;
教材第48页,第6题。


第 2 题

一个字节可以用两个十六进制数来表示。填写下表中缺失的项,给出不同字节模式的十进制、二进制和十六进制值。

十进制二进制十六进制
00000 00000x00
1671010 01110xA7
620011 11100x3E
1881011 11000xBC
550011 01110x37
1361000 10000x88
2431111 00110xF3
820101 00100x52
1721010 11000xAC
2311110 01110xE7

解题过程:

转换方法说明:

  • 十进制 → 十六进制:将十进制数除以 16,商为高位,余数为低位。余数 10~15 分别用 A~F 表示。
  • 二进制 → 十六进制:将二进制每 4 位一组,分别转换为一个十六进制数字(0000=0,0001=1, …,1001=9,1010=A,1011=B,1100=C,1101=D,1110=E,1111=F)。
  • 十六进制 → 二进制:将每个十六进制数字展开为 4 位二进制。
  • 十六进制 → 十进制:高位 × 16 + 低位。

已知十进制,求二进制和十六进制:

  • 167
    • 二进制:167 = 128 + 32 + 4 + 2 + 1 = 2⁷ + 2⁵ + 2² + 2¹ + 2⁰ →1010 0111
    • 十六进制:167 ÷ 16 = 10 余 7 → 高位 A,低位 7 →0xA7
  • 62
    • 二进制:62 = 32 + 16 + 8 + 4 + 2 = 2⁵ + 2⁴ + 2³ + 2² + 2¹ →0011 1110
    • 十六进制:62 ÷ 16 = 3 余 14 → 高位 3,低位 E →0x3E
  • 188
    • 二进制:188 = 128 + 32 + 16 + 8 + 4 = 2⁷ + 2⁵ + 2⁴ + 2³ + 2² →1011 1100
    • 十六进制:188 ÷ 16 = 11 余 12 → 高位 B,低位 C →0xBC

已知二进制,求十进制和十六进制:

  • 0011 0111
    • 十进制:32 + 16 + 4 + 2 + 1 = 55
    • 十六进制:0011= 3,0111= 7 →0x37
  • 1000 1000
    • 十进制:128 + 8 = 136
    • 十六进制:1000= 8,1000= 8 →0x88
  • 1111 0011
    • 十进制:128 + 64 + 32 + 16 + 2 + 1 = 243
    • 十六进制:1111= F,0011= 3 →0xF3

已知十六进制,求十进制和二进制:

  • 0x52
    • 十进制:5 × 16 + 2 = 82
    • 二进制:5=01012=00100101 0010
  • 0xAC
    • 十进制:A(10) × 16 + C(12) = 160 + 12 = 172
    • 二进制:A=1010C=11001010 1100
  • 0xE7
    • 十进制:E(14) × 16 + 7 = 224 + 7 = 231
    • 二进制:E=11107=01111110 0111

第 5 题

假设寄存器%eax的值为 x,%ecx的值为 y。填写下表,指明下面每条汇编代码指令存储在寄存器%edx中的值。

指令结果
leal 6(%eax), %edxx + 6
leal (%eax,%ecx), %edxx + y
leal (%eax,%ecx,4), %edxx + 4y
leal 7(%eax,%eax,8), %edx7 + 9x
leal 0xA(,%eax,4), %edx10 + 4x
leal 9(%eax,%ecx,2), %edx9 + x + 2y

解题过程:

leal(Load Effective Address) 指令计算地址表达式的值,但不访问内存,而是将计算出的地址值直接存入目标寄存器。

通用格式:leal imm(base, index, scale), destdest = imm + base + index × scale

  • leal 6(%eax), %edx:edx = 6 + eax =x + 6
  • leal (%eax,%ecx), %edx:edx = eax + ecx =x + y
  • leal (%eax,%ecx,4), %edx:edx = eax + ecx × 4 =x + 4y
  • leal 7(%eax,%eax,8), %edx:edx = 7 + eax + eax × 8 = 7 + 9 × eax =7 + 9x
  • leal 0xA(,%eax,4), %edx:edx = 0xA + eax × 4 =10 + 4x
  • leal 9(%eax,%ecx,2), %edx:edx = 9 + eax + ecx × 2 =9 + x + 2y

第 6 题

假设下面的值存放在指定的存储器地址和寄存器中:

地址
0x1000xFF
0x1040xAB
0x1080x13
0x10C0x11
寄存器
%eax0x100
%ecx0x1
%edx0x3

填写下表,给出下面指令的效果,说明将被更新的寄存器或存储器位置,以及得到的值。

指令目的
addl %ecx, (%eax)0x1000x100
subl %edx, 4(%eax)0x1040xA8
imull $16, (%eax,%edx,4)0x10C0x110
incl 8(%eax)0x1080x14
decl %ecx%ecx0x0
subl %edx, %eax%eax0xFD

解题过程:

  • addl %ecx, (%eax):将 %ecx 加到 M[%eax] 上。目的地址 = %eax = 0x100,值 = M[0x100] + %ecx = 0xFF + 0x1 =0x100

    十六进制加法详解:0xFF + 0x1 = 0x100

    十六进制加法与十进制加法规则相同,区别在于逢 16 进 1(十进制是逢 10 进 1)。

    按位从低位到高位相加:

    1. 最低位:F + 1 = 15 + 1 = 16 =1 × 16 + 0,写下0,向高位进1
    2. 次低位:F + 0 + 进位 1 = 15 + 1 = 16 =1 × 16 + 0,写下0,向高位进1
    3. 最高位:0 + 0 + 进位 1 =1,写下1

    拼合结果:0x100

    直观理解:0xFF 是一个字节能表示的最大值(十进制 255),加 1 后溢出为 0x100(十进制 256),类似十进制中 99 + 1 = 100 的进位过程。

  • subl %edx, 4(%eax):从 M[%eax+4] 中减去 %edx。目的地址 = 0x100 + 4 = 0x104,值 = M[0x104] - %edx = 0xAB - 0x3 =0xA8

  • imull $16, (%eax,%edx,4):将 M[%eax + %edx×4] 乘以 16。目的地址 = 0x100 + 0x3 × 4 = 0x10C,值 = M[0x10C] × 16 = 0x11 × 0x10 =0x110

    十六进制乘法详解:0x11 × 0x10 = 0x110

    十六进制乘法与十进制乘法规则相同,逢 16 进位

    乘以 0x10(即十进制 16)等价于左移一位,末尾补 0,类似十进制中乘以 10 的效果:

    • 0x11 × 0x10 → 在 0x11 末尾补一个 0 →0x110

    验证(转为十进制):0x11 = 1×16 + 1 = 17,0x10 = 16,17 × 16 = 272 = 1×256 + 1×16 + 0 = 1×16² + 1×16¹ + 0×16⁰ =0x110

  • incl 8(%eax):将 M[%eax+8] 加 1。目的地址 = 0x100 + 8 = 0x108,值 = M[0x108] + 1 = 0x13 + 1 =0x14

  • decl %ecx:将 %ecx 减 1。目的 = %ecx,值 = 0x1 - 1 =0x0

  • subl %edx, %eax:从 %eax 中减去 %edx。目的 = %eax,值 = 0x100 - 0x3 =0xFD

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/6 23:27:15

Lanczos插值滤波器在图像缩放中的应用与优化

1. 认识Lanczos插值滤波器 当你用手机放大一张老照片时,有没有发现边缘变得模糊不清?或者在游戏里把低分辨率贴图放大后出现锯齿?这些问题背后都藏着图像缩放的核心难题——如何用数学方法"猜"出原本不存在的像素。Lanczos插值滤波…

作者头像 李华
网站建设 2026/6/9 4:44:00

终极免费开源电路板查看器:OpenBoardView完整指南与高效工作流

终极免费开源电路板查看器:OpenBoardView完整指南与高效工作流 【免费下载链接】OpenBoardView View .brd files 项目地址: https://gitcode.com/gh_mirrors/op/OpenBoardView 作为一名电子工程师或硬件维修技术人员,您是否曾因无法快速查看和分析…

作者头像 李华
网站建设 2026/6/8 18:05:25

SHT4X温湿度传感器I²C驱动开发与工程实践

1. Sensirion SHT4X系列温湿度传感器底层驱动技术解析Sensirion SHT4X系列(SHT40/SHT41/SHT45)是当前工业级IC数字温湿度传感器中精度、稳定性与功耗比表现最为均衡的代表型号。其核心优势在于:0.2C温度精度(-10C~60C)…

作者头像 李华
网站建设 2026/6/8 23:25:45

告别复杂配置!LingBot-Depth Docker镜像10分钟快速部署指南

告别复杂配置!LingBot-Depth Docker镜像10分钟快速部署指南 你是不是曾经被复杂的AI模型部署搞得头大?各种依赖包冲突、环境配置问题、版本不兼容……光是安装配置就要花上大半天时间。今天我要介绍的LingBot-Depth Docker镜像,就是来解决这…

作者头像 李华