谁能给予指导我如何把数字从汇编程序的指令转换成它们的二进制等价物?数字的范围可以从0到255,需要8位长。
下面是我的方法,它执行从指令到它们的二进制等价物的转换
public void translateInstruction(String instruction) {
String[] parts = instruction.split("[\s,]+");
System.err.println(Arrays.toString(parts));
if (parts.length > 0) {
switch (parts[0]) {
case "LOADN":
output.print("1111");
break;
case "LOADA":
output.print("1110");
break;
case "ADD":
output.print("1101");
break;
case "SUB":
output.print("1100");
break;
case "JMP":
output.print("1011");
break;
case "COPY":
output.print("1000");
break;
case "STORE":
output.print("1001");
break;
}
}
if (parts.length > 1) {
switch (parts[1]) {
case "A":
output.print("01");
break;
case "D":
output.print("10");
break;
}
} else {
output.print("00");
}
if (parts.length > 2) {
switch (parts[2]) {
case "A":
output.print("01");
break;
case "D":
output.print("10");
break;
}
} else {
output.print("00");
}
output.println();
if (parts.length > 3) {
int number = Integer.parseInt(parts[3]);
String binary = String.format("%8s", Integer.toBinaryString(number)).replace(' ', '0');
output.println(binary);
}
}
字符串
1条答案
按热度按时间envsm3lx1#
从根本上说,这些代码丢弃了有价值的信息。在确定操作码之后,该确定仅用于发出操作码本身,而不用于通知如何处理操作数。
通常,指令集架构具有 * 格式 *,并且每种格式都具有允许的特定数量和类型的操作数-每条指令将采用其中一种格式的形状。
所以,你可以做的是:
字符串
型