gpt4 book ai didi

assembly - 编码汇编代码行 "xorq, %rdx, %rdx"需要多少字节?

转载 作者:行者123 更新时间:2023-12-05 09:08:23 29 4
gpt4 key购买 nike

通常会找到以下形式的汇编代码行

xorq, %rdx, %rdx

此操作的一个用途是将寄存器 %rd 设置为零,利用 x^x = 0 这一事实。在 C 中,它与设置 x = 0 相同。

表达这个操作的另一种更直接的方式是

movq $0, %rdx

我的问题是,我们如何计算对这两种不同的实现进行编码所需的字节数?我相信第一个答案是 3 个字节,而第二个答案需要 7 个字节。

最佳答案

在过去,汇编程序会生成显示编码指令的列表文件,您可以看到每条指令占用了多少字节。如果做不到这一点,您可以将这段代码放在一些 file.s 中:

a:  xorq  %rdx, %rdx
b: movq $0, %rdx
c:

然后用as -o file.o file.s 组装它并用nm file.o 查看符号,它显示如下:

0000000000000000 t a0000000000000003 t b000000000000000a t c

从中可以看出xorq %rdx, %rdx需要316−016 = 3个字节,而movq $0, %rdx 需要一个16−316 = 7 个字节。

您还可以使用 objdump -disassemble file.ootool -tv file.o 反汇编目标文件。 (命令及其开关可能有所不同;这些是当前的 Apple 工具。)

关于assembly - 编码汇编代码行 "xorq, %rdx, %rdx"需要多少字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63562595/

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