Привет лор, снова.
В ходе работы над задачей из этого ASM CS:RIP store'n'load треда, образовался следубщий код: https://gist.github.com/JAkutenshi/1486d1eb5e48d1117a03e0db68ad8f7b
Вкратце: сохраняются cs и ip во внешние переменные в первом инлайне, во втором заносятся в стек и вызывается retf. Проверил в gdb: косяков с пересекающимися регистрами нету, все в стеке лежит аккуратно и верно, скриншот прилагается: https://imgur.com/a/y80SATM
retf последовательно забирает со стека первые 8 байт, заносит в rip, вторые в cs, что соответствует переходу на сл. после lea, вторую сверху, строчку. Что должно дать неожиданный 0 в переменной i и завершением программы с кодом 1. Но вместо этого он мне гордо показывает segfault на выполнении retf. ЧЯДНТ?