我有这个指示:
asm("message: .byte 'Hello, World!', 0x0A");
由于某种原因,编译器说junk at end of line, first recognized character is 'e'
。我尝试根据网络上的其他示例将.byte
替换为db
。然后输出为no such instruction: 'db 72ello, World!440x0A'
(注意数字而不是撇号)。对我来说,解析'
似乎有问题。
我该怎么办?
答案 0 :(得分:2)
.byte
仅适用于单个字节,如0xFA或“F”。 db
是intel语法,内联汇编使用GNU语法。
如上所述,.byte
仅适用于一个字节。要使用字符串,请使用.ascii
或.asciz
- 前者是一个简单的字节数组,而后者是空终止的。
即。 asm("message: .asciz \"Hello, World!\n\"");