1.1.5. .balignl

	.balignl1 16,0xdeadbeef
        

1

balignl这个标号的语法及含义:

http://re-eject.gbadev.org/files/GasARMRef.pdf

表 1.3. balignl的语法

DirectiveDescriptionSyntaxExample
.balignlWord align the following code to alignment byte boundary (default=4). Fill skipped words with fill (default=0 or NOP). If the number of bytes skipped is greater than max, then don't align (default=alignment )..balignl {alignment} {, fill} {, max}.balignl


所以意思就是,接下来的代码,都要16字节对齐,不足之处,用0xdeadbeef填充。

其中关于所要填充的内容0xdeadbeef,刚开始没看懂是啥意思,后来终于搞懂了。

经过(等)多位网友提示和纠正,觉得这样解释会更加合理些:

此处0xdeadbeef本身没有真正的意义,但是很明显,字面上的意思是,(坏)死的牛肉。

虽然其本身没有实际意义,但是其是在十六进制下,能表示出来的,为数不多的,可读的单词之一了。

另外一个相对常见的是:0xbadc0de,意思是bad code,坏的代码,注意其中的o是0,因为十六进制中是没有o的。

这些“单词”,相对的作用是,使得读代码的人,以及在查看程序运行结果时,容易看懂,便于引起注意。

而关于自己之前,随意杜撰出来的,希望起到搞笑作用,表示good beef(好的牛肉)的0xgoodbeef,实际上,在十六进制下,会出错的,因为十六进制下没有o和 g这两个字母。