Вопрос

Я начинаю переносить программу , написанную на 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 ++ и сравнить оптимизированный вывод компилятора, чтобы увидеть, действительно ли он работает медленнее.Во многих случаях этого не будет.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top