( apal | 2023. 05. 14., v – 18:38 )

Az ARM-eken pedig alapból ez a standard, hogy regiszterekben vannak a paraméterek és a visszatérési érték. És van olyan regiszter, amit a hívott félnek nem kell menteni, így az egyszerűbb függvények RAM elérés nélkül is megvalósíthatóak.

Ez az AVR-nel (avr-gcc ABI) is igy van, szoval hasznalhatsz olyan sajat regisztereket is mert azt a hivott fel mindig menteni fog hogyha hozza kell nyulnia valami miatt. Lasd itten: az r2...r17 es az Y (r28, r29) regiszterek hasznalata ilyenertelemben "szabad". De igen, az ketsegtelen hogy ez diffuzabb mint az ARM-nel (ott az r4-r7 eseteben kell garantalnia a hivott felnek hogy nem nyul hozza, a felso regisztereknel mar nem emlekszem, ott talan az r12 meg az ami ilyen). RISC-V eseten meg mar a regiszter (alias) neveben benne van hogy mikor kell mentenie a hivott felnek :) 

Lazan kapcsolodik hogy az ARM-nel az ABI es az ISR stack frame indentikus, azaz barmilyen `void funct(void)` fuggveny lehet megszakitas-vektor is egyben es vice verza.