2009. május 16., szombat

[ARM asm] sscanf függvény

Nézzünk néhány ASM utasítást:

STMFD : ezzel vermet tudunk kezelni
az STM (STore Multiple) automatikusan módosítja a bázisregisztert. Veremműveleteknél a bázisregiszter az r13, itt SP! néven fut.
Tehát a verem többféle lehet. Van lefelé növekvő vagyis descending és olyan is, ami nem a verem tetejére mutat, hanem a következő üres helyre ez értelemszerűen empty ,illetve full nevet kap és végülis így áll össze az utasítás: pl STMEA

ebből jön, hogy az STMFD azt jelenti, hogy a megadott regiszterek tartalmát dobd be a verembe úgy, hogy a verem a kisebb memóriacím felé nő és a tetejére mutat.





az sscanf így néz ki:

ROM:FCD62A50
ROM:FCD62A50 sscanf ; CODE XREF: sub_FCCA55B0+4C↑p
ROM:FCD62A50 ; sub_FCCA5E08+5C↑p ...
ROM:FCD62A50
ROM:FCD62A50 var_4 = -4
ROM:FCD62A50 arg_4 = 4
ROM:FCD62A50 arg_8 = 8
ROM:FCD62A50 arg_C = 0xC
ROM:FCD62A50
ROM:FCD62A50 STMFD SP!, {R0-R3}
ROM:FCD62A54 STMFD SP!, {R4,LR}
ROM:FCD62A58 LDR R1, [SP,#8+arg_4]
ROM:FCD62A5C ADD R2, SP, #8+arg_8
ROM:FCD62A60 BL sub_FCE0E45C
ROM:FCD62A64 LDR R4, [SP],#8+var_4
ROM:FCD62A68 LDR PC, [SP],#8+arg_C

Nincsenek megjegyzések:

Megjegyzés küldése