C 内联装配isn';无法正确解析

C 内联装配isn';无法正确解析,c,inline-assembly,C,Inline Assembly,我有以下指示: asm("message: .byte 'Hello, World!', 0x0A"); 出于某种原因,编译器在行尾说垃圾,第一个识别的字符是“e”。根据web上的其他示例,我尝试将.byte替换为db。然后输出是没有这样的指令:“db 72ello,World!440x0A'(注意数字而不是撇号)。在我看来,“的解析似乎有问题 我能做什么 .byte仅适用于单个字节,如0xFA或“F” db是英特尔语法,内联汇编使用GNU语法 如上所述,.byte仅对一个字节有效。要使用字符

我有以下指示:

asm("message: .byte 'Hello, World!', 0x0A");
出于某种原因,编译器在行尾说
垃圾,第一个识别的字符是“e”
。根据web上的其他示例,我尝试将
.byte
替换为
db
。然后输出是
没有这样的指令:“db 72ello,World!440x0A'
(注意数字而不是撇号)。在我看来,
的解析似乎有问题

我能做什么

  • .byte
    仅适用于单个字节,如0xFA或“F”
  • db
    是英特尔语法,内联汇编使用GNU语法

  • 如上所述,
    .byte
    仅对一个字节有效。要使用字符串,请使用
    .ascii
    .asciz
    ——前者是一个简单的字节数组,而后者以null结尾


  • 例如,
    asm(“消息:.asciz\“你好,世界!\n\”)

    成功了,谢谢!你有没有参考资料,我可以在那里读到这类东西?一般指南是GNU as手册(man as?),或者,访问在线汇编上的osdev wiki页面。