Код
.text:00000560 EXPORT start
.text:00000560 start
.text:00000560
.text:00000560 var_10 = -0x10
.text:00000560
.text:00000560 STMFD SP!, {R4,R5,LR}
.text:00000564 MOV R5, #0x80; 'А'
.text:00000568 SUB SP, SP, #4
.text:0000056C MOV R0, R5
.text:00000570 SWI 0x14
.text:00000574 MOV R4, R0
.text:00000578 MOV R0, R4
.text:0000057C MOV R1, R5
.text:00000580 SWI 0x11D
.text:00000584 STR R4, [SP,#0x10+var_10]
.text:00000588 SWI 0x16
.text:0000058C MOV R5, R0
.text:00000590 MOV R5, #1
.text:00000594 MOV R0, R5
.text:00000598 MOV R1, R4
.text:0000059C SWI 0x148
.text:000005A0 MOV R5, R0
.text:000005A4 MOV R0, R4
.text:000005A8 SWI 0x15
.text:000005AC BL sub_50C
.text:000005B0 MOV R0, #0
.text:000005B4 ADD SP, SP, #4
.text:000005B8 LDMFD SP!, {R4,R5,PC}
Код
static inline int sprintfa(char *dst, char *mft, ...)
{
int ret_val;
static int const swi_num = 22;
asm volatile (
"swi %1 \n\t" \
"mov %0, r0 \n\t" \
: "=r" (ret_val)
: "n" (swi_num), "m" (dst) // ругалось на "memory" что нету "memory"(аргумент)
: "r0", "r1", "r2", "r3", "ip", "lr", "memory", "cc"
);
return ret_val;
}
Сообщение отредактировал vova7890 - Nov 26 2010, 20:47