Assembly 使用xchg交换数据

Assembly 使用xchg交换数据,assembly,swap,Assembly,Swap,以下措施的效果如何: xchgl %eax, %eax xchg用于交换数据,但是如果src和dst相同,那么它基本上没有效果?xchg eax,eax,或者在二进制中,单字节指令0x90,也称为nop。它什么也不做。xchg eax,eax,或者在二进制中,单字节指令0x90,也称为nop。它什么也不做。xchg eax,eax,或者在二进制中,单字节指令0x90,也称为nop。它什么也不做。xchg eax,eax,或者在二进制中,单字节指令0x90,也称为nop。它什么也不做。那条指令的

以下措施的效果如何:

xchgl %eax, %eax



xchg用于交换数据,但是如果src和dst相同,那么它基本上没有效果?

xchg eax,eax
,或者在二进制中,单字节指令
0x90
,也称为
nop
。它什么也不做。

xchg eax,eax
,或者在二进制中,单字节指令
0x90
,也称为
nop
。它什么也不做。

xchg eax,eax
,或者在二进制中,单字节指令
0x90
,也称为
nop
。它什么也不做。

xchg eax,eax
,或者在二进制中,单字节指令
0x90
,也称为
nop
。它什么也不做。

那条指令的二进制值是多少?我真的不知道,我在for data swapon中看到了一个例子该指令的可能编码是
0x90
,也称为
NOP
。所以是的,它没有任何效果。请注意,在64位模式下,它确实有一个副作用,即将上面的32位归零(编译器使用这个事实)。@teaLeef:我也不知道。当我的PDF查看器加载英特尔手册时,我通过一个汇编程序运行了该指令,后面跟着
objdump
,还有lo!瞧,它说,
0:90nop
。@Jester实际上0x90
nop
在x86_64中是一个特例,因为它不会像其他指令一样将顶部位归零。“希望90是真正的nop,即使是64位。”该指令的二进制值是多少?我真的不知道,我在for data swapon中看到了一个示例,该指令的可能编码是
0x90
,也称为
NOP
。所以是的,它没有任何效果。请注意,在64位模式下,它确实有一个副作用,即将上面的32位归零(编译器使用这个事实)。@teaLeef:我也不知道。当我的PDF查看器加载英特尔手册时,我通过一个汇编程序运行了该指令,后面跟着
objdump
,还有lo!瞧,它说,
0:90nop
。@Jester实际上0x90
nop
在x86_64中是一个特例,因为它不会像其他指令一样将顶部位归零。“希望90是真正的nop,即使是64位。”该指令的二进制值是多少?我真的不知道,我在for data swapon中看到了一个示例,该指令的可能编码是
0x90
,也称为
NOP
。所以是的,它没有任何效果。请注意,在64位模式下,它确实有一个副作用,即将上面的32位归零(编译器使用这个事实)。@teaLeef:我也不知道。当我的PDF查看器加载英特尔手册时,我通过一个汇编程序运行了该指令,后面跟着
objdump
,还有lo!瞧,它说,
0:90nop
。@Jester实际上0x90
nop
在x86_64中是一个特例,因为它不会像其他指令一样将顶部位归零。“希望90是真正的nop,即使是64位。”该指令的二进制值是多少?我真的不知道,我在for data swapon中看到了一个示例,该指令的可能编码是
0x90
,也称为
NOP
。所以是的,它没有任何效果。请注意,在64位模式下,它确实有一个副作用,即将上面的32位归零(编译器使用这个事实)。@teaLeef:我也不知道。当我的PDF查看器加载英特尔手册时,我通过一个汇编程序运行了该指令,后面跟着
objdump
,还有lo!瞧,它说,
0:90nop
。@Jester实际上0x90
nop
在x86_64中是一个特例,因为它不会像其他指令一样将顶部位归零“希望90是真正的nop,即使是64位。”对于
xchg eax还有另一个2字节编码,eax在x86_64上不是nop:
87c0
那么这种编码是为了什么?很少有人知道xchg eax,eax相当于nop@teaLeef:nop通常用于浪费一定数量的时钟周期。@carveone:A
nop
指令对于建立代码跳转目标对齐、可修补性等非常有用。
xchg eax还有另一种2字节编码,eax在x86_64上不是nop:
87c0
那么这种编码是为了什么?很少有人知道xchg eax,eax相当于nop@teaLeef:nop通常用于浪费一定数量的时钟周期。@carveone:A
nop
指令对于建立代码跳转目标对齐、可修补性等非常有用。
xchg eax还有另一种2字节编码,eax在x86_64上不是nop:
87c0
那么这种编码是为了什么?很少有人知道xchg eax,eax相当于nop@teaLeef:nop通常用于浪费一定数量的时钟周期。@carveone:A
nop
指令对于建立代码跳转目标对齐、可修补性等非常有用。
xchg eax还有另一种2字节编码,eax在x86_64上不是nop:
87c0
那么这种编码是为了什么?很少有人知道xchg eax,eax相当于nop@teaLeef:nop通常用于浪费一定数量的时钟周期。@carveone:A
nop
指令对于建立代码跳转目标对齐、可修补性等非常有用。