带有 dc.b 和字符串的 Gnu 程序集 (GAS) 错误



>我在这次 Gas 操作中遇到了新问题:

dc.b  "MESSAGE" 

这给了我一个错误的表达式错误:

Error: Rest of line ignored. First ignored character is `M'.

我尝试了许多逃跑和任何技巧,但没有运气。

通常我以这种方式使用字符串:

.ascii "MESSAGE"

但这不能用于将地址分配为:

dc.b #0,d1

因为如果我尝试这个:

.ascii  "MESSAGE",0xFF

我得到以下结果:

Error: Rest of line ignored. First ignored character is `0'.

所以不能替换DC语句。

谢谢!

编辑:我忘了在第0行提到此错误:

myasmfile.s:0: Warning: end of file in comment; newline inserted

我也想不通为什么会出现这种情况...

如果我尝试这个:

.ascii  "MESSAGE",0xFF

我得到以下结果:

错误:忽略行的其余部分。第一个忽略的字符是"0"。

请改为执行以下操作:

.ascii "MESSAGE"
dc.b 0xFF

不过,0xFF是一种不寻常的字符串终止符。如果使用更标准的以零结尾的字符串,则可以使用 .asciz 指令,该指令将为您添加终止符:

.asciz "MESSAGE"

要获取字符串的地址,只需在其前面放置一个标签:

foo: .asciz "MESSAGE"

然后你可以做:

move.l      #foo,a0

最新更新