![Smile :)](./images/smilies/icon_smile.gif)
Here's my C function:
Code: Select all
void delay( unsigned long ticks )
{
unsigned long eticks;
eticks = tick_counter + ticks;
while ( tick_counter < eticks );
return;
}
-g -W -Wall -fno-builtin -nostdinc -nostdlib -nostartfiles -nodefaultlibs
Code: Select all
void delay( unsigned long ticks )
{
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
3: 83 ec 10 sub $0x10,%esp
unsigned long eticks;
eticks = tick_counter + ticks;
6: a1 00 00 00 00 mov 0x0,%eax
b: 03 45 08 add 0x8(%ebp),%eax
e: 89 45 fc mov %eax,0xfffffffc(%ebp)
while ( tick_counter < eticks );
11: a1 00 00 00 00 mov 0x0,%eax
16: 3b 45 fc cmp 0xfffffffc(%ebp),%eax
19: 72 f6 jb 11 <delay+0x11>
return;
}
1b: c9 leave
1c: c3 ret
Code: Select all
void delay( unsigned long ticks )
{
0: 55 push %ebp
1: 89 e5 mov %esp,%ebp
unsigned long eticks;
eticks = tick_counter + ticks;
3: 8b 15 00 00 00 00 mov 0x0,%edx
while ( tick_counter < eticks );
9: 89 d0 mov %edx,%eax
b: 03 45 08 add 0x8(%ebp),%eax
e: 39 c2 cmp %eax,%edx
10: 73 02 jae 14 <delay+0x14>
12: eb fe jmp 12 <delay+0x12>
return;
}
14: 5d pop %ebp
15: c3 ret
Code: Select all
void delay( unsigned long ticks )
{
0: 55 push %ebp
unsigned long eticks;
eticks = tick_counter + ticks;
1: 8b 15 00 00 00 00 mov 0x0,%edx
7: 89 e5 mov %esp,%ebp
while ( tick_counter < eticks );
9: 8b 4d 08 mov 0x8(%ebp),%ecx
c: 89 d0 mov %edx,%eax
e: 01 c8 add %ecx,%eax
10: 39 c2 cmp %eax,%edx
12: 73 02 jae 16 <delay+0x16>
14: eb fe jmp 14 <delay+0x14>
return;
}
16: 5d pop %ebp
17: c3 ret
18: 90 nop
19: 8d b4 26 00 00 00 00 lea 0x0(%esi),%esi
![Smile :)](./images/smilies/icon_smile.gif)