python中的movsx

2024-03-29 12:16:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将asm代码反编译为python。我遇到了下面的一行

movsx eax, byte ptr [edi] 

我正在寻找一种在python中对字节进行有符号扩展的方法。我目前正在使用bytearray来获取各个字节。在得到每个字节之后,我需要为每个字节做一个有符号的扩展。在


Tags: 方法代码字节符号byteasm反编译edi
1条回答
网友
1楼 · 发布于 2024-03-29 12:16:31

我使用以下片段:

# sign extend b low bits in x
# from "Bit Twiddling Hacks"
def SIGNEXT(x, b):
  m = 1 << (b - 1)
  x = x & ((1 << b) - 1)
  return (x ^ m) - m

在你的情况下,b是8。你可以预先计算一下面具的速度。在

可以在here找到引用的黑客。在

相关问题 更多 >