m0_74170892 2024-04-09 23:16 采纳率: 33.3%
浏览 38

汇编语言ARM入门报错

img


这个报错是怎么回事呢
mul去掉s也报错

凑字数GG反反复复根本vv骨灰盒vv小豆腐饭

  • 写回答

6条回答 默认 最新

  • 檀越@新空间 2024-04-15 23:53
    关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    根据代码中的错误提示,报错出现在第43行,提示错误为“Destination and second source register must be same”,即目标寄存器和第二个源寄存器必须相同。

    这个错误一般出现在指令中操作数的顺序不正确,或者寄存器使用不正确等情况下。在代码中,第43行使用的是MULS指令进行乘法操作,其中RO、R2、R3是寄存器,但是操作数顺序不正确,应该将R0放在最后一个参数。

    解决方案:

    1. 修改第43行代码,将R0放在最后一个参数。

    2. 删除第43行代码中的“s”标志,因为MUL指令不需要设置条件标志位。

    修改后的代码如下:

    38 AREA template,CODE,READONLY
    39 start PROC
    40 MOVS R2,#2
    41 MOVS R3,#18
    42 MOV R4,#22
    43 MUL R4,R2,R3
    44 ADD R0,R0,R4
    45 ENDP
    46 
    47 
    48 
    49 END
    

    同时,也需要注意到要设置合理的寄存器和内存地址,否则也会影响程序执行。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月9日