This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Could you explain this assembly line to me?

Hi,

I am learning ARM assembly code. The following is a Thumb disassembly from a short .c file:

int main()

{

      printf("Hardware test, finish testing.\n");

      return 0;

}

00000000 <main>:

   0:    b580          push    {r7, lr}

   2:    b08a          sub    sp, #40    ; 0x28

   4:    af00          add    r7, sp, #0

   6:    f240 0000     movw    r0, #0

   a:    f2c0 0000     movt    r0, #0

   e:    f7ff fffe     bl    0 <puts>

  12:    2300          movs    r3, #0

  14:    4618          mov    r0, r3

  16:    f107 0728     add.w    r7, r7, #40    ; 0x28

  1a:    46bd          mov    sp, r7

  1c:    bd80          pop    {r7, pc}

  1e:    bf00          nop

I do not understand the '0' in line e:  bl    0 <puts>,  even after I look it up on BL instruction.

Could you tell me that? Thanks,

0