А это правда что в x86
64-bit ret
эквивалентно pop rip
?
Если в 64bit написать код:
mov al, [rip]
nop
То в al запишется 90h — следующий байт за командой, т.к. rip в то время будет указывать на nop.
При этом, как таковой команды mov al, [rip] не будет, но произойдёт подмена "rip" адресом в памяти следующим за этой командой, т.е. получится mov al, [n], где n — следующий адрес.
В 16/32 это не работает (mov al, [rip]).
А зачем это в 64 — без понятия. (Хотя, это будет короче чем call n в котором pop r, к примеру.)
На счёт pop rip — это скорее чья-то шутка.