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