The priority of operator * in AT&T assembly language
Here I have a question. What is the priority of the operator * in assembly language?
For example:
*0x804983c(,%eax,4)
Does it开发者_StackOverflow中文版 mean ( %eax * 4 ) + *0x804983c
or *( %eax * 4 + 0x804983c )
?
Thanks!
*
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)
)
精彩评论