HNU2026-计算机系统-第一次作业
2026年春第一次作业教材第19页第2题教材第47页第5题教材第48页第6题。第 2 题一个字节可以用两个十六进制数来表示。填写下表中缺失的项给出不同字节模式的十进制、二进制和十六进制值。十进制二进制十六进制00000 00000x001671010 01110xA7620011 11100x3E1881011 11000xBC550011 01110x371361000 10000x882431111 00110xF3820101 00100x521721010 11000xAC2311110 01110xE7解题过程转换方法说明十进制 → 十六进制将十进制数除以 16商为高位余数为低位。余数 10~15 分别用 A~F 表示。二进制 → 十六进制将二进制每 4 位一组分别转换为一个十六进制数字00000,00011, …,10019,1010A,1011B,1100C,1101D,1110E,1111F。十六进制 → 二进制将每个十六进制数字展开为 4 位二进制。十六进制 → 十进制高位 × 16 低位。已知十进制求二进制和十六进制167二进制167 128 32 4 2 1 2⁷ 2⁵ 2² 2¹ 2⁰ →1010 0111十六进制167 ÷ 16 10 余 7 → 高位 A低位 7 →0xA762二进制62 32 16 8 4 2 2⁵ 2⁴ 2³ 2² 2¹ →0011 1110十六进制62 ÷ 16 3 余 14 → 高位 3低位 E →0x3E188二进制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 30111 7 →0x371000 1000十进制128 8 136十六进制1000 81000 8 →0x881111 0011十进制128 64 32 16 2 1 243十六进制1111 F0011 3 →0xF3已知十六进制求十进制和二进制0x52十进制5 × 16 2 82二进制5010120010→0101 00100xAC十进制A(10) × 16 C(12) 160 12 172二进制A1010C1100→1010 11000xE7十进制E(14) × 16 7 224 7 231二进制E111070111→1110 0111第 5 题假设寄存器%eax的值为 x%ecx的值为 y。填写下表指明下面每条汇编代码指令存储在寄存器%edx中的值。指令结果leal 6(%eax), %edxx 6leal (%eax,%ecx), %edxx yleal (%eax,%ecx,4), %edxx 4yleal 7(%eax,%eax,8), %edx7 9xleal 0xA(,%eax,4), %edx10 4xleal 9(%eax,%ecx,2), %edx9 x 2y解题过程leal(Load Effective Address) 指令计算地址表达式的值但不访问内存而是将计算出的地址值直接存入目标寄存器。通用格式leal imm(base, index, scale), dest→dest imm base index × scaleleal 6(%eax), %edxedx 6 eax x 6leal (%eax,%ecx), %edxedx eax ecx x yleal (%eax,%ecx,4), %edxedx eax ecx × 4 x 4yleal 7(%eax,%eax,8), %edxedx 7 eax eax × 8 7 9 × eax 7 9xleal 0xA(,%eax,4), %edxedx 0xA eax × 4 10 4xleal 9(%eax,%ecx,2), %edxedx 9 eax ecx × 2 9 x 2y第 6 题假设下面的值存放在指定的存储器地址和寄存器中地址值0x1000xFF0x1040xAB0x1080x130x10C0x11寄存器值%eax0x100%ecx0x1%edx0x3填写下表给出下面指令的效果说明将被更新的寄存器或存储器位置以及得到的值。指令目的值addl %ecx, (%eax)0x1000x100subl %edx, 4(%eax)0x1040xA8imull $16, (%eax,%edx,4)0x10C0x110incl 8(%eax)0x1080x14decl %ecx%ecx0x0subl %edx, %eax%eax0xFD解题过程addl %ecx, (%eax)将 %ecx 加到 M[%eax] 上。目的地址 %eax 0x100值 M[0x100] %ecx 0xFF 0x1 0x100十六进制加法详解0xFF 0x1 0x100十六进制加法与十进制加法规则相同区别在于逢 16 进 1十进制是逢 10 进 1。按位从低位到高位相加最低位F 1 15 1 16 1 × 16 0写下0向高位进1次低位F 0 进位 1 15 1 16 1 × 16 0写下0向高位进1最高位0 0 进位 1 1写下1拼合结果0x100直观理解0xFF 是一个字节能表示的最大值十进制 255加 1 后溢出为 0x100十进制 256类似十进制中 99 1 100 的进位过程。subl %edx, 4(%eax)从 M[%eax4] 中减去 %edx。目的地址 0x100 4 0x104值 M[0x104] - %edx 0xAB - 0x3 0xA8imull $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 170x10 1617 × 16 272 1×256 1×16 0 1×16² 1×16¹ 0×16⁰ 0x110✓incl 8(%eax)将 M[%eax8] 加 1。目的地址 0x100 8 0x108值 M[0x108] 1 0x13 1 0x14decl %ecx将 %ecx 减 1。目的 %ecx值 0x1 - 1 0x0subl %edx, %eax从 %eax 中减去 %edx。目的 %eax值 0x100 - 0x3 0xFD
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2440845.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!