百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
S

simple-computer

> 编程语言
开源

来自 J. Clark Scott 的《但它怎么知道?》中的 Scott CPU

2.0K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

来自 J. Clark Scott 的《但它怎么知道?》中的 Scott CPU

在阅读 J. Clark Scott 的《但它怎么知道?》时,我被迫写下一些代码,模拟书中描述的计算机。从 NAND 门开始,逐步通过寄存器、RAM、ALU、控制单元以及添加 I/O 支持,最终我创建了一台完全功能的机器。 系统的所有组件都基于逻辑门,以及它们如何通过系统总线相连。 关于这个项目的详细介绍,请参阅我的博客文章 https://djharper.dev/post/2019/05/21/i-dont-know-how-cpus-work-so-i-simulated-one-in-code/

  • ~0.006mhz - 至少在我自己的机器上是这样的

  • 中断,因此你必须编写糟糕的轮询代码 - 书中简要描述了如何扩展系统以支持中断,但这将涉及更多的布线 - 堆栈指针寄存器 + 堆栈 + 堆栈操作指令,因此嵌套的CALL指令将不起作用,并且寄存器可能处于不一致的状态 - 硬盘驱动器 - 减法指令 - MOV指令 - 浮点数运算 (lol) - 现代 CPU 中的其他一切

  • 没有 Meltdown/SPECTRE 风险 - 可以轻松覆盖内存的任何部分,而不受任何保护模式的影响 - 目前无法访问互联网 - 我可以理解你如何编写一个简单的网络 I/O 适配器,尽管我想这会很繁琐,需要编写汇编代码才能将字节读入和写出

指令 类型 描述 示例
LOAD Ra, Rb 机器 将内存地址 Ra 的值加载到寄存器 B 中 LOAD R1, R2
STORE Ra, Rb 机器 将寄存器 B 的值存储到内存地址 Ra 中 STORE R3, R1
DATA Ra, <VALUE> 机器 将 <VALUE> 加载到寄存器 A 中。<VALUE> 可以是一个符号,前缀为

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Go

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言