gpt4 book ai didi

java - 使用 Java 表示字节码中的相对寻址

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:33 25 4
gpt4 key购买 nike

我正在尝试用Java 表示相对寻址模式。我们知道,对于相对寻址,操作数必须采用 -128 到 +127 之间的值,因为相对寻址使用 2 的补码来表示操作数是否应该与基值相加或相减。

但是我正在努力将其转换为十六进制表示形式。

2 的补码形式使用最高有效位来确定所讨论的位模式是正还是负,因此范围为 -128 到 +127。

假设我们有相对地址操作数 *+3A ,表明用户想要添加 3A到程序计数器中保存的值。这很简单,如 3A转换为00111010二进制。

但是我该如何代表 *-3A在Java中?如果我将3A转换为十进制,即58然后对其求反得到-58然后将其转换回十六进制,这样可以吗?

我不确定这是否真的很简单,我正在把它变成比实际更大的东西。

最佳答案

我们有一些事情正在发生。

二进制补码是所有现代机器中负整数的表示形式。要对整数求反,您可以:

  • 取按位补码,然后
  • 加一,忽略进位位。

所以这需要在特定字长的上下文中完成。如果允许的范围是 -128 到 127,则您正在处理一个 8 位“字”。

第二个问题是如何对结果进行编码以供人类(或编译器)使用。无论哪种情况,简单地使用带符号的十进制整数可能都是理想的选择。

关于java - 使用 Java 表示字节码中的相对寻址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48916481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com