views:

62

answers:

1

Hi, there:

Here I have a question. What is the priority of the operator * in assembly language?

For example:

*0x804983c(,%eax,4)

Does it mean ( %eax * 4 ) + *0x804983c or *( %eax * 4 + 0x804983c )?

Thanks!

+1  A: 

* is not an operator. There is no operator in assembly as such (operators are a concept only present in higher level languages).

In AT&T syntax, * is what denotes a register or memory branch target.

You're not showing the complete instruction, but assuming it was a jmp, this will jump to what is stored at 0 + %eax * 4 + 0x804983c (following the standard memory reference of offset(base,index,scale))

Bahbar
Thanks for your reply. You're right, the preceding code comes from a jump instruction.
Summer_More_More_Tea