.text .global _start _start: mov r0,#16 //将常数16存储到r0寄存器中 asrs r0,r1,#4 //将r1寄存器中的带符号数右移4位,相当于除以16,将结果存储到r0寄存器中 mul r1,r2,#3 //将r2寄存器中的数乘以3,将结果存储到r1寄存器中 rsb r0,r0,#0 //将r0寄存器的值取反,结果存储到r0寄存器中 .endstart.s(8): error: ARM register expected -- `mul r1,r2,#3//将r2寄存器中的数乘以3,将结果存储到r1寄存器中'
时间: 2024-01-23 16:02:05 浏览: 121
ASRS.zip_ASRS_The Ring
根据你提供的完整代码,我发现问题出在了 `.end` 这一行。这并不是有效的汇编指令,因此编译器会报错。你需要将这一行注释掉或者删除它,这样就可以顺利编译通过了。
正确的代码应该是这样的:
```
.text
.global _start
_start:
mov r0,#16 //将常数16存储到r0寄存器中
asrs r0,r1,#4 //将r1寄存器中的带符号数右移4位,相当于除以16,将结果存储到r0寄存器中
mul r1,r2,#3 //将r2寄存器中的数乘以3,将结果存储到r1寄存器中
rsb r0,r0,#0 //将r0寄存器的值取反,结果存储到r0寄存器中
.end
```
这样就可以顺利编译通过了。
阅读全文