如何解决什么是 GNU gas 中的零?
在以下编译器输出中:
a:
.long 4
b:
.byte 99
x:
.zero 4
c:
.byte 12
f:
.zero 4
.zero
指令是什么意思?它似乎是 gas directives
中唯一未列出的。仅从上面看,long
是四个字节,.byte
是一个字节,我猜 .zero
表示四字节为零(或后面的任何数字)指令)。对吗?
如果是这样,为什么不直接执行 .long 0
。这是否将其放在不同的部分或其他内容中?
解决方法
不,它不会把它放在不同的部分,它只是把它放在你当前创建的任何部分中。
就其与 .long
的关系而言,后者实际上取决于架构。它可能是不同的大小和/或字节序。请注意,字节序对于零值可能无关紧要,但大小可能无关紧要。
另一方面,.zero
指令是 .skip
(以及 some 架构上的 .space
)的别名,并生成请求数量的字节与架构无关。
还请记住,作为 .skip
的别名,您还可以提供要用于字节的值(默认为零) 但这样做没有什么意义:
.zero 4,32
生成四个空格:-)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。