64-битные инструкции сборки из 32-битных
-
23-08-2019 - |
Вопрос
Я начинаю переносить программу , написанную на C , и у меня есть несколько фрагментов кода , написанных на ассемблере , с инструкциями для 32 - разрядной машины , подобной жжмп - на 64-битную машину.
Есть ли место / документ, содержащий инструкции в сборке для 32-разрядной машины и ее аналога для 64-разрядной?Если нет, то где я могу найти документ, в котором перечислены все инструкции для 32-разрядной и 64-разрядной машин?
Поскольку это довольно очевидно, я новичок в данной ситуации.Давайте проясним некоторые моменты.
Я портирую операционную систему на самых ранних этапах ее существования.Он был написан с расчетом на машину x86.Теперь я хочу, чтобы он запускался с x86_64.
Он написан в Linux-боксе с учетом UNIX.Я почти уверен, что оригинальный автор пишет это на компьютере Intel.Я тоже работаю на Intel, но я бы тоже хотел запустить ОС на AMD.
Используемый компилятор - gcc.
Решение
Сначала прочтите это: http://x86asm.net/articles/x86-64-tour-of-intel-manuals/index.html.
Затем загрузите ссылку на набор инструкций здесь: http://developer.intel.com/products/processor/manuals/index.htm.
Другие советы
Вы не предложили никакой информации или даже типа процессора, но я собираюсь предложить, что, возможно, вам следует воспользоваться этим 64-разрядным портом как возможностью пересмотреть использование языка ассемблера.Хотя это, безусловно, имеет свое место, я бы рекомендовал перекодировать процедуру на C ++ и сравнить оптимизированный вывод компилятора, чтобы увидеть, действительно ли он работает медленнее.Во многих случаях этого не будет.