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

How Can I Convert Assembly Code to Machine Code In Java

我有一些关于 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);

你的问题不太清楚。似乎您希望将汇编指令翻译成相应的机器代码,但随后您遵循有关如何读取输入文件的代码。

首先,您读取 input.asm 文件的代码实际上并没有读取文件。您创建了一个 BufferdReader 但从未从中读取(为什么要显示代码)。

其次,机器代码可能因您打算在其上构建程序的体系结构而异。如果您知道什么 HEX 数字与您的指令匹配,您可以构建一个 hashmap,将指令代码转换为相应的 HEX 数字。

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

自动执行

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