用Python构建简单计算机解释器
1. 寄存器编号处理
在处理计算机指令时,有时需要将寄存器编号转换为整数。例如,对于 r2 ,我们想获取其中的数字 2 作为整数。可以通过以下方式实现:
rS1 = int(rS1[1]) # 获取 rS1 字符串的第二个字符并将其转换为整数
也可以将其合并为一个表达式:
rS1 = int(inst[2][1]) # inst[2][1],获取子字符串 2 的第 1 个字符
2. 简易计算机概述
我们创建的小型计算机仅能执行五种不同的指令,但它包含了真实计算机的许多重要组件。该计算机可以直接从汇编语言形式执行指令,而非二进制代码。在构建更逼真的计算机之前,需要更深入地了解指令集。
3. TC1 计算机指令集
为了简化设计,我们使用独立的程序和数据存储器,这与传统的冯·诺依曼模型不同,允许我们拥有 32 位的程序存储器和 16 位的数据存储器,并且无需担心数据意外出现在程序区域中间。
3.1 指令格式
TC1 计算机采用单一的固定格式,所有指令具有相同数量的字段,且每个字段的大小相同。一条指令由操作类、操作码、三个寄存器字段和一个立即数字段组成。操作码字段为 7 位,其中 2 位用于操作码类,5 位用于实际操作码。
| 字段 |
|---|
超级会员免费看
订阅专栏 解锁全文


被折叠的 条评论
为什么被折叠?



