定义了一个宏如下: .MACRO DELAY_MS ldi @0, LOW(@2 * 4000) ldi @1, HIGH(@2 * 4000) delay_ms_loop: sbiw @0, 1 brne delay_ms_loop .ENDMACRO
程序调用时 DELAY_MS r24, r25, 2
但是编译后丢失了 ldi @1, HIGH(@2 * 4000)这一行,这是为何? 91: DELAY_MS r24, r25, 2 +0000003E: E480 LDI R24,0x40 Load immediate @0000003F: delay_ms_loop@DELAY_MS@996 +0000003F: 9701 SBIW R24,0x01 Subtract immediate from word +00000040: F7F1 BRNE PC-0x01 Branch if not equal |