X64 - Why use 'call'?

In recent versions of Windows, for example (win 8.1 x64) and programs compiled with the VC ++ 'call' instruction, are still present. Not a quick and best way to store a return address in registers, just like most arguments, rather than using a stack?

What I mean:

Functions:

func:

; do something

jmp r8

Instance:

lea r8, [rip + tmp_1 - tmp_0] ; or rip + 'jmp func' size

tmp_0:

jmp func

tmp_1:

; rest of code
+4
source share
1 answer

x86 :
1. , , OoO.
2. , . , , , MIPS. MIPS RISC , , , call/return /, .

x86 - , - , , . , , . , .
: .

+12

All Articles