nandgame专题

nandgame中的Grammar(语法)

题目说明: 语法定义涉及数字、括号和运算符+和-的表达式的语法。起始符号为Expression。一个表达式应该对应于以下之一:一个数字标记Expression + ExpressionExpression - Expression- Expression( Expression ) level help 通过语法来描述高级语言的语法。语法是一组规则,其中每个规则命名语法的一部分,

nandgame中的Code generation(代码生成)

题目说明: 代码生成为语言的语法规则定义代码生成,以支持加法和减法。您可以使用在前面级别中定义的堆栈操作(如ADD和SUB)。代码生成模板通常需要包含规则中其他符号的代码。这些可以通过方括号中的符号名称插入。例如,规则:Expression → Expression + Number可以有以下代码模板:[Expression]PUSH_VALUE [Number]ADD像[Number]

nandgame中的asm编程PUSH_VALUE、ADD、SUB、NEG、AND、OR

参考:https://zhuanlan.zhihu.com/p/613188641 PUSH_VALUE题目说明及答案 将值推送到堆栈上。提示:该值将作为宏的替换值提供,但在测试时,您可以在“测试工具”框中设置该值。现在,我们引入了一个使用占位符的宏。宏关键字 PUSH_VALUE 后必须跟随一个数字,例如 PUSH_VALUE 42。当使用该宏时,宏代码中的占位符关键字 value 将被指

nandgame中的机器码

第一条指令是计数器置0 第二条指令是设置JMP的地址2,存储到A寄存器,执行JMP时,A中的2就是JMP的参数。 第三条指令是计数器D寄存器自增加1 第四条是无条件跳转JMP,参数是寄存器A中的值,跳到地址2就是执行第三条指令。 第3、4条指令形成循环计数。 bit flags中最高位ci,在前面控制单元提到过, 0是数据指令,默认存储到A寄存器 1是ALU指令,指令都是默认操作D、A两个寄存

nandgame中的控制单元(Control Unit)

关卡说明的翻译: 控制单元除了ALU指令之外,计算机还应支持数据指令。在数据指令中,指令值直接写入A寄存器。创建一个控制单元,根据指令I的高位执行数据指令或ALU指令:位 150 数据指令1 ALU指令ALU指令对于ALU指令,输出应与上一级中指定的一样。R是ALU操作的结果。数据指令对于数据指令,输出R应为I输入,目标应为A寄存器。即a应为1,d、a*和j标志应为0。一个程序是一系

学习或复习电路的game推荐:nandgame(NAND与非门游戏)、Turing_Complete(图灵完备)

https://www.nandgame.com/ 免费 https://store.steampowered.com/app/1444480/Turing_Complete/ 收费,70元。据说可以导出 Verilog !