assembly - GDB expressions -


   0x00000000004013fb <+334>:   mov    0x602500(,%rax,8),%rdx 

i want know 0x602500(,%rax,8) means.

there source code

 0x00000000004012fb <+78>:  movq   $0x400a8c,0x2011fa(%rip)        # 0x602500 <func>    0x0000000000401306 <+89>:    movq   $0x400d44,0x2011f7(%rip)        # 0x602508 <func+8>    0x0000000000401311 <+100>:   movq   $0x400faa,0x2011f4(%rip)        # 0x602510 <func+16>    0x000000000040131c <+111>:   movq   $0x401262,0x2011f1(%rip)        # 0x602518 <func+24>    0x0000000000401327 <+122>:   movq   $0x401295,0x2011ee(%rip)        # 0x602520 <func+32> 

each 0x400a8c, 400d44, 400faa, 401262 , 401295 address of functions guess 0x602500(,%rax,8) choose proper function execute rax. want make sure guess

from gnu documentation:

https://sourceware.org/binutils/docs/as/i386_002dmemory.html#i386_002dmemory

an intel syntax indirect memory reference of form       section:[base + index*scale + disp]  translated at&t syntax       section:disp(base, index, scale) 

in other words:

  1. you derive pointer (compute address) rax, scale = 8

  2. then take offset of 0x602500 address

  3. and write value (the value @ address + 0x602500) %rdx

scale values might 1, 2, 4, or 8: byte, 16-bit, 32-bit or 64-bit.


Comments

Popular posts from this blog

php - How to display all orders for a single product showing the most recent first? Woocommerce -

asp.net - How to correctly use QUERY_STRING in ISAPI rewrite? -

angularjs - How restrict admin panel using in backend laravel and admin panel on angular? -