Assembly 理解组装中的mov

Assembly 理解组装中的mov,assembly,x86,memory-address,att,Assembly,X86,Memory Address,Att,在32位little endian架构中 有人能给我解释一下这些mov是怎么工作的吗 我知道第二个mov通知处理器在aex寄存器对应的内存地址上写入值0x105,但我无法理解为什么要在0x100地址上写入该值 感谢您的帮助请发布代码并指定指令集。如果两条指令都按该顺序运行,则第一条指令将EAX设置为0x100。如果将这些作为单独的示例/问题(您不知道EAX的起始值),您不能对mov$0x105的存储地址说任何话,(%EAX)0x100被放入EAX中,然后在第二次移动(%EAX)mov$0x105

在32位little endian架构中

有人能给我解释一下这些mov是怎么工作的吗

我知道第二个mov通知处理器在aex寄存器对应的内存地址上写入值0x105,但我无法理解为什么要在0x100地址上写入该值


感谢您的帮助

请发布代码并指定指令集。如果两条指令都按该顺序运行,则第一条指令将EAX设置为0x100。如果将这些作为单独的示例/问题(您不知道EAX的起始值),您不能对
mov$0x105的存储地址说任何话,(%EAX)
0x100被放入EAX中,然后在第二次移动
(%EAX)
mov$0x105中用作目标内存地址,(%eax)不会进行汇编,因为汇编器没有足够的关于0x105值的数据大小的信息。您通常会使用movb、movw、movl等解决此问题。@fredericoviente第一步将值0x100放入
eax
,与地址无关-就像您编写的一样。这是第二步
mov
,which在
eax
中取值(在第一个
mov
之后为0x100),并将其用作内存地址。内存引用的AT&T语法是:
位移(基、索引、刻度)
,其中
(%eax)
+0(%eax,,)
+0(,%eax,1)
的快捷方式,以汇编程序喜欢的编码为准(如果基址可以是空的,我实际上不确定,因为我不关心这些微妙之处,对于我作为程序员来说,它们中的任何一个都可以做同样的工作。
mov $0x100, %eax
mov $0x105, (%eax)