【发布时间】:2012-06-03 22:42:47
【问题描述】:
首先我想指出我不是母语人士,所以请不要介意我的错误 :) 所以,事实上,我在使用简单的汇编命令时确实有很大的问题,问题是,这个command 是一种与用户交互的“强大”方式。来了:
我正在 Logisim 中构建一个 CPU(没什么特别的,我正在努力适应该程序,并且我正在努力提高我的“技能”)。有了这个,我正在用 Java 编写一个汇编翻译器(汇编输入、二进制和十六进制输出适合 CPU 的指令集)。但是我遇到了一个大问题...^^
我实际上计划添加一个 --PRINT "text"-- 命令,汇编翻译器将为每个字母生成一个 7 位 ASCII 数字并产生如下输出:
汇编输入: 打印“你好世界”
CPU 输出
打印 h
打印电子
打印出来
打印出来
打印出来
打印(空格)
[...]
这是因为我的 CPU 一次只能打印一个字符 :( 好吧,在尝试执行 BRANCH 命令时会出现此问题。
例如,我的翻译程序中的这一行是 Line: 2,在这一行中,您将打印一个 5 个字符长的文本。因此,下一条命令将位于第 3 行,但是 CPU 只打印了 5 个字符,这意味着 Programcounter 现在指向第 8 行,而 Translator 中的第 3 行实际上位于 Programcounter 的第 8 行。
我该如何解决这个问题?添加一个特殊寄存器,在 CPU 实际执行的每个“PRINT”命令后递增,并将其添加到您要分支的行?还是有人有更好的方法将字符打印到屏幕上?
提前感谢所有答案,
出售
【问题讨论】: