为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中模拟 SHL 和 SHR ASM 指令

在 Python 中模拟 SHL 和 SHR ASM 指令

尚方宝剑之说 2021-09-14 09:47:18
在 x86_64 ASM 中,以下指令分别执行按位左移和右移。SHL rax, clSHR rax, cl我想用 Python 模拟这些指令。对于诸如:0x613025F862 之类的值,我可以执行以下操作:result = 0x613025F862 << 0x10但是,对于较大的值,我得到不同的结果:0x60018DDDBD500063 << 0x10它给我的结果为:0x60018dddbd5000630000。但是,在 ASM 中,结果将是:0x8dddbd5000630000我可以通过执行以下操作在 Python 中获得上述结果:(0x60018DDDBD500063 << 0x10) & 0xffffffffffffffff现在,我如何编写一个有效的通用函数来给出正确的结果?为此,我编写了如下所示的函数:def shift_left(input):    result = input << 0x10    if result > 0xffffffffffffffff:        result = result & 0xffffffffffffffff    else:        result = result    return result谢谢。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 304 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信