64-битные ассемблерные инструкции 32-битных

Я начинаю портировать программу, написанную на C, и имею несколько фрагментов кода, написанных на ассемблере, с инструкциями для 32-битной машины, например ljmp, на 64-битную машину.

Есть ли место / документ, в котором есть инструкции по сборке для 32-битной машины и ее аналог для 64-битной? Если нет, то где я могу найти документ, в котором перечислены все инструкции для 32-битной и 64-битной машины?


Как это довольно очевидно, я новичок в этой ситуации. Уточним некоторые моменты.

Я портирую ОС в ее самые ранние дни. Он был написан с учетом машины x86. Теперь я хочу, чтобы он работал на x86_64.

Он написан в Linux с учетом UNIX. Я почти уверен, что первоначальный автор пишет это на машине Intel. Я тоже на Intel, но я хотел бы запустить ОС и на AMD.

Используемый компилятор — gcc.


person didi    schedule 04.07.2009    source источник
comment
какая архитектура процессора? перейдите на веб-сайт поставщика и загрузите ссылку.   -  person mmx    schedule 05.07.2009


Ответы (2)


Сначала прочитайте это: http://x86asm.net/articles/x86-64-tour-of-intel-manuals/index.html.

Затем загрузите справочник по набору инструкций здесь: http://developer.intel.com/products/processor/manuals/index.htm.

person Bastien Léonard    schedule 04.07.2009
comment
Тот факт, что в исходном вопросе не было указано, почти означает, что ему нужен x86-64. Тем не менее, было бы здорово, если бы эти вопросы могли собирать ссылки и для других применимых архитектур :) - person jerryjvl; 05.07.2009

Вы не предложили никакого фона или даже типа процессора, но я собираюсь предложить вам использовать этот 64-битный порт как возможность пересмотреть использование языка ассемблера. Хотя это, безусловно, имеет место быть, я бы порекомендовал переписать подпрограмму на C++ и протестировать оптимизированный вывод компилятора, чтобы увидеть, действительно ли он медленнее. Во многих случаях этого не будет.

person Steven Sudit    schedule 05.07.2009