1

ROP请参考本文

我正在为 AVR-8bit 构建小工具目录,但我有一些疑问。我将使用以下示例提出我的问题。

为了有v1=v1+v2;(v1和v2是变量)对应的程序集是:

ldi r17, #value
ldi  r18, #value
add r18,r17;

或者

ldi r17, #value
mov r1, r17;
ldi  r18, #value
add r18,r1;

或者

ldi r17, #value
ldi  r18, #value
mov r1, r18;
add r1,r17;

或者

ldi r17, #value
mov r1, r17;
ldi r18, #value
mov r2, r18;
add r2,r1;

小工具会是以下吗?

ldi r#, #value;
ldi r#, value;
add r#, r#;
ret

或者只是以下与ldi r#,r#; ret和 与与的组合mov

add r#,r#;
ret
4

1 回答 1

2

ldi正在加载一个常量,在运行时添加两个常量没有多大意义。因此,您的小工具将是add; ret唯一的,您需要通过使用其他小工具来确保这两个操作数位于适当的寄存器中。

不过,拥有一个用于向寄存器添加常量的小工具可能是有意义的。

于 2013-10-28T20:32:23.597 回答