Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

LEA and MOV are doing different things. LEA is just calculating the effective address, but MOV calculates the address then retrieves the value stored at that address.

e.g. If base + (index * scale) + offset = 42, and the value at address 42 is 3, then:

LEA rax, [base + index * scale + offset] will set rax = 42

MOV rax, [base + index * scale + offset] will set rax = 3



I assumed they're referring to register-register moves?


OK, so:

LEA eax, [ebx]

instead of:

MOV eax, ebx

But of course:

MOV eax, [ebx]

is not the same.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: