Proszę o podpowiedź czy mogę usunąć z poniższego bloku linie 1-5 oraz 9-12 ( za pomocą dyrektywy "naked" dla nagłówka przerwania )
Nie wnikając w szczegóły, walczę o każdą instrukcję do usunięcia ( dlatego zmienne oraz stała 0x81 zostały zadeklarowane jako rejestry r3...r6)
Jak widać w kodzie, wykorzystywane są tylko rejestry r3...r6, dlatego może odkładanie r0 i r1 nie jest potrzebne ?
Nie wnikając w szczegóły, walczę o każdą instrukcję do usunięcia ( dlatego zmienne oraz stała 0x81 zostały zadeklarowane jako rejestry r3...r6)
Jak widać w kodzie, wykorzystywane są tylko rejestry r3...r6, dlatego może odkładanie r0 i r1 nie jest potrzebne ?
SIGNAL(SIG_SPI)
{
1: 1f 92 push r1
2: 0f 92 push r0
3: 0f b6 in r0, 0x3f ; 63
4: 0f 92 push r0
5: 11 24 eor r1, r1
znak_rx = SPDR;
6: 3e b4 in r3, 0x2e ; 46
SPDR = SPI_bufor_TX_char;
7: 6e bc out 0x2e, r6 ; 46
SPI_status = SPI_status_0x81;
8: 45 2c mov r4, r5
9: 0f 90 pop r0
10: 0f be out 0x3f, r0 ; 63
11: 0f 90 pop r0
12: 1f 90 pop r1
13: 18 95 reti
}