AjW*_*red 1 assembly gcc arm raspberry-pi
我在汇编文件中有以下指令:
MULS R0, R0, R2
Run Code Online (Sandbox Code Playgroud)
使用 gcc (gcc -o prog pros.s) 可以很好地进行组装,并且程序可以正常工作。当我使用 as 进行汇编(as -o prog.o pros.s)时,我得到:
Rd and Rm should be different in mul
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
从 ARM ARM
为 和 指定相同的寄存器,之前被描述为产生不可预测的结果。ARMv6 没有限制,相信所有相关的 ARMv4 和 ARMv5 实现也不需要这个限制,因为高性能乘法器在写回任何结果之前读取它们的所有操作数
ARMv4 和 ARMv5 有这个规则/问题,认为是错误,而不是功能。ARMv6 和 ARMv7 没有这个问题,所以检查你在编译时使用的 cpu/arch 设置,更重要的是你使用的是什么目标。
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |