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

Gnu Assembly (GAS) error with dc.b and String

我遇到了这个 Gas 操作的新问题:

dc.b  "MESSAGE" 

这给了我一个 Bad Expression 错误:

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

我也想不通为什么会这样...

if i try this:

.ascii  "MESSAGE",0xFF

i get the following result:

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

改为这样做:

.ascii "MESSAGE"
dc.b 0xFF

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

.asciz "MESSAGE"

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

foo: .asciz "MESSAGE"

然后你可以做:

move.l      #foo,a0