我对CPU有一些说明,所以我有汇编代码,以及如何将它们转换为Java中的机器代码。
我有这样的代码:
LI 5
ST 1
AD 1
ST 0
LI 0
BZ 0
我想要他们这样:
85 41 c1 40 80 00
该汇编代码存储在txt文件中,因此我尝试从txt文件读取该数据 尝试{
String f = "C:\\Users\\comp\\Desktop\\CompArch\\a.txt";
FileReader fw = new FileReader(f);
BufferedReader assembly_file = new BufferedReader(fw);
Hashtable<String, String> symtab = new Hashtable<String, String>();
String str;
int z=0;
String f4 = "C:\\Users\\comp\\Desktop\\CompArch\\MACHINE_CODE.asm";
FileWriter fw4 = new FileWriter(f4);
BufferedWriter machine_code_file = new BufferedWriter(fw4);
答案 0 :(得分:1)
您的问题还不清楚。似乎您想将汇编指令翻译为它们相应的机器代码,但是接着要遵循有关如何读取输入文件的代码。
首先,您用于读取input.asm文件的代码实际上并未读取该文件。您创建了BufferdReader,但是从不读取(为什么要显示代码)。
第二,机器代码可能会因要在其上构建程序的体系结构而异。如果您要记住与您的指令匹配的十六进制数字,则可以构建一个哈希图,将映射从指令代码转换为相应的十六进制数字。
否则,我建议您找到一个用于汇编的IDE,并查看它是否具有将编译的汇编显示为机器代码的功能。或者,您可以自己编译程序集,然后查看已编译程序的机器代码,然后使用Java将其自动化。
希望能有所帮助,如果我不能正确理解您的问题,请发表评论或发表回复。