首页 » 软件优化 » 程序员挑战系列:Excel中构建CPU(程序员构建挑战设置为系列)

程序员挑战系列:Excel中构建CPU(程序员构建挑战设置为系列)

落叶飘零 2024-11-04 07:41:00 0

扫一扫用手机浏览

文章目录 [+]

在Excel中构建CPU是一个非常令人惊叹且富有想法的挑战,听上去是如此的不可能,但是确实被实现了,虽然和真正的CPU还是有很大的差距,但这也已经很疯狂了。

下面咱们一块见证一下这个项目:

1、InkboxSoftware/ExcelCPU

项目介绍:

程序员挑战系列:Excel中构建CPU(程序员构建挑战设置为系列) 软件优化
(图片来自网络侵删)

GitHub上目前已有4.1K的Star。

CPU.xlsx文件具有16位CPU、16个通用寄存器、128 KB RAM和128 x128显示器。

该项目主要包括以下几个文件:

CPU.xlsx - 包含CPU的主电子表格

ROM.xlsx - 当读ROM开关打开时,CPU读取所使用的ROM电子表格

InstructionSet.xlsx - 解释CPU的ISA

compileExcelASM16.py - Excel-ASM 16编译器

Excel-ASM16.xml - 与Notepad++兼容的Excel-ASM 16语言的Markdown

Sample Programs - Excel CPU的示例程序文件夹

CPU.xlsx文件示例:

ROM.xlsx文件示例:

项目使用:

大体翻译如下:(非专业)

必须打开迭代计算。
这可以通过转到文件->选项->公式->然后启用迭代计算并将最大迭代次数设置为1,

CPU根据B2中设置的时钟信号运行。
此时钟信号将在Excel电子表格中重新计算的正常条件下更新。
按F9键将重新计算电子表格。

如果F2单元格中的复位按钮设置为真,则会将PC寄存器复位回0。

CPU.xlsx文件中的计算机可以自动或手动模式控制。
这由J2中的按钮控制。
如果设置为真,当来自B2的时钟信号为高电平时,CPU将执行单元格D8中获取单元的覆盖槽中指定的操作。
如果设置为假,CPU将执行PC寄存器指定的从存储器表中检索的操作。

重置RAM按钮,如果设置为真,将重置每个内存单位为0。

Read ROM(读取ROM)按钮如果设置为true,则会将ROM. xlsx电子表格中内存表的值复制到CPU. xlsx电子表格的RAM表中。

CPU的正常操作包括将复位按钮设置为高,或者再次打开和关闭复位RAM或读取ROM按钮(导致RAM被复位或ROM被读取到RAM表中),然后关闭复位按钮。
然后CPU被设置为在手动模式下运行程序,或者将执行RAM中指定的程序。

CPU设计为根据InstructionSet.xlsx电子表格中指定的指令集架构运行。

警告:不可能简单地尽可能快地按下F9键,Excel更新这么多单元格需要时间,建议等到Excel左下角可以看到文本“Ready”后再继续按下F9键。

或者,程序可以用Excel-ASM 16语言编写,并编译为ROM.xlsx电子表格。

详细的使用操作可参考GitHub上该项目的README.md文档

具体的代码获取,请后台留言【ExcelCPU】,免费发送!

也可自行登录github网站获取,项目链接如下:

https://github.com/InkboxSoftware/excelCPU

标签:

相关文章