дорожная карта системы команд x86

Я просто касаюсь поверхности x86 системы команд после длительного периода высокоуровневого программирования. Это были приблизительно 20 лет, у меня было свое первое чтение на x86 программировании блока, и от моих поисков с помощью Google я просто потерян с несметным числом ссылок системы команд; от, которые смешивают новые поколения процессоров (286, 386, 486...) другим, которые добавляют более новые x86 инструкции. Не говоря уже об изменениях AMD.

Так как я - планирование создания загрузчика, моя первая мысль должна была быть полностью совместимой с 'стандартом x86', но я не могу выяснить, где вовремя это или даже если это существует где-нибудь.

Даже документация Intel кажется, следуют за тем же путем, и как другой сказал, 'нам нужна x86 стандартизация системы команд, эволюция кодов операций хаотична'.

Это не моя идея содержать баннер стандартизации. Я просто хочу видеть дорогу и понять, куда безопасное место должно идти. Если бы кто-либо мог бы помочь, я ценил бы много!

7
задан starblue 11 January 2010 в 20:27
поделиться

2 ответа

Исторически, X86 был очень обратно совместимым. X86-64 выбросил несколько очень старых инструкций (например, инструкции BCD), но вряд ли это произойдет, что эти изменения произойдут снова (по крайней мере, пока не будет, пока не будет, как 64 бит-адресного пространства, происходит).

Если вы хотите убедиться, что ваш код работает практически во всех процессорах x86, придерживайтесь набора инструкций 386 (если ваш код 32-разрядной) или начала X86-64 набор инструкций (если это 64-битное).

5
ответ дан 7 December 2019 в 10:02
поделиться

Загрузочный загрузчик выполняется в 16-битном реальном режиме (хотя у вас есть доступ к 32-разрядным регистрам через префикс размера операнда). Получите ссылку на инструкции 386, и вы будете в безопасности.

1
ответ дан 7 December 2019 в 10:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: