如何在Java中将汇编代码转换为机器代码

时间:2019-05-22 17:24:47

标签: java assembly cpu-architecture machine-code

我对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);

1 个答案:

答案 0 :(得分:1)

您的问题还不清楚。似乎您想将汇编指令翻译为它们相应的机器代码,但是接着要遵循有关如何读取输入文件的代码。

首先,您用于读取input.asm文件的代码实际上并未读取该文件。您创建了BufferdReader,但是从不读取(为什么要显示代码)。

第二,机器代码可能会因要在其上构建程序的体系结构而异。如果您要记住与您的指令匹配的十六进制数字,则可以构建一个哈希图,将映射从指令代码转换为相应的十六进制数字。

否则,我建议您找到一个用于汇编的IDE,并查看它是否具有将编译的汇编显示为机器代码的功能。或者,您可以自己编译程序集,然后查看已编译程序的机器代码,然后使用Java将其自动化。

希望能有所帮助,如果我不能正确理解您的问题,请发表评论或发表回复。