Он может на самом деле читать установить любую команду, если реализована поддержка. Большинство процессоров в настоящее время поддерживают два/три набора команд, которые немного отличаются друг от друга из-за 32-разрядной/64-разрядной адресации.
x86 поддерживает 16-разрядные, 32-разрядные и 64-разрядные команды, поддерживает 32-разрядную, 64-разрядную поддержку ARM и для Thumb-Thumb-2 и т. Д. Аналогично для MIPS.
Original Transmeta Я считаю, что он был гибким и должен перекомпилировать любой набор команд во внутренний набор и запустить его изначально. Однако это не удалось, и в настоящее время нет ничего подобного.
В любом случае, после запуска приложения он привязан к определенному набору инструкций в своем заголовке, поэтому он не может изменить его во время выполнения. Ну, ARM является исключением из этого - он может переключаться между полнофункциональными и Thumb-версиями, но они просто разные кодировки для того же ...
Для второй части - либо в графическом интерфейсе ОС, либо вы обычно можете ее прочитать - в Linux, прочитав /proc/cpuinfo
, на Windows в переменной окружения PROCESSOR_ARCHITECTURE
.
Точка 2 не обязательно безумие, если вы, например, поддерживающей определенную базовую архитектуру (скажем, x86), но вы можете использовать супернабор если таковые имеются, например, один из расширений Intel с набором инструкций добавлено в более поздних версиях. Тогда хорошо проверить их, и если они их используют, в противном случае пренебрегают их использованием. –
@RichardEriksson yep с этой точки зрения я согласен, но в целом точка по-прежнему сохраняется. – Spektre