任何人都可以帮我理解这个汇编代码吗?我对汇编语言完全不熟悉,我只是想不出来......下面的汇编代码应该产生这个函数:
func(int a){return a*34}
评论//我的想法应该是什么意思,如果我错了,请纠正我
//esp = stack-pointer, ebp = callee saved, eax = return value
pushl %ebp // a is pushed on stack
movl %esp,%ebp // a = stackpointer
movl 8(%ebp),%eax // eax = M(8 + a).But what is in M(8 + a)?
sall $4,%eax // eax << 4
addl 8(%ebp),%eax // eax = M(8 + a)
addl %eax,%eax // eax = eax + eax
movl %ebp,%esp // eax = t
popl %ebp // pop a from stack
ret …Run Code Online (Sandbox Code Playgroud) 任何人都可以一步一步解释我,这种平等如何能够成立?
((a^b)&~b)|(~(a^b)&b) == a
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?