ASM中两个不同变量声明之间的区别

问题描述

以下gas程序集之间有什么区别?

x: .long 500

并且:

x = 500

两者都可以互换使用,如果不能互换使用,为什么为什么一个偏爱另一个

解决方法

它们不可互换。第一个:

    x:    .long 500

在给定值初始化的内存中创建一个4字节的空间。标签x代表该内存位置的地址。

第二个:

    x = 500

不会创建任何内存。它将符号x设置为值500,而不是地址。