You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

汇编语言1000次循环代码报错求助:行尾非法字符及未知操作码

错误分析与修正方案

错误原因拆解

  • A1137E: 行尾意外字符:你将C语言的变量初始化、自增写法(i = 1、i++)混入ARM汇编指令中,ARM汇编语法不允许这种格式,MOV、ADD指令只需遵循自身语法,无需额外添加这类C风格代码。另外ARM汇编注释需用@开头,而非分号(部分编译器支持分号,但此处核心问题是多余的C风格代码)。
  • A1163E: 未知操作码endloop:endloop作为循环结束标签,ARM汇编要求标签后必须加冒号:,你漏加了该符号,导致编译器将其当作指令解析,自然找不到对应操作码。

修正后的代码

@ 初始化R0为1,作为循环计数器
MOV R0, #1
@ 初始化R1为0(若需累加操作,建议补充)
MOV R1, #0
startloop   
    CMP R0, #1000
    BGT endloop
    ADD R1, R1, R0    @ 累加R0的值到R1
    ADD R0, R0, #1    @ 循环计数器自增
    B startloop
endloop:               @ 标签后必须添加冒号,明确标识为标签

关键修正点

  • 移除指令后多余的C风格代码,让汇编指令严格符合ARM语法规范。
  • 给endloop标签添加冒号:,明确告知编译器这是标签而非指令。
  • 用@添加必要注释,提升代码可读性。

内容的提问来源于stack exchange,提问作者Dylan de Hoyos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:05:20