gpt4 book ai didi

assembly - 重复/广播一个字节到整数寄存器的每个位置

转载 作者:行者123 更新时间:2023-12-05 09:24:44 28 4
gpt4 key购买 nike

我正在努力解决汇编中的一个问题,我必须获取十六进制代码的第一个字节 (FF) 并将其复制到整个值中:

0x045893FF      input
0xFFFFFFFF output

我所做的是:

movl $0x04580393FF, %eax
shl $24, %eax # to get only the last byte 0xFF000000

现在我想将这个字节复制到寄存器的其余部分。

最佳答案

例如你可以这样做:

mov %al, %ah    #0x0458FFFF
mov %ax, %bx #0xFFFF
shl $16, %eax #0xFFFF0000
mov %bx, %ax #0xFFFFFFFF

另一种方式是:

movzx %al, %eax
imul $0x1010101, %eax

最后一个在现代架构上可能更快。

关于assembly - 重复/广播一个字节到整数寄存器的每个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779767/

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