Я смотрел на старый код школьного проекта и, пытаясь скомпилировать его на своем ноутбуке, столкнулся с некоторыми проблемами. Изначально он был написан для старой 32-битной версии gcc. Как бы то ни было, я пытался преобразовать часть сборки в 64-битный совместимый код и натолкнулся на несколько проблем.
Вот исходный код:
pusha
pushl %ds
pushl %es
pushl %fs
pushl %gs
pushl %ss
pusha
недопустим в 64-битном режиме. Итак, что было бы правильным способом сделать это в сборке x86_64 в 64-битном режиме?
Должна быть причина, по которой pusha
недействителен в 64-битном режиме, поэтому у меня есть ощущение Ввод всех регистров вручную может быть не очень хорошей идеей.