【问题标题】:Invalid character (0xe2) in mnemonic助记符中的无效字符 (0xe2)
【发布时间】:2015-12-15 07:16:40
【问题描述】:

我无法编译我的汇编代码。

gcc 返回:func_select.s:5: Error: invalid character (0xe2) in mnemonic func_select.s:7: 错误:助记符中的无效字符 (0xe2)

这里是代码(第 5-7 行):

secondStringLength:     ‫‪.string " second pstring length: %d‬‬\n"
OldChar:                .string "‫‪old char: %c,‬‬"
NewChar:                ‫‪.string " new char: %c,‬‬"

我该如何解决这个问题?

【问题讨论】:

    标签: linux gcc assembly mnemonics


    【解决方案1】:

    删除嵌入在文本中的格式字符。

    $ charinfo 'secondStringLength:‫‪.string " second pstring length: %d‬‬\n"'
    U+0073 LATIN SMALL LETTER S [Ll]
    U+0065 LATIN SMALL LETTER E [Ll]
     ...
    U+0068 LATIN SMALL LETTER H [Ll]
    U+003A COLON [Po]
    U+202B RIGHT-TO-LEFT EMBEDDING [Cf]
    U+202A LEFT-TO-RIGHT EMBEDDING [Cf]
    U+002E FULL STOP [Po]
    U+0073 LATIN SMALL LETTER S [Ll]
     ...
    U+0025 PERCENT SIGN [Po]
    U+0064 LATIN SMALL LETTER D [Ll]
    U+202C POP DIRECTIONAL FORMATTING [Cf]
    U+202C POP DIRECTIONAL FORMATTING [Cf]
    U+005C REVERSE SOLIDUS [Po]
    U+006E LATIN SMALL LETTER N [Ll]
    U+0022 QUOTATION MARK [Po]
    

    【讨论】:

    • 什么?我不明白该怎么做。
    • 使用退格键并重新输入文本。
    • charinfo 来自哪里?
    【解决方案2】:

    伊甘西奥·巴斯克斯-艾布拉姆斯是对的。为了提供更多详细信息,根据xxd,这是您的第一行:

    $ cat b | xxd
    00000000: 7365 636f 6e64 5374 7269 6e67 4c65 6e67  secondStringLeng
    00000010: 7468 3a20 2020 2020 e280 abe2 80aa 2e73  th:     .......s
    00000020: 7472 696e 6720 2220 7365 636f 6e64 2070  tring " second p
    00000030: 7374 7269 6e67 206c 656e 6774 683a 2025  string length: %
    00000040: 64e2 80ac e280 ac5c 6e22 0a0a            d......\n"..
    

    注意:e2 80 ab,然后是 e2 80 aa。这些是前面提到的U+202BU+202A。删除它们(以及接下来的 2 个U+202C)。

    【讨论】:

      猜你喜欢
      • 2020-06-09
      • 1970-01-01
      • 2019-10-20
      • 2021-09-02
      • 1970-01-01
      • 2017-02-02
      • 2021-07-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多