我看到了以下指令,但我不知道确切的用法:
.space
.byte
.word
.asciiz
.ascii
.align
发布于 2017-04-23 05:12:56
.space
保留n字节内存,不对齐。例如arr: .space 100
.byte
将n值存储在内存的连续字节中。例如num: .byte 0x01, 0x03
.word
在对齐内存中连续存储n个32位字.例如val: .word 10, -14, 30
.asciiz
用空终止符在内存中存储字符串。例如str: .asciiz "Hello, world"
就像.ascii
后面有一个.byte 0
。.ascii
在内存中存储字符串,没有空终止符。例如str: .ascii "Hello, world"
.align
对齐2^n
字节边界上的下一个数据。例如,.align 2
将单词边界上的下一个值对齐。另一方面,如果n为0,则关闭对齐直到下一个数据段。有关详细信息,请参阅此装配参考。
有关.align
的详细信息,请参阅
.align
在经典的MIPS汇编器(如MARS)中的工作方式与现代气体和clang不同:在经典的MIPS汇编器中,它可以将填充放在早期的标签之前,而不是扩展到放置在任何地方的填充。(.word
和.half
也对齐了以前的标签,不像.space
)https://stackoverflow.com/questions/43565328
复制相似问题