计算机基础问题与解答汇编

1、什么是算法?

算法是一种明确的、循序渐进的解决问题或达成预期目标的过程。

2、一个16位寄存器可以存储多少种不同的模式?作为(补码)有符号整数,该寄存器能存储的最大值和最小值分别是多少?作为无符号整数,最大值和最小值又分别是多少?

一个16位寄存器可以存储 $2^{16}$(65536)种不同的模式。

  • 作为有符号整数
  • 最大值是 +32767(0x7FFF)
  • 最小值是 -32768(0x8000)

  • 作为无符号整数

  • 最大值是 65535(0xFFFF)
  • 最小值是 0(0x0000)

3、哪 4 个十六进制字节可以表示字符串“Fred”?

字符 ‘F’ 对应的十六进制是 0x46 ,’r’ 是 0x72 ,’e’ 是 0x65 ,’d’ 是 0x64 。所以表示字符串“Fred”的 4 个十六进制字节是 0x46 0x72 0x65 0x64

4、十六进制数 0x45617379 对应的 ASCII 字符串是什么?

十六进制数 0x45 对应字符 'E' 0x61 对应字符 'a' 0x73 对应字符 's' 0x79 对应字符 'y' ,所以对应的 ASCII 字符串是 'Easy'

5、判断题:二进制数中 1 的数量越多,数值就越大。是对还是错?为什么?

错误。二进制数的大小由其位权和每一位上的数值共同决定,并非 1 的数量越多数值就越大。

例如:

  • 8 位二进制数 00000011 有 2 个 1,数值为 3;
  • 01000000 只有 1 个 1,数值为 64。

6、为什么为Windows奔腾IV创建的可执行文件在基于PowerPC的Macintosh上无法运行(没有特殊软件支持)?

不同操作系统和CPU架构的可执行文件不兼容。Windows奔腾IV的可执行文件是基于奔腾IV CPU和Windows操作系统的指令集和架构编写的,而基于PowerPC的Macintosh有不同的CPU架构和操作系统,因此在没有特殊软件支持的情况下无法运行。

7、软件执行特定操作相较于硬件执行的最重要的缺点是什么?

速度。在软件中执行特定操作通常比在硬件中慢约1000倍,在JVM上用Java进行硬核计算可能比用C++编译的机器语言进行相同计算慢得多。

8、在复杂指令集计算机(CISC)还是精简指令集计算机(RISC)上,取指 - 执行周期更复杂?为什么?

在CISC计算机上取指-执行周期更复杂。CISC芯片能在不使用CPU内部存储的情况下将大块数据从一个内存位置移动到另一个内存位置,但对于特定程序或应用,可能需要使用许多指令来完成任务,且每个步骤都要获取和解释移动特定字节的指令。

而RISC芯片虽然可能需要将每个字节或字移入CPU再移回内存,但整体取指-执行周期通常运行更快,且指令集设计简单,所有指令执行时间大致相同,通常可在单个机器周期内执行。

9、以下哪些操作是非法的,为什么? • bipush 7 • bipush -7 • sipush 7 • ldc -7 • ldc2 -7 • bipush 200 • ldc 3.5 • sipush -300 • sipush -300.0 • ldc 42.15

`ldc2 -7`、`bipush 200`、`sipush -300.0` 是非法的。

- `bipush` 用于推送1字节有符号整数,范围是 -128 到 127,200 超出范围;
- `ldc2` 用于推送双字常量,如长整型或双精度浮点型,不能用于推送 -7;
- `sipush` 用于推送2字节有符号整数,不能用于推送浮点数 -300.0。

10、如何使用移位操作将一个整数乘以 8?

可以使用左移操作将整数乘以 8。因为左移操作相当于将数值乘以 2 的幂,乘以 8 即乘以 2 的 3 次方,所以将整数左移 3 位即可。

在 JVM 中,使用 ishl 指令,从栈中弹出两个整数,将次顶整数按顶整数低 6 位指示的位数左移(这里顶整数为 3),新空出的位置用 0 填充,结果即为乘以 8 后的整数。

11、计算机如何判断给定的一行是指令、注释还是汇编指令?

对于注释,在 Jasmin 中,一行里分号( ; )之后的部分是注释,汇编器会忽略注释内容;

对于指令,其直接对应计算机机器语言或字节码,很多情况下通过查找汇编器中存储的表来生成,如助记符 iconst 0 对应的字节码是位模式 0x03

对于汇编指令,在 Jasmin 里,大多数汇编指令以句点( . )开头,如 .class 指令。

12、如果在Jasmin程序中忘记使用.limit指令,程序还能运行吗?

能运行,但如果省略 .limit stack .limit locals 指令,将应用默认限制,即仅够一个 int

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值