C 基于AVR体系结构的ROP中的小工具

C 基于AVR体系结构的ROP中的小工具,c,security,assembly,avr,C,Security,Assembly,Avr,有关ROP,请参阅 我正在为AVR-8bit构建小工具目录,但我有一些疑问。 我将用下面的例子提问 使v1=v1+v2;(v1和v2是变量) 相应的组件是: ldi r17, #value ldi r18, #value add r18,r17; 或 或 或 这个小玩意会是以下的吗 ldi r#, #value; ldi r#, value; add r#, r#; ret 或者将以下内容与ldi r#,r#;ret和与mov的组合 add r#,r#; ret ldi正在加载一个常量,

有关ROP,请参阅

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

使v1=v1+v2;(v1和v2是变量) 相应的组件是:

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

这个小玩意会是以下的吗

ldi r#, #value;
ldi r#, value;
add r#, r#;
ret
或者将以下内容与
ldi r#,r#;ret
和与mov的组合

add r#,r#;
ret

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


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

谢谢您的帮助。请给我一个例子来说明这句话:“您需要使用其他小工具来确保两个操作数在适当的寄存器中。”。这一点与搜索小工具的算法有关还是与小工具本身有关?
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
add r#,r#;
ret