紫名都
2019-03-02 23:30
采纳率: 33.3%
浏览 575
已采纳

汇编语言指令问题? ? ?

mov eax,22h
mov ebx,45h
shld eax,ebx,32
执行后发现eax的值还是22h,怎么回事。
移位是8、16的话eax都会改变的,怎么32就不变了呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • blownewbee 2019-03-02 23:35
    已采纳

    eax是32bit的,你移动32位应该溢出了。
    你是x64的话,可以用 rax rbx 等64位寄存器。

    点赞 评论
  • 紫名都 2019-03-03 10:09

    百科了一下双精度移位。
    移位计数值的范围为1到31,对于大于31的数,机器则自动取模32的值来取代。

    点赞 评论

相关推荐 更多相似问题