如何解决x86汇编-从dword到qword的mov和movzx?
我正在测试以下代码:
<main>
<br>
<div class="container">
<div class="row">
<div class="col-md-8 mx-auto">
<form action="" method="post"></form>
{% csrf_token %}
{{form.binary}}
<br>
<br>
<button class="btn btn-outline-primary" type="submit">CONVERT</button>
<br>
<br>
<input type="text" placeholder="Integer..." size="40">
</form>
</div>
</div>
</div>
</main>
看看Intel手册,似乎无法使用.intel_syntax noprefix
.data
.Ltest_data:
.byte 0xEF,0xBE,0xAD,0xDE,0xBA,0xED,0xFE
.text
...
movzx rax,BYTE PTR[.Ltest_data] # 0xEF
movzx rax,WORD PTR[.Ltest_data] # 0xBEEF
movsx rax,DWORD PTR[.Ltest_data] # 0xFFFFDEADBEEF (sign-extension)
mov rax,QWORD PTR[.Ltest_data] # 0xFEEDBABEDEADBEEF
# These don't work:
# mov rax,DWORD PTR[.Ltest_data]
# movzx rax,DWORD PTR[.Ltest_data]
...
/ mov
将dword移到qword。我看到的唯一方法是使用movzx
并屏蔽掉前32位。令人惊讶的是,它给出了可用于x86_64的疯狂指令。
这是正确的,还是我遗漏了一些东西?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。