Windows x86 что это


x86 это 32 или 64 битная Windows? - История CPU

Всем доброго времени суток дорогие посетители блога айтишнега… У меня довольно часто интересуются — x86 это 32 или 64 битная Windows? Поддаваясь логике — можно предположить что x86 явно больше чем x64, но на практике оказывается что x86 равно x32… но тогда почему так пишут и кому надо ударить по голове, чтобы такой путаницы не было?

А теперь давайте я просто взорву вам мозг — x86 равно x32, и внимание, равна x64 — вы были к такому готовы? — думаю нет… теперь давайте разбираться что, как и куда! Чтобы ответить на этот не самый простой вопрос нам нужно вернуться на несколько десятилетий назад, именно оттуда и идет вся эта заварушка.

По голове надо настучать авторам, которые пишут в требованиях к компьютеру x86 и x64 в связке. Писать такое — грубая ошибка, но этим грешат все… x86 — это архитектура процессора, которая отлично себя чувствует и на 64 битных процессорах и на 32 битных! Маркировка x86 пошла от названия первого процессора от компании Intel i8086 и более новых моделей. Потом первые цифры менялись и сокращенно их объединяли x86 на конце модели — этакая линейка процессоров. Конечно же это было очень давно и процессоры маркируются совершенно по другому, но x86 прочно засела в документации и частенько вводит людей в путаницу… которые особо то не интересовались архитектурой процессоров и не вникали в историю их создания

x86 это 32 или 64 битная Windows?

x86 — это не разрядность, а архитектура… но как показала практика — x86 приравняли к 32 битной операционной системе. Если пренебречь всеми правилами, то можно сказать да, x86 равна 32 битной системе в большинстве случаев.

Правильный вариант обозначения выглядел бы примерно так для 32 разрядной операционной системы (OS_WINDOWS_x86_32bit) или так для 64 битной (OS_WINDOWS_x86_64bit), но у нас все поперепутали!

Тут еще нюанс в том, что 32 битные процессоры уже очень и очень продолжительное время были единственными на рынке, и они были архитектуры x86… а когда вышли 64 разрядные — их стали обозначать x64, а для 32 биток оставили все как есть!

x32 или x64 — Что лучше?

В плане производительности конечно же 64 разрядная операционная система имеет явное преимущество, а вот 32 разрядная ОС очень ужата в ресурсах оперативной памяти. 32 битка не может адресовать более 4 гигабайт оперативной памяти, но по факту она видит не более 3,25 гигабайт из четырех! Однако некоторые приложения могут не запуститься на 64 битной WIndows — что и является сдерживающим фактором перехода но новую ОС.

x86 это 32 или 64 битная Windows? — теперь вы можете сами ответить на этот вопрос… главное знать что и куда, а применить знания можно уже в конкретном случае — тут правильность вашего видения может оказаться ошибочным…

Facebook

Twitter

Вконтакте

Одноклассники

Google+

X64 Или X32 (x86). Как Её Узнать?

Не многие знают, что в Windows есть такое понятие как разрядность —  x32 (x86), x64. В этой короткой заметке мы объясним что это такое на пальцах. Тут нет ничего сложного и знать это нужно, потому что это важный момент.

Разрядность операционной системы – грубо и очень приближённо, это количество мельчайших единиц информации (бит), которое процессор способен обработать за один такт (герц). В современном мире существует два варианта разрядности: 32-бит или 64-бит. 32-битные системы называют также x86: это неверное обозначение, зато распространённое. Других вариантов практически нет – разве что доисторические 16-разрядные программы эпохи MS-DOS и Win98.

Чем отличаются Window 32 и 64 на практике? Не скоростью работы – это точно. Грубоватый пример – на задней оси грузовиков бывают и 2 шины, и 4. Наличие 4х шин не делает фуру быстрее или мощнее – но в некоторых случаях многоколёсная конфигурация удобнее: скажем, при перевозке особо тяжёлого груза. Так и с 64-битной версией Windows: быстрее система не станет, но…

Сзади у грузовика 4 колеса, по 2 шины на каждую сторону. Это как в случае с 64-битной ОС: иногда лучше, но точно не быстрее и не медленнее.

Но старые 32-битные Windows способны работать не более чем с 4 гигабайтами ОЗУ, а это мало для современных программ. Даже если физической памяти в компьютер установлено 8 или 16 Гб, ОС способна работать лишь с 3,5-3,8 гигабайтами из них, а остальной объём висит мёртвым грузом. Существуют нестандартные способы заставить «Винду» видеть более 4 гигов, но работают они через раз, да и то, скорее, для косметического эффекта.

64-битная версия Windows уверенно работает с любым объёмом ОЗУ (до 32ГБ).

Различия коротко и понятно:

  • x64 — работает с оперативной памятью до 32ГБ. Может запускать 32 и 64-битные программы.
  • x32 — работает с оперативной памятью до 4ГБ. Может запускать только 32-битные программы для которых доступно 3 ГБ оперативки.

Есть и другие различия. Но это уже «железные дела» и нам с вами их знать совсем не обязательно, потому что «Меньше знаешь — крепче спишь»…

Разрядность у программ и драйверов

Разрядность может иметь не только система, но и программы, и драйвера. Большинство программ создавалось именно под 32-битные операционки. 32-разрядные приложения отлично работают и в 64-битной среде. Наоборот – не работает никак: истинно 64-битные проги не способны запуститься в 32-разрядой Windows.

Как узнать какая разрядность у вашей Windows?

Если у вас возник такой вопрос, то скорее всего у вас 32-разрядная система — она более популярна и всегда ставиться по умолчанию. 64-разрядную систему как правило устанавливают осознанно и намеренно.

Понять какая разрядность у вашей ОС очень просто.

Windows 8, 10

Нажмите правой кнопкой на Пуск и выберите пункт «Система«. В появившемся окне будет написана разрядность.


Windows 7

Найдите иконку «Мой компьютер» кликните по ней правой кнопкой и выберите «Свойства«.


Windows XP

ПускМой компьютер > Свойства > вкладка «Общие» > Смотрим в раздел Система: если написано 64-битная версия, или 64-bit Edition, 64-бит. Если этого нет но есть что-то вроде Service Pack 3, то 32-разрядная.

Стоит ли переходить на 64-разрядную систему?

Уже, стоооит! Исключения — это пожалуй офисные компьютеры со старыми процами и 1-3 гагами памяти на борту, где не нужны никакие навороты.

Минус: x64 имеет, пожалуй, единственный минуc, из-за которого можно подумать о переходе —  не все производители выпустили драйвера для 64-разрядных систем. Но, на сегодня, абсолютно все популярные программы умеют работать с x64, также как и все современные драйвера. Поэтому в 95% случаев это не будет проблемой.

Плюсов куча: более быстрые программы, улучшенная производительность для многоядерных процессоров, поддержка большого объема оперативной памяти.

Технологии развиваются и если пару лет назад никто толком не знал о 64-разрядных системах, то сегодня технологии стремятся полностью перейти на них и это лишь вопрос времени.

Вердикт? В 90% случаев стоит переходить на x64!

В чём разница между x86 и x64 и что это значит?

Если вы впервые устанавливаете Windows на ноутбук или компьютер, у вас обязательно возникнет вопрос: какую версию Windows ставить: x86 или x64, 32 или 64 бит? Иногда 32-битную называют x86, хотя это неправильно — x86 может быть как 32 так и 64 бита. Запутались? Ну конечно же. X86 — это архитектура микропроцессора, а 32 или 64 — его разрядность. Когда кто-то пишет x86/x64/x32 — сам того не понимая, создаёт большую путаницу. Правильно писать x86_32BIT и x86-64BIT или просто x32 / x64.

У каждого процессора, совместимого с платформой x86, есть поддерживаемые наборы инструкций, например: MMX, SSE , 3DNow!, SSE2, EMMX и другие. Если в программе указано, что она будет работать с x86 совместимым процессором, значит, она будет работать на любом из процессоров семейства x86. Просто если программа поддерживает наборы инструкций, она будет использовать их для более быстрой работы. Если нет — будет работать медленнее, используя основные инструкции.

Итак, разница между x86 и x64 колоссальна — первое это платформа процессора, а второе — его разрядность. Но всё же во многих источниках указывают x86 как 32 битную систему. Именно поэтому если вы видите выбор x86 или x64 имейте ввиду, что имеется ввиду выбор между 32 и 64 битной системой. Если же вы вы видите надпись x86_64, скорее всего имеется ввиду именно 64 битная версия.

Забивать голову подробностями я вам не буду — для этого вы можете выбрать любой технический форум. Тем более, что вы уже поняли чем x86 отличается от x64 и этот вопрос больше не поставит вас в тупик. Если у вас есть предложения или исправления, пишите в комментарии — мы обязательно опубликуем его. Вам может быть интересно:

С уважением, редакция FixErro.com

32 разрядная это x64 или x86?

Для многих пользователей операционной системы Windows не секрет, что существует две ее версии по типу разрядности. Это 32 битная и 64. Знать разрядность своей операционной системы нужно каждому, ведь при поиске и скачивании драйверов, программ и игр она учитывается.

Но с обозначениями разрядности системы, а также драйверов и программ существует некоторая путаница. Есть три обозначения двух разрядностей – x32, x64 и x86. По этой причине часто возникает вопрос 32 разрядная версия это x64 или x86?

Ответ на данный вопрос вы найдете в этой статье.

Второе обозначение 32 разрядной версии ПО

Чтобы впредь исключить путаницу обозначений разрядности программного обеспечения, к которому относится операционная система, драйвера, программы и игры, запомните, что существует две основные версии разрядности ПО – это 32 бита и 64 бита. 64 битная версия может обозначаться только как x64, а вот 32 битная может обозначаться как x32, так и x86.

Вот пример обозначения 64 битной версии драйвера для ноутбука на его официальном сайте:

Обозначение разрядности на сайте с драйверами

А вот возможные варианты обозначения 32 битной версии:

Обозначение разрядности на сайте с драйверами

Обозначение разрядности в описании программы

Из всего вышеописанного можно сделать вывод, что 32 разрядная версия ПО это x86.

x64 обозначается 64 битная версия какого – либо программного обеспечения. Учтите это при подборе версии драйверов и любых других программ.

Для того, чтобы просмотреть какая у вас разрядность операционной системы, достаточно нажать правой кнопкой мыши по значку “Компьютер” на рабочем столе и выбрать “Свойства”.

Заходим в свойства компьютера

В открывшемся окне будет отображена разрядность вашего Windows. И не забудьте x86 это 32 бита, а x64 – 64 бита.

Просмотр разрядности Windows

В чем разница между х86 и х64?

Многие пользователи часто задаются вопросами: «Какую систему мне ставить?», «В чем разница между х86 и х32?» и т. д. Давайте же разложим все по полочкам.

х86 — это архитектура процессора с одноимённым набором команд, впервые реализованная в процессорах компании Intel. Название образовано от двух цифр, которыми заканчивались названия процессоров Intel ранних моделей — 8086, 80186, 80286 (i286), 80386 (i386), 80486 (i486). Через какое-то время цифровые обозначения новых процессоров стали сменяться именами. Так публика узнала о Pentium и Celeron, но платформа x86 не изменялась вплоть до 2000-х годов, но об этом чуточку попозже.

В начале своего пути х86 архитектура, которая была впервые представлена на i8086, применялась на 16-разрядных процессорах (может хранить 2^16 уникальных значений), имела 16-битные инструкции и внутреннюю 16-битную шину, позже добавили еще внешнюю 8-разрядную шину данных. Дальше события развивались довольно просто — производители увеличивали скорость, количество транзисторов, набор команд и т. д., и так вплоть до выхода 80386(i386) — процессора, который на то время знаменовал собой революцию в мире процессоров x86. Это был первый 32-разрядный процессор, который мог использовать кэш-память, расположенную на внешнем чипе.
Вплоть до анонса AMD64 (аппаратная платформа) архитектура не сильно менялась.
После выхода AMD64 и Intel 64 х86 она подверглась серьезным изменениям.
Процессоры архитектуры поддерживают два режима работы: Long Mode («длинный» режим) и Legacy Mode («наследственный», режим совместимости с 32-битным x86).
Основные достоинства архитектуры x86-64:

  • 64-битное адресное пространство;
  • расширенный набор регистров;
  • привычный для разработчиков набор команд;
  • возможность запуска старых 32-битных приложений в 64-битной операционной системе;
  • возможность использования 32-битных операционных систем.

«Что такое x32?»

Это 32-битная операционная система, которая ставится на 32-разрядные процессоры. Если брать в качестве примера ОС Microsoft, то первая x32 была Windows 95, которая в полной мере использовала возможности данного процессора и архитектуры (x86). Главным недостатком x32 является невозможность поддержки более чем 4 ГБ ОЗУ. Примечательно, что система в состоянии оперировать только 3 ГБ памяти и 1 ГБ просто проваливается.
Еще существует довольно распространённая ошибка: когда пишут совместимость программ, то указывают x86, подразумевая 32-битную платформу. Это не совсем корректно и только вводит в заблуждение. Лучше всего указывать x86_32bit или x86_64bit. Либо сокращать до интуитивно понятных x32 или x64.

что собой представляет x64?

x86_64bit — это 64-битная операционная система, которая ставится на 64-разрядные процессоры с архитектурой x86-64. «64-битный лейбл» звучит возбуждающе, но в практическом плане это всего лишь хитрый маркетинговый трюк, скрывающий не только достоинства, но и недостатки. В принципе, ее главным достоинством была и остаётся возможность воспринимать до 32 ГБ ОЗУ, что существенно увеличивает производительность. Еще одним плюсом данной ОС есть то, что под ней процессоры на архитектуре х86-64 (Celeron, Core 2, Core i3, Core i5, Core i7) задействуют весь потенциал кристалла. Это возможно благодаря режиму Long Mode. Недостатком же есть увеличение потребляемой оперативной памяти программами, например, тот же Apache на 32-бит потреблял 20 МБ ОЗУ, а уже на 64-бит ОС — приблизительно 50 МБ.

64 разрядная windows 7 или 32 бита, x64 и x86 в чем разница?

Рубрика: Windows 7

Что значит x64 и x86 в чем разница

32-разрядные и 64-разрядные версии Windows эти цифры означают архитектуру процессора, чем выше разрядность тем больше оперативной памяти может использовать Ваша ОС, иногда 32 обозначают как x86, то есть в любом случае x64 более современная архитектура так как имеет 64 битную разрядность, а x86 архитектура имеет всего 32 битную разрядность.

Как узнать какая у меня разрядность системы?

В свойствах компьютера или при помощи программы Securable (_https://www.grc.com/securable.htm), также с помощью нее можно узнать поддерживает ли ваш процессор 64 разрядную операционную систему.

Какая разница и что это дает?

Шестидесяти четырех битная система может увидеть и работать с большем объемом памяти, 32 она же уже x86 устаревшая архитектура процессора работает лишь с 3 гигабайтами, до нее была 8, 16 битные системы, все мы наверно помним 8 битную Денди (не с очень то красивой графикой) и 16 битную Sega mega drive (по красочней чем на денди графикой), ну а потом уже Sony Playstation 32, тогда еще появилась Nintendo 64 но особой популярностью, 64 разрядность не пользовалась, так как на тот момент не писались в таком масштабе программы и драйвера под нее. Но на сегодняшней момент все изменилось, и производители стали активно разрабатывать приложения и драйвера, под эту систему, а почему именно сейчас?, а не тогда когда появилась Windows XP 64 не пользующаяся особой популярностью по причине отсутствия приложений и поддержки драйверов различными устройствами, а все потому что не было необходимости для обычного пользователя, так как нам хватало и той оперативной памяти с которой могла работать 32 разрядная ОС, это максимальных 3 Gb.

Так что пришло время, поднялись требования программ к ресурсам системы. Не цифры разрядности дают прирост производительности, а объем оперативной памяти и как программа может этот объем использовать, та как сама по себе разрядность не дает скорости, если вы установили себе 64 ОС и установили программу поддерживающую эту разрядность, сам факт этого не даст значительного прироста, а вот работа программы с вашей ОП уже может значительно ускорить работу программы, как это происходит, все дело в том что программы до этого использовали в качестве буфера, на виртуальном жестком диске, и обращение к этому дампу значительно медленнее чем обращение к оперативной памяти, сейчас же идея приложения заключается в использование места под дамп именно в оперативной памяти компьютера, тем самым уменьшить время на затраты при обращении к нему.

Вот я надеюсь хоть как то смог мало мальски для неопытных людей разобрать что к чему в этих цифрах. Так что можно подвести вывод, если вы офисный сотрудник и у вас кроме офисных программ больше ничего не установлено то вам вообще все равно что использовать, но лучше 32, так как у вас будет не так много папок Programm files ))), объясню все дело в в том что если вы установите себе 64 битную ОС то при установке приложений 32 битных вы получите вторую папку Programm files (x86) так как все программы хранятся отдельно по разрядности. По этому для офиса или использования в домашних условиях для не продвинутых пользователей и не геймеров я бы рекомендовал 32.

Если вы уже ПРОюзер и Игроман то 64 система это для вас, так как на сегодняшний момент играм требуется уже больше оперативной памяти чем 3 Гб, да и профессиональные программы как фотошоп или видео редакторы уже могут использовать в своих целях большой объем оперативной памяти.



Теги: windows


Поделись с друзьями: Похожие статьи

комментариев 7 для записи 64 разрядная windows 7 или 32 бита, x64 и x86 в чем разница?

в чем разница между x64 и x86

разница между x64 и x86

Обычно это x86 для 32-битной ОС и x64 для 64-битной системы.

Технически x86 означает просто семейство процессоров и набор команд, который они все используют. На самом деле он не говорит ничего конкретного о размерах данных. Термин x86 начался как 16-разрядный набор инструкций для 16-разрядных процессоров (процессоры 8086 и 8088), затем был расширен до 32-разрядного набора инструкций для 32-разрядных процессоров (80386 и 80486), и теперь был расширен до 64-битного набора инструкций для 64-битных процессоров.Раньше он записывался как 80x86, чтобы отразить изменяющееся значение в середине номеров моделей чипов, но где-то вдоль линии 80 на переднем плане было опущено, оставив только x86.

Когда были представлены 64-битные процессоры, совместимые с архитектурой x86, они назывались x86-64. x86-32 (и x86-16) использовались для 32 (и 16) битных версий. В конечном итоге это было сокращено до x64 для 64-битных, и только x86 относится к 32-битному процессору. 32-битные процессоры предназначены для обработки ограниченного объема физической памяти максимум 4 ГБ, но 64-битные могут обрабатывать верхнюю память, используя 8,16, а некоторые даже 32 ГБ.

На 64-битных компьютерах могут работать как 32-битные, так и 64-битные программы. 32-битные компьютеры не могут запускать 64-битные программы, потому что размеры битов принципиально отличаются. Последние ноутбуки с предустановленной Windows обычно имеют x64, то есть 64-разрядные, старые настольные компьютеры и ноутбуки могут иметь Windows x86, что означает 32-разрядную версию.

Как определить, является ли ОС Windows 32-разрядной (x86) или 64-разрядной (x64)

Откройте меню опытного пользователя. Нажмите клавишу Windows + X, чтобы открыть это меню.Щелкните Система.

Есть еще один способ понять, что если на вашем компьютере установлена ​​64-битная Windows, вы, вероятно, найдете на жестком диске папку Program Files (x86). В ней хранятся 32-разрядные приложения, а в другой папке «Program Files» находятся все установленные вами 64-разрядные приложения.



NEXT ..... Уловки умножения
.

Simple English Wikipedia, бесплатная энциклопедия

Эта статья не имеет источников . Вы можете помочь Википедии, найдя хорошие источники и добавив их. (июль 2010 г.)

x86 - это термин, используемый для описания набора команд ЦП, совместимого с Intel 8086 и его преемниками, включая Pentium и другие, произведенные Intel и другими компаниями. Это архитектура ЦП, используемая в большинстве настольных и портативных компьютеров.Многие рабочие станции и серверы 21 века также используют процессоры x86. В 1985 году первоначальная 16-разрядная архитектура x86 была расширена до 32-разрядной с появлением процессора i386. Он был снова расширен до 64 бит в 2003 году с появлением процессора AMD Opteron.

Intel приняла 64-битную вычислительную битовую архитектуру в 2004 году с более поздними версиями Prescott Pentium 4. Различные версии обратно совместимы, что означает, что 32-битный процессор x86 может работать в 32-битном или 16-битном режиме. система, а 64-разрядный процессор x86 может работать с 16-, 32- или 64-разрядной операционной системой.Все процессоры x86 (за редким исключением некоторых процессоров Intel, используемых во встроенных системах) запускаются в 16-битном реальном режиме. Современная операционная система (или иногда загрузчик) переключает процессор в 32-битный защищенный режим или 64-битный длинный режим перед загрузкой ядра.

16 бит [изменить | изменить источник]

32-битный Intel [изменить | изменить источник]

  • i386 (80386)
  • i486 (80486)
  • Pentium
  • Pentium Pro
  • Pentium 2 (или II)
  • Pentium 3 (или III)
  • Старые версии Pentium 4
  • Pentium M
  • Ядро
  • Старый Xeon
  • Мобильные версии Intel Atom
  • Более старый Celeron

64-битный Intel [изменение | изменить источник]

  • Более новые Prescott Pentium 4
  • Pentium D
  • Ядро 2
  • Core i3, i5, i7 и i9
  • Более новый Atom
  • Двухъядерный Pentium
  • Более новые Celeron
  • Более новый Xeon

32-битный AMD [изменение | изменить источник]

  • драм 386
  • драм 486
  • драм586
  • Am5x86-P75 (фактически 486 CPU)
  • К5
  • K6 / K6-II / K6-III
  • Athlon
  • Athlon XP
  • Duron
  • Sempron
  • Geode

64-бит AMD [изменить | изменить источник]

  • Оптерон
  • Athlon 64
  • Phenom
  • Phenom 2
  • FX
  • Sempron
  • ВСУ A4 / A6 / A8 / A10 / A12
  • APU Athlon
  • ВСУ Sempron
  • Ryzen

Другое [изменить | изменить источник]

  • Cyrix 386 / 486S / DLC, 5x86, 6x86, MII, MIII (32-разрядная версия)
  • IDT Winchip (32-разрядная версия)
  • Rise (32-бит)
  • NxGen (32-разрядная версия)
  • через C3 и C7 (32-бит)
  • Via Nano (64-разрядная версия)

Операционные системы, выделенные пурпурным цветом, работают только на процессорах x86.Операционные системы, выделенные синим цветом, возникли на платформе x86, но с тех пор были созданы и для других процессоров. Операционные системы, отмеченные оранжевым цветом, возникли не на x86, а были перенесены на x86.

.Архитектура

x86 - драйверы для Windows

  • На чтение 9 минут

В этой статье

В процессоре Intel x86 используется архитектура компьютера со сложным набором команд (CISC), что означает скромное количество регистров специального назначения вместо большого количества регистров общего назначения.Это также означает, что будут преобладать сложные специализированные инструкции.

Процессор x86 восходит к 8-битному процессору Intel 8080 по крайней мере. Многие особенности набора команд x86 связаны с обратной совместимостью с этим процессором (и его вариантом Zilog Z-80).

Microsoft Win32 использует процессор x86 в 32-битном плоском режиме . Эта документация будет посвящена только плоскому режиму.

Регистры

Архитектура x86 состоит из следующих непривилегированных целочисленных регистров.

eax

Аккумулятор

EBX

Базовый регистр

ecx

Регистр счетчика

edx

Регистр данных - может использоваться для доступа к портам ввода / вывода и арифметических функций

ESI

Регистр указателя источника

edi

Регистр индекса назначения

EBP

Регистр базового указателя

esp

Указатель стека

Все целочисленные регистры 32-битные.Однако многие из них имеют подрегистры 16 или 8 бит.

ax

Младшие 16 бит eax

bx

Младшие 16 бит ebx

сх

Младшие 16 бит ecx

dx

Младшие 16 бит edx

si

Младшие 16 бит esi

di

Младшие 16 бит edi

п.п.

Младшие 16 бит EBP

sp

Младшие 16 бит esp

и

Младшие 8 бит eax

ах

High 8 бит ax

бл

Младшие 8 бит ebx

bh

Старший 8 бит bx

класс

Младшие 8 бит ecx

шасси

Старший 8 бит cx

дл

Младшие 8 бит edx

дх

Старший 8 бит dx

Работа с субрегистром влияет только на субрегистр и ни на одну из частей вне субрегистра.Например, при сохранении в регистре ax старшие 16 бит регистра eax остаются неизменными.

При использовании ? (Evaluate Expression) , регистры должны иметь префикс «at» ( @ ). Например, вы должны использовать ? @ax , а не ? Топор . Это гарантирует, что отладчик распознает ax как регистр, а не как символ.

Однако (@) не требуется в команде r (Регистры) .Например, r ax = 5 всегда будет интерпретироваться правильно.

Два других регистра важны для текущего состояния процессора.

eip

указатель инструкции

флаги

флаги

Указатель инструкции - это адрес выполняемой инструкции.

Регистр флагов - это набор однобитовых флагов. Многие инструкции изменяют флаги, чтобы описать результат выполнения инструкции. Затем эти флаги можно проверить с помощью инструкций условного перехода. См. Подробности в разделе «Флаги x86».

Соглашения о вызовах

Архитектура x86 имеет несколько различных соглашений о вызовах. К счастью, все они следуют одним и тем же правилам сохранения регистров и возврата функций:

  • Функции должны сохранять все регистры, за исключением eax , ecx и edx , которые можно изменять при вызове функции, и esp , которые должны обновляться в соответствии с соглашением о вызовах.

  • Регистр eax принимает значения, возвращаемые функцией, если результат составляет 32 бита или меньше. Если результатом является 64 бита, то результат сохраняется в паре edx: eax .

Ниже приводится список соглашений о вызовах, используемых в архитектуре x86:

  • Win32 ( __stdcall )

    Параметры функции передаются в стек, сдвигаются справа налево, и вызываемый объект очищает стек.

  • Вызов собственного метода C ++ (также известный как thiscall)

    Параметры функции передаются в стек, сдвигаются справа налево, указатель this передается в регистр ecx , и вызываемый объект очищает стек.

  • COM ( __stdcall для вызовов методов C ++)

    Параметры функции передаются в стек, помещаются справа налево, затем указатель this помещается в стек, а затем вызывается функция. Вызываемый очищает стек.

  • __fastcall

    Первые два аргумента DWORD или меньше передаются в регистры ecx и edx . Остальные параметры передаются в стек справа налево.Вызываемый очищает стек.

  • __cdecl

    Параметры функции передаются в стек, сдвигаются справа налево, и вызывающий объект очищает стек. Соглашение о вызовах __cdecl используется для всех функций с параметрами переменной длины.

Отображение регистров и флагов отладчиком

Вот пример отображения регистра отладчика:

  eax = 00000000 ebx = 008b6f00 ecx = 01010101 edx = ffffffff esi = 00000000 edi = 00465000 eip = 77f9d022 esp = 05cffc48 ebp = 05cffc54 iopl = 0 nv up ei ng nz na po nc cs = 001b ss = 0023 ds = 0023 es = 0023 fs = 0038 gs = 0000 efl = 00000286  

При отладке в пользовательском режиме вы можете игнорировать iopl и всю последнюю строку дисплея отладчика.

x86 Флаги

В предыдущем примере двухбуквенные коды в конце второй строки - это флагов . Это однобитовые регистры, которые имеют множество применений.

В следующей таблице перечислены флаги x86:

Код флага

Название флага Значение Статус флага Описание статуса из

Флаг переполнения

0 1 нвов

Нет переполнения Переполнение df

Флаг направления

0 1 обн

Направление вверх Направление вниз , если

Флаг прерывания

0 1 diei

Прерывания отключены Разрешены прерывания SF

Знак Флаг

0 1 злотых

Положительный (или ноль) Отрицательный zf

Нулевой флаг

0 1 NZZR

Ненулевое значение Нуль аф

Вспомогательный флаг переноса

0 1 Naac

Без дополнительного переноски Вспомогательная переноска пф

Флаг четности

0 1 пепо

Четность даже Четность нечетная cf

Флаг переноса

0 1 NCCY

Без переноски Нести тс

Флаг ловушки

Если tf равно 1, процессор вызовет исключение STATUS_SINGLE_STEP после выполнения одной инструкции.Этот флаг используется отладчиком для реализации пошаговой трассировки. Он не должен использоваться другими приложениями.

iopl

Уровень привилегий ввода-вывода

Это двухбитовое целое число со значениями от нуля до 3. Оно используется операционной системой для управления доступом к оборудованию. Он не должен использоваться приложениями.

Когда регистры отображаются в результате какой-либо команды в окне команд отладчика, отображается статус флага .Однако, если вы хотите изменить флаг с помощью команды r (Регистры) , вам следует обратиться к нему с помощью кода флага .

В окне регистров WinDbg код флага используется для просмотра или изменения флагов. Статус флага не поддерживается.

Вот пример. На предыдущем отображении регистров отображается статус флага ng . Это означает, что флаг знака в настоящее время установлен на 1. Чтобы изменить это, используйте следующую команду:

  r sf = 0  

Устанавливает флаг знака в ноль.Если вы сделаете другое отображение регистра, код состояния ng не появится. Вместо этого будет отображаться код состояния pl .

Флаг «Знак», «Нулевой флаг» и «Флаг переноса» - наиболее часто используемые флаги.

Условия

Состояние описывает состояние одного или нескольких флагов. Все условные операции на x86 выражаются в условиях.

Ассемблер использует одно или двухбуквенное сокращение для обозначения условия.Условие может быть представлено несколькими сокращениями. Например, AE («выше или равно») является тем же условием, что и NB («не ниже»). В следующей таблице перечислены некоторые общие условия и их значение.

Название условия Флаги Значение

Z

ZF = 1

Результат последней операции был нулевым.

NZ

ZF = 0

Результат последней операции не был нулевым.

С

CF = 1

Последняя операция потребовала переноса или заимствования. (Для целых чисел без знака это означает переполнение.)

NC

CF = 0

Последняя операция не требовала переноса или заимствования. (Для целых чисел без знака это означает переполнение.)

S

SF = 1

У результата последней операции установлен старший бит.

NS

SF = 0

У результата последней операции сброшен старший бит.

О

OF = 1

Последняя операция, рассматриваемая как целочисленная со знаком, вызвала переполнение или потерю значимости.

НЕТ

OF = 0

При обработке как целочисленной операции со знаком последняя операция не вызывала переполнения или потери значимости.

Условия также можно использовать для сравнения двух значений. Команда cmp сравнивает свои два операнда, а затем устанавливает флаги, как если бы один операнд вычитался из другого. Следующие условия можно использовать для проверки результата cmp value1 , value2 .

Название условия Флаги Значение после операции CMP.

E

ZF = 1

значение1 == значение2 .

NE

ZF = 0

значение1 ! = значение2 .

GE NL

SF = OF

значение1 > = значение2 . Значения рассматриваются как целые числа со знаком.
LE NG

ZF = 1 или SF! = OF

значение1 <= значение2 . Значения обрабатываются как целые числа со знаком.

грамм NLE

ZF = 0 и SF = OF

значение1 > значение2 . Значения обрабатываются как целые числа со знаком.

L NGE

SF! = OF

значение1 < значение2 . Значения обрабатываются как целые числа со знаком.

AE NB

CF = 0

значение1 > = значение2 .Значения рассматриваются как целые числа без знака.

БЫТЬ NA

CF = 1 или ZF = 1

значение1 <= значение2 . Значения рассматриваются как целые числа без знака.

А NBE

CF = 0 и ZF = 0

значение1 > значение2 . Значения рассматриваются как целые числа без знака.

B NAE

CF = 1

значение1 < значение2 .Значения рассматриваются как целые числа без знака.

Условия обычно используются для воздействия на результат команды cmp или test . Например,

  cmp eax, 5 jz равно  

сравнивает регистр eax с числом 5, вычисляя выражение ( eax -5) и устанавливая флаги в соответствии с результатом. Если результат вычитания равен нулю, то будет установлен флаг zr , а условие jz будет истинным, поэтому будет выполнен переход.

Типы данных

Обозначение

В следующей таблице указаны обозначения, используемые для описания инструкций на языке ассемблера.

Обозначение Значение

r , r1 , r2 ...

Регистры

м

Адрес памяти (дополнительную информацию см. В следующем разделе «Режимы адресации».)

Непосредственная постоянная

r / м

Регистр или память

r / # n

Регистр или постоянная постоянная

r / m / # n

Регистр, память или непосредственная константа

куб.см

Код состояния, указанный в предыдущем разделе «Условия».

т

«B», «W» или «D» (байт, слово или двойное слово)

согласно T

Размер T аккумулятор: al , если T = "B", ax , если T = "W", или eax , если T = "D"

Режимы адресации

Существует несколько различных режимов адресации, но все они имеют вид T ptr [expr] , где T - некоторый тип данных (см. Предыдущий раздел «Типы данных»), а expr - некоторое выражение, включающее константы и регистры.

Обозначения для большинства режимов могут быть выведены без особого труда. Например, BYTE PTR [esi + edx * 8 + 3] означает «взять значение регистра esi , добавить к нему восемь раз значение регистра edx , добавить три, затем получить доступ к байту в полученный адрес ".

Трубопровод

Pentium имеет двойную функцию, что означает, что он может выполнять до двух действий за один такт. Однако правила того, когда он может выполнять два действия одновременно (известные как , объединение ), очень сложны.

Поскольку x86 является процессором CISC, вам не нужно беспокоиться о слотах задержки перехода.

Синхронизированный доступ к памяти

Инструкции загрузки, изменения и сохранения могут получить префикс lock , который изменяет инструкцию следующим образом:

  1. Перед выдачей инструкции ЦП очищает все отложенные операции с памятью, чтобы обеспечить согласованность. Все предварительные выборки данных прекращены.

  2. При выдаче инструкции CPU будет иметь монопольный доступ к шине.Это обеспечивает атомарность операции загрузки / изменения / сохранения.

Инструкция xchg автоматически подчиняется предыдущим правилам всякий раз, когда она обменивается значением с памятью.

Все остальные инструкции по умолчанию не блокируются.

Прогнозирование прыжка

Прогнозируются безусловные прыжки.

Предполагается, что условные прыжки будут выполнены или нет, в зависимости от того, были ли они выполнены в последний раз.Кэш для записи истории переходов ограничен по размеру.

Если ЦП не имеет записи о том, был ли выполнен условный переход в последний раз, когда он был выполнен, он прогнозирует условные переходы назад как выполненные и условные переходы вперед как невыполненные.

Выравнивание

Процессор x86 автоматически исправляет невыровненный доступ к памяти, что снижает производительность. Никаких исключений не возникает.

Доступ к памяти считается выровненным, если адрес является целым кратным размеру объекта.Например, все доступы BYTE выровнены (все является целым числом, кратным 1), доступы WORD к четным адресам выровнены, а адреса DWORD должны быть кратными 4, чтобы быть выровненными.

Префикс lock не должен использоваться для невыровненного доступа к памяти.

.

Что такое архитектура x86 и чем она отличается от архитектуры x64?

Вы когда-нибудь сталкивались с x86 и x64, но не понимаете, что они означают? Не беспокойтесь, так как в этом блоге будет рассказано все, что вам нужно знать о x86 и его архитектуре, а также о x64 и их различиях между собой.

Что такое архитектура x86?

x86 - это семейство архитектур с набором команд (ISA) для компьютерных процессоров, изначально разработанное Intel. Они относятся к способу обработки информации процессором компьютера (ЦП).

Что такое архитектура набора команд?

Это абстрактная модель компьютера, которую также называют компьютерной архитектурой. Это часть компьютера, относящаяся к программированию, которое определяет поведение машинного кода. Набор команд - это язык, который мозг компьютера должен понимать, который передает команды процессору компьютера и сообщает ему, что делать.

Вернуться к x86…

x86 разработан на основе микропроцессора Intel 8086 и его варианта 8088, где он начинался как 16-битный набор инструкций для 16-битных процессоров, где к x86 было добавлено множество дополнений и расширений, где он вырос до 32-битных инструкций. наборы на протяжении многих лет с почти полной обратной совместимостью.

Бит как в 32-битном, так и в 16-битном формате является сокращением числа. Например, для 32-разрядного числа число будет содержать 32 бита, которые являются двоичными цифрами, равными 0 или 1. Для 32-разрядного числа оно будет выглядеть примерно так 1010101010101010101010101010.

Сегодня термин x86 обычно используется для обозначения любого 32-разрядного процессора, совместимого с набором инструкций x86. Микропроцессор x86 способен работать практически на любом типе компьютера от ноутбуков, серверов, настольных компьютеров, ноутбуков до суперкомпьютеров.


Что такое x64?

Подобно x86, x64 также представляет собой семейство архитектур с набором команд (ISA) для компьютерных процессоров. Однако x64 относится к 64-битному процессору и операционной системе, а не к 32-битной системе, которую обозначает x86.

Но почему x64 относится к 64-битной системе, а x86 - к 32-битной системе?

Это был вопрос, который я тоже сначала задавал себе. Однако это связано с тем, что при создании процессора он назывался 8086.8086 был хорошо спроектирован и популярен, он сначала может понимать 16-битный машинный язык. Позже он был улучшен и увеличил размер инструкций 8086 до 32-битного машинного языка. По мере улучшения архитектуры они сохранили 86 в конце номера модели, 8086. Эта линейка процессоров была известна как архитектура x86.

С другой стороны, x64 - это имя архитектуры для расширения набора инструкций x86, которое включает 64-битный код. Когда он был первоначально разработан, он назывался x86-64.Однако люди думали, что имя было слишком длинным, и позже оно было сокращено до нынешнего x64.


В чем разница между x86 и x64?

Как вы, ребята, уже можете сказать, очевидная разница будет заключаться в количестве бит для каждой операционной системы. x86 относится к 32-битному процессору и операционной системе, а x64 - к 64-битному процессору и операционной системе.

Имеет ли большее количество бит в каждой операционной системе какие-либо преимущества?

Конечно! Это одна из основных причин, по которой количество битов с годами увеличивается с 16 до 64 в настоящее время.32, что равно 4 294 967 295. Это означает, что 32-разрядный процессор имеет 4,29 миллиарда ячеек памяти, каждая из которых хранит один байт данных, что составляет прибл. 4 ГБ памяти, к которой 32-разрядный процессор может получить доступ без программных обходных решений для увеличения емкости.

Сегодня 4 ГБ достаточно для основных задач, но если вы хотите запускать несколько программ и другие задачи с более высокой нагрузкой, 4 ГБ недостаточно. Кроме того, в 64-битной системе он будет более эффективным, поскольку он может обрабатывать данные в виде 64-битных фрагментов по сравнению с 32-битными фрагментами.Ваша 64-битная система также может запускать 32-битные программы, поскольку они обратно совместимы. Но иначе не получится, когда 32-разрядный компьютер не может запускать 64-разрядные программы.


Пример одноплатного компьютера x86 (SBC)

ODYSSEY - X86J4105 переопределяет SBC (одноплатный компьютер) с предустановленной Windows 10 Enterprise и сопроцессором Arduino на борту, что делает IoT (Интернет вещей) проще, чем раньше.

С быстрым развитием Интернета вещей все больше и больше устройств Edge Computing подключаются к Интернету.В настоящее время компьютер - это не просто большой прямоугольный черный ящик под столом или небольшое портативное устройство, работающее на ваших коленях. Компьютеры - это повсюду лежащие устройства, которые выполняют вычисления, общаются и хранят данные. Основываясь на этом определении, мы хотели бы представить наш новый продукт - ODYSSEY - X86J4105 .

ODYSSEY - это серия SBC (одноплатный компьютер), позволяя легко создавать приложения для пограничных вычислений. Одиссея - X86J4105 основан на Intel Celeron J4105, Quad-Core 1.ЦП с тактовой частотой 5 ГГц до 2,5 ГГц. Он имеет все замечательные функции, которые нужны стандартному компьютеру, включая 8 ГБ оперативной памяти LPDDR4, 64 ГБ памяти eMMC (опционально), встроенный Wi-Fi / BLE, двойной Порты Gigabyte Ethernet, аудиовход и выход, порты USB, HDMI, SATA Разъемы, PCIe и др.

Благодаря простому подключению к ODYSSEY - X86J4105 к мыши, клавиатуре и монитору, вы сразу получите Desktop Mini PC. С версиями eMMC у вас даже предустановлена ​​Windows 10 Enterprise!

Что можно делать с Odyssey, кроме создания мини-ПК?

С ODYSSEY - X86J4105 вы можете создать свой собственный NAS (Сетевое хранилище), ваш высокопроизводительный виртуальный маршрутизатор или 4G LTE Шлюз в ваших приложениях IoT.На борту есть ядро ​​ATSAMD21, ARM Cortex-M0 + MCU, позволяющий программировать Arduino на платформе x86. Raspberry Pi совместимый 40-контактный разъем позволяет использовать сотни Pi HAT на рынке. Все Эти функции предоставляют безграничные возможности использования ODYSSEY - X86J4105.

ODYSSEY - X86J4105 - это больше, чем просто компьютер. Со встроенным сопроцессором Arduino его можно использовать для подключения датчиков, гироскопа и многого другого. Вы также можете использовать ODYSSEY для своих проектов робототехники, медиацентра, кластера серверов, шлюза Интернета вещей, маршрутизатора и т. Д.Почему бы вам не начать путешествие в мир Интернета вещей с ODYSSEY уже сегодня!

Как определить, какая у вас ОС Windows 32-битная (x86) или 64-битная (x64)?

Теперь вы знаете, в чем разница между архитектурой x86 и архитектурой x64, как проверить, является ли ваш компьютер системой x86 или x64?

Что ж, вот как проверить, работает ли на вашем компьютере 32-разрядная система или 64-разрядная система для ОС Windows, всего за один шаг

Все, что вам нужно сделать, это:

  • Нажмите клавиши Windows + X, чтобы открыть меню опытного пользователя, и щелкните систему.
  • Прокрутите вниз, и вы сможете увидеть тип своей системы в технических характеристиках устройства

Следите за нами и ставьте лайки:

Продолжить чтение

.

Смотрите также