我很想知道是否有任何特殊的 GAS 语法可以实现与 NASM 示例中相同的效果:
SECTION .data
msg: db "Hello World",10,0 ; the 0-terminated string.
len: equ $-msg ; "$" means current address.
我尤其对符号感兴趣$
代表当前地址。
摘自info as
(GNU Binutils 2.21.90),或在线查看 GAS 手册:https://sourceware.org/binutils/docs/as/Dot.html https://sourceware.org/binutils/docs/as/Dot.html
5.4 特殊点符号
特殊符号.
指的是当前地址as
是
组装成.因此,表达式melvin: .long .
定义melvin
包含它自己的地址。
赋值给.
被视为与.org
指示。
因此,表达式.=.+4
就等于说.space 4
.
msg: .ascii "Hello World!\n" # not zero-terminated, use .asciz for that
msglen = . - msg # A .equ directive would be equivalent
这是相同版本的 GAS 版本NASM 中使用的习语(len equ $ - symbol) https://stackoverflow.com/questions/47494744/how-does-work-in-nasm-exactly让汇编器为你计算某个东西的长度。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)