Получается нечто вроде:
Код
void fcmd(U32 fcr)
{
U32 ramcmd[6] =
{
0xe3a01000, // MOV r1,#0
0xe501009c, // STR r0,[r1,#-0x9c]; MC_FCR
0xe5110098, // LDR r0,[r1,#-0x98]; MC_FSR
0xe3100001, // TST r0,#1
0x0afffffc, // BEQ {pc} - 0x8
0xe12fff1e // BX r14
};
void (*pcmd)(U32) = *(void (*)(U32))&ramcmd;
pcmd(fcr);
}
Вполне работоспособно и переносимо. Но я бы все же предпочел вариант с линкером.
Цитата(defunct @ Apr 2 2009, 02:55)

Надеюсь вы согласитесь, что непосредственно код примера - безопасен.
О да, вполне. Просто кто-нибудь мог экстраполировать результат на другой код и поиметь проблем.