人员:
我正在使用 IAR 的 icc430 C 编译器及其内联汇编器。 我注意到这个工具标记
以下指令不符合"RPT"(重复)操作的条件、因为
工具认为对常数发生器寄存器(R2和 R3)的访问不是
"寄存器模式"操作数。
0018 4E53 ADDX.A #0x0、R14 // src:模式0中为 R3/CG2、dst:模式0中为 R14
0018 5E53 ADDX.A #0x1、R14 // src:模式1中为 R3/CG2、dst:模式0中为 R14
0018 6E53 ADDX.A #0x2、R14 // src:模式2中的 R3/CG2、dst:模式0中的 R14
0018 6E52 ADDX.A #0x4、R14 // src:R2/SR/CG1 in 模式2、dst:R14 in 模式0
0018 7E52 ADDX.A #0x8、R14 // src:R2/SR/CG1 in 模式3、dst:R14 in 模式0
0018 7E53 ADDX.A #0x-1、R14 // src:模式3中的 R3/CG2、dst:模式0中的 R14
(错误打印输出包括在下面)
使用常数发生器确实会使指令不合格
还是 IAR 在这里具有过度限制?
Atlant
==================================================================-
编译:hello.cpp -> hello.R43
asm ("ADDX.A #0、R14");//:
^μ A
"Hello.CPP"、543 Error[Og006]:内联汇编中的错误:"ERROR[459]:重复指令必须具有寄存器模式操作数"
asm ("ADDX.A #1,R14");//:
^μ A
"Hello.CPP"、546错误[Og006]:内联汇编中的错误:"ERROR[459]:重复指令必须具有寄存器模式操作数"
asm ("ADDX.A #2、R14");//:
^μ A
"Hello.CPP"、549 Error[Og006]:内联汇编中的错误:"ERROR[459]:重复指令必须具有寄存器模式操作数"
asm ("ADDX.A #4, R14");//:
^μ A
"Hello.CPP"、552 Error[Og006]:内联汇编中的错误:"ERROR[459]:重复指令必须具有寄存器模式操作数"
asm ("ADDX.A #8、R14");//:
^μ A
"Hello.CPP"、555 Error[Og006]:内联汇编中的错误:"ERROR[459]:重复指令必须具有寄存器模式操作数"
asm ("ADDX.A #-1、R14");//:
^μ A
"Hello.CPP"、558 Error[Og006]:内联汇编中的错误:"ERROR[459]:重复指令必须具有寄存器模式操作数"