int main(int argc, char *argv[]) { 0x00101af8
: push {r11, lr} 0x00101afc : add r11, sp, #4 ; 0x4 0x00101b00 : sub sp, sp, #24 ; 0x18 0x00101b04 : mov r3, lr 0x00101b08 : str r0, [r11, #-24] 0x00101b0c : str r1, [r11, #-28] 0x00101b10 : movw r0, #6904 ; 0x1af8 0x00101b14 : movt r0, #16 ; 0x10 0x00101b18 : mov r1, r3 0x00101b1c : bl 0x102a4c <__cyg_profile_func_enter> volatile _Uint32t var =0x12345678; 0x00101b20 : movw r3, #22136 ; 0x5678 0x00101b24 : movt r3, #4660 ; 0x1234 0x00101b28 : str r3, [r11, #-16] _Uint32t output =0, i = 0; 0x00101b2c : mov r3, #0 ; 0x0 0x00101b30 : str r3, [r11, #-12] 0x00101b34 : mov r3, #0 ; 0x0 0x00101b38 : str r3, [r11, #-8] printf("Welcome to the QNX Momentics IDE\n"); 0x00101b3c : movw r0, #22704 ; 0x58b0 0x00101b40 : movt r0, #16 ; 0x10 0x00101b44 : bl 0x1016ec for (i = 0 ; i < 1000 ; i++){ 0x00101b48 : mov r3, #0 ; 0x0 0x00101b4c : str r3, [r11, #-8] 0x00101b50 : b 0x101b74 0x00101b68 : ldr r3, [r11, #-8] 0x00101b6c : add r3, r3, #1 ; 0x1 0x00101b70 : str r3, [r11, #-8] 0x00101b74 : ldr r2, [r11, #-8] 0x00101b78 : movw r3, #999 ; 0x3e7 0x00101b7c : cmp r2, r3 0x00101b80 : bls 0x101b54 output = __in32(&var); 0x00101b54 : sub r3, r11, #16 ; 0x10 0x00101b58 : mov r0, r3 0x00101b5c : bl 0x101a58 <__in32> 0x00101b60 : mov r3, r0 0x00101b64 : str r3, [r11, #-12] for (i = 0 ; i < 1000 ; i++){ 0x00101b84 : mov r3, #0 ; 0x0 0x00101b88 : str r3, [r11, #-8] 0x00101b8c : b 0x101bb0 0x00101ba4 : ldr r3, [r11, #-8] 0x00101ba8 : add r3, r3, #1 ; 0x1 0x00101bac : str r3, [r11, #-8] 0x00101bb0 : ldr r2, [r11, #-8] 0x00101bb4 : movw r3, #999 ; 0x3e7 0x00101bb8 : cmp r2, r3 0x00101bbc : bls 0x101b90 __out32(&var, 0x98765432); 0x00101b90 : sub r3, r11, #16 ; 0x10 0x00101b94 : mov r0, r3 0x00101b98 : movw r1, #21554 ; 0x5432 0x00101b9c : movt r1, #39030 ; 0x9876 0x00101ba0 : bl 0x101aac <__out32> sleep(1); 0x00101bc0 : mov r0, #1 ; 0x1 0x00101bc4 : bl 0x101704 } 0x00101bc8 : b 0x101b48 Deassembly for __in32 { 0x00101a58 <__in32>: push {r4, r5, r11, lr} 0x00101a5c <__in32+4>: add r11, sp, #12 ; 0xc 0x00101a60 <__in32+8>: sub sp, sp, #16 ; 0x10 0x00101a64 <__in32+12>: mov r4, lr 0x00101a68 <__in32+16>: str r0, [r11, #-24] 0x00101a6c <__in32+20>: movw r0, #6744 ; 0x1a58 0x00101a70 <__in32+24>: movt r0, #16 ; 0x10 0x00101a74 <__in32+28>: mov r1, r4 0x00101a78 <__in32+32>: bl 0x102a4c <__cyg_profile_func_enter> __data = *(volatile _Uint32t *)__addr; 0x00101a7c <__in32+36>: ldr r3, [r11, #-24] 0x00101a80 <__in32+40>: ldr r3, [r3] 0x00101a84 <__in32+44>: str r3, [r11, #-16] return(__data); 0x00101a88 <__in32+48>: ldr r5, [r11, #-16] 0x00101a8c <__in32+52>: movw r0, #6744 ; 0x1a58 0x00101a90 <__in32+56>: movt r0, #16 ; 0x10 0x00101a94 <__in32+60>: mov r1, r4 0x00101a98 <__in32+64>: bl 0x1027f8 <__cyg_profile_func_exit> 0x00101a9c <__in32+68>: mov r3, r5 } 0x00101aa0 <__in32+72>: mov r0, r3 0x00101aa4 <__in32+76>: sub sp, r11, #12 ; 0xc 0x00101aa8 <__in32+80>: pop {r4, r5, r11, pc} Deassembly for __out32 { 0x00101aac <__out32>: push {r4, r11, lr} 0x00101ab0 <__out32+4>: add r11, sp, #8 ; 0x8 0x00101ab4 <__out32+8>: sub sp, sp, #12 ; 0xc 0x00101ab8 <__out32+12>: mov r4, lr 0x00101abc <__out32+16>: str r0, [r11, #-16] 0x00101ac0 <__out32+20>: str r1, [r11, #-20] 0x00101ac4 <__out32+24>: movw r0, #6828 ; 0x1aac 0x00101ac8 <__out32+28>: movt r0, #16 ; 0x10 0x00101acc <__out32+32>: mov r1, r4 0x00101ad0 <__out32+36>: bl 0x102a4c <__cyg_profile_func_enter> *(volatile _Uint32t *)__addr = __data; 0x00101ad4 <__out32+40>: ldr r3, [r11, #-16] 0x00101ad8 <__out32+44>: ldr r2, [r11, #-20] 0x00101adc <__out32+48>: str r2, [r3] 0x00101ae0 <__out32+52>: movw r0, #6828 ; 0x1aac 0x00101ae4 <__out32+56>: movt r0, #16 ; 0x10 0x00101ae8 <__out32+60>: mov r1, r4 0x00101aec <__out32+64>: bl 0x1027f8 <__cyg_profile_func_exit> } 0x00101af0 <__out32+68>: sub sp, r11, #8 ; 0x8 0x00101af4 <__out32+72>: pop {r4, r11, pc}