Сколько команд в процессоре intel

Обновлено: 04.07.2024

Система команд - это набор допустимых для данного процессора управляющих кодов и способов адресации данных. Система команд жестко связана с конкретным типом процессора, поскольку определяется аппаратной структурой блока дешифрации команд, и обычно не обладает переносимостью на другие типы процессоров (хотя может иметь место совместимость “снизу-вверх” в рамках серии процессоров, как, например, в серии i 80 x 86 ).

Типовая структура формата команды:

1.КОП - код операции - двоичный код, однозначно указывающий процессору на выполнение конкретных действий (пересылка, сложение и т.п.), и определяющий при этом форму задания адресов операндов; 1 или 2 байта;

2.АЧ - адресная часть - двоичное число, которое может представлять собой адрес (адреса) операндов, значение операнда, адрес следующей команды (адрес перехода, передачи управления). 1 до 4 байт.

Индексная (автоинкрементная и автодекрементная ) адресация. Её назначение.

При обработке больших массивов данных, выбираемых последовательно друг за другом, нет смысла каждый раз обращаться в память за новым адресом. Для этого достаточно автоматически менять содержимое специального регистра, называемого индексным, чтобы выбирать последовательно размещенные данные. Индексный регистр является косвенным. Его загружают начальным адресом массива(специальной командой). Дальнейшая адресация осуществляется путем автоматического добавления или вычитания единицы или шага адреса из его содержимого.


Рисунок. Формирование адреса операнда при индексной адресации.

Три вида индексных операции:

а) засылка в индексный регистр начального значения

б) изменение индекса

в) проверка окончания циклических вычислений.

Часто в команду с индексной адресацией включают признак, определяющий шаг индексации Т (Т=1,2,4 и т.д.), что позволяет осуществлять адресацию массивов через байт, слово, двойное слово и т.д.

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

В систему команд традиционно входят такие группы:

· пересылка данных (регистр-регистр, регистр-память, память-регистр, специфические команды типа память-память);все команды пересылки выполняют, по сути, копирование данных из ячейки-источника в ячейку-приемник;

· логические операции ( and , or , xor , not ) и операции сдвига;

· ввод-вывод – специфические команды для передачи данных между процессором и устройствами ввода-вывода, размещенными в адресном пространстве ввода-вывода;

· передача управления – при выполнении такой команды процессор записывает в счетчик команд PC адрес следующей команды, взятый из адресной части текущей команды;

· специальные – останов, сброс, управление прерываниями, управление режимом пониженного энергопотребления и т.п.

Основные группы команд МП.

По характеру операций различают следующие группы команд:

a) команда арифметических операций для чисел с ПТ и ФТ.

b) команда десятичной арифметики.

c) команда логических операций.

d) команда передачи кодов.

e) команда операций ввода/вывода.

f) команда управления порядком исполнения команд (передача управления).

g) команда управления режимом работы.

Рассмотрим особенности некоторых групп команд.

Команды передачи управления

Для определения адреса текущей команды МП имеет в своем составе специальный регистр указатель адреса команды или счетчик команд PC , IP .

Модификация РС происходит сразу после выборки команды (или ее байта). Поскольку чаще всего используется естественная адресация команд, то возникает необходимость в командах передачи управления для реализации ветвления алгоритмов. Для этого используются специальные команды :

n команды перехода

n команды замещения

n команды смены состояния процессора

n команды запроса прерывания

1. команды перехода.

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

Используются команды безусловного и условного переходов.

1.1 Команды безусловного перехода


Переход может осуществляться и переход по косвенному адресу

На косвенную адресацию указывает либо КОП , либо специальный бит в поле команды

1.2 Команды условного перехода

Адрес следующей команды зависит от выполнения некоторого условия :


М- код признака ( маска условия )

Команды могут быть с относительной и косвенной адресацией.


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

Перед выполнением передачи управления содержимое РС, указывающее на следующую команду программы запоминается по адресу, указываемого в команде (обычно регистр или стек). При этом организуется дополнительная команда возврата из подпрограммы, которая восстанавливает содержимое счетчика команд.


Команда замещения - вместо очередной команды используется замещающая команда, находящаяся по адресу, указанному в команде “выполнить”. Выполнение этой замещающей команды не должно приводить к изменению РС. После исполнения этой команды продолжается естественный ход программы (это не JMP).

Команда “выполнение” - аналог подпрограммы, состоящей из одной команды без сохранения адреса возврата.

В настоящее время в ЭВМ типа IBM РС используются более 1000 различных команд. По числу адресов команды делятся на безадресные, одноадресные и двухадресные.

- в безадресных командах процессор не выполняет каких-либо операций с данными, т.е. с операндами. Команда содержит только код операции (КОП) и занимает все 16 разрядов, например,

HLT- останов процессора;

WAIT- ожидание прерываний;

- одноадресные команды содержат КОП и один операнд источника или приемника (КОП dd, КОП ss), например,

INC AX- инкремент, увеличить на единицу, АХ (АХ=: АХ+1);

DEC BX- декремент, уменьшить на единицу, ВХ (ВХ=: ВХ-1);

JMP m1 - переход к команде с меткой (адресом ) m1

- двухадресные команды содержат код операции, операнд приёмника и операнд источника (КОП dd, ss), например,

MOV AX, BX- пересылка содержимого регистра ВХ в регистр АХ.

CMP AX,104 -сравнить содержимое регистра AX с значением 104

ROL BX, 3 - содержимое регистра BX сдвинуть влево на 3 разряда

Ниже приводятся наиболее употребимые команды. Разумеется, что программирование на языке Ассемблера невозможно без знания системы команд.

При рассмотрении программ следует четко представлять действия процессора с операндами, входящими в команду.

Представления о данных, их размерах, их расположении в аппаратуре ЭВМ является необходимым для грамотного и успешного проектирования систем управления электроприводами и электроавтоматикой. Процесс компьютерного выполнения задачи можно сравнить с мастером, который по картинке создает мозаику. Картинка - это программа, которую следует воссоздать в мозаике , она перед глазами мастера, выполняющего роль процессора. Он по картинке выбирает из подходящей кучки (сегмент данных) камешек заданного цвета (операнд) укладывает на мозаичное полотно. Структура данных, ее четкое и удачное формирование предшествует программному коду.

ADC(Addition with Carry) - Сложение с переносом

  • сложить два операнда;
  • поместить результат в первый операнд: приемник = приемник+источник;
  • в зависимости от результата установить флаги.

ADD(ADDition) - Сложение

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

AND(logical AND) - Логическое И

  • выполнить операцию логического умножения над операндами источник и приемник: каждый бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0;
  • записать результат операции в приемник;
  • установить флаги.

BT(Bit Test) - Проверка битов

  • получить бит по указанному номеру позиции в операнде источник;
  • установить флаг согласно значению этого бита.

CALL(CALL) - Вызов процедуры или задачи

· в стек заносится содержимое указателя команд ip и в этот же регистр загружается новое значение адреса, соответствующее метке;

· r16 или m16 — определяют регистр или ячейку памяти, содержащие смещения в текущем сегменте команд, куда передается управление. При передаче управления в стек заносится содержимое указателя команд ip;

CMP(CoMPare operands) - Сравнение операндов

  • выполнить вычитание (операнд1-операнд2);
  • в зависимости от результата установить флаги, операнд1 и операнд2 не изменять (то есть результат не запоминать).

DEC (DECrement operand by 1) - Уменьшение операнда на единицу

Алгоритм работы: команда вычитает 1 из операнда.

DIV(DIVide unsigned) - Деление беззнаковое

Для команды необходимо задание двух операндов — делимого и делителя. Делимое задается неявно и размер его зависит от размера делителя, который указывается в команде:

  • если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah;
  • если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;

HLT(HaLT) - Остановка

Алгоритм работы: перевод микропроцессора в состояние остановки.

IN (INput operand from port) -Ввод операнда из порта

Передает байт, слово из порта ввода-вывода в один из регистров al/ax.

INC(INCrement operand by 1) -Увеличить операнд на 1

Алгоритм работы: команда увеличивает операнд на единицу.

INT(INTerrupt) - Вызов подпрограммы обслуживания прерывания

  • записать в стек регистр флагов flags и адрес возврата. При записи адреса возврата вначале записывается содержимое сегментного регистра cs, затем содержимое указателя команд ip;
  • сбросить в ноль флаги i и t;
  • передать управление на программу обработки прерывания с указанным номером. Механизм передачи управления зависит от режима работы микропроцессора.

JCC (Jump if condition) - Переход, если выполнено условие

Проверка состояния флагов в зависимости от кода операции (оно отражает проверяемое условие):

  • если проверяемое условие истинно, то перейти к ячейке, обозначенной операндом;
  • если проверяемое условие ложно, то передать управление следующей команде.

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

Команда Условие перехода
JA если выше
JAE если выше или равно
JB если ниже
JBE если ниже или равно
JC если перенос
JZ если 0
JG если больше
JGE если больше или равно
JL если меньше
JLE если меньше или равно
JNA если не выше
JNAE если не выше или равно
JNB если не ниже
JNBE если не ниже или равно
JNC если нет переноса
JNE если не равно
JNG если не больше
JNGE если не больше или равно
JNL если не меньше
JNLE если не меньше или равно
JNO если нет переполнения
JNP если количество единичных битов результата нечетно (нечетный паритет)
JNS если знак плюс (знаковый (старший) бит результата равен 0)
JNZ если нет нуля
JO если переполнение
JP если количество единичных битов результата четно (четный паритет)
JPE то же, что и JP, то есть четный паритет
JPO то же, что и JNP
JS если знак минус (знаковый (старший) бит результата равен 1)
JZ если ноль

Логические условия "больше" и "меньше" относятся к сравнениям целочисленных значений со знаком, а "выше и "ниже" — к сравнениям целочисленных значений без знака. Если внимательно посмотреть, то у многих команд можно заметить одинаковые значения флагов для перехода. Это объясняется наличием нескольких ситуаций, которые могут вызвать одинаковое состояние флагов. В этом случае с целью удобства ассемблер допускает несколько различных мнемонических обозначений одной и той же машинной команды условного перехода. Эти команды ассемблера по действию абсолютно равнозначны, так как это одна и та же машинная команда. Для реализации межсегментных переходов необходимо комбинировать команды условного перехода и команду безусловного перехода jmp. При этом можно воспользоваться тем, что практически все команды условного перехода парные, то есть имеют команды, проверяющие обратные условия.

JMP(JuMP) - Переход безусловный

Команда jmp в зависимости от типа своего операнда изменяет содержимое либо только одного регистра ip, либо обоих регистров cs и ip:

  • если операнд в команде jmp — метка в текущем сегменте команд (a8, 16), то ассемблер формирует машинную команду, операнд которой является значением со знаком, являющимся смещением перехода относительно следующей за jmp команды. При этом виде перехода изменяется только регистр ip;
  • если операнд в команде jmp — символический идентификатор ячейки памяти, то ассемблер предполагает, что в ней находится адрес, по которому необходимо передать управление. Этот адрес может быть трех видов:

-значением абсолютного смещения метки перехода относительно начала сегмента кода;

-дальним указателем на метку перехода в реальном и защищенном режимах, содержащим два компонента адреса — сегментный и смещение;

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

Для понимания различий механизмов перехода в реальном и защищенном режимах нужно помнить следующее. В реальном режиме микропроцессор просто изменяет cs и ip в соответствии с содержимым указателя в памяти. В защищенном режиме микропроцессор предварительно анализирует байт прав доступа AR в дескрипторе, номер которого определяется по содержимому сегментной части указателя. В зависимости от состояния байта AR микропроцессор выполняет либо переход, либо переключение задач.

LOOP (LOOP control by register cx) - Управление циклом по cx

  • выполнить декремент содержимого регистра cx;
  • анализ регистра cx:
    • если cx=0, передать управление следующей за loop команде;
    • если cx=1, передать управление команде, метка которой указана в качестве операнда loop.

    MOV(MOVe operand) - Пересылка операнда

    Алгоритм работы: копирование второго операнда в первый операнд.

    MUL(MULtiply) - Умножение целочисленное без учета знака

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

    • если операнд, указанный в команде — байт, то второй сомножитель должен располагаться в al;
    • если операнд, указанный в команде — слово, то второй сомножитель должен располагаться в ax;

    Результат умножения помещается также в фиксированное место, определяемое размером сомножителей:

    • при умножении байтов результат помещается в ax;
    • при умножении слов результат помещается в пару dx:ax;

    NEG(NEGate operand) - Изменить знак операнда

    • выполнить вычитание (0 – источник) и поместить результат на место источника;
    • если источник=0, то его значение не меняется.

    NOP (No OPeration) - Нет операции

    Алгоритм работы: не производит никаких действий.

    NOT(NOT operand) - Инвертирование операнда

    Алгоритм работы: инвертировать все биты операнда источника: из 1 в 0, из 0 в 1.

    OR (logical OR) - Логическое включающее ИЛИ

    • выполнить операцию логического ИЛИ над битами операнда назначения, используя в качестве маски второй операнд — маска. При этом бит результата равен 0, если соответствующие биты операндов маска и назначения равны 0, в противном случае бит равен 1;
    • записать результат операции в источник (операнд маска остается неизменным);
    • установить флаги.

    OUT(OUT operand to port) -Вывод операнда в порт

    Передать байт, слово, из регистра al/ax в порт, номер которого определяется первым операндом.

    POP (POP operand from the stack) - Извлечение операнда из стека

    · загрузить в приемник содержимое вершины стека (адресуется парой ss:sp);

    · увеличить содержимое sp на 2 байта для use16.

    PUSH (PUSH operand onto stack) - Размещение операнда в стеке

    • уменьшить значение указателя стека sp на 2 ;
    • записать источник в вершину стека (адресуемую парой ss:sp).

    RCL (Rotate operand through Carry flag Left) - Циклический сдвиг операнда влево через флаг переноса.

    • сдвиг всех битов операнда влево на один разряд, при этом старший бит операнда становится значением флага переноса c;
    • одновременно старое значение флага переноса c вдвигается в операнд справа и становится значением младшего бита операнда;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда команды rcl.

    RCR (Rotate operand through Carry flag Right) - Циклический сдвиг операнда вправо через флаг переноса.

    • сдвиг всех битов операнда вправо на один разряд; при этом младший бит операнда становится значением флага переноса c;
    • одновременно старое значение флага переноса — в операнд слева и становится значением старшего бита операнда;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда команды rcr.

    RET(RETurn from procedure)Возврат из процедуры

    Алгоритм работы: восстановить из стека содержимое ip;

    ROL(Rotate operand Left) - Циклический сдвиг операнда влево

    • сдвиг всех битов операнда влево на один разряд, при этом старший бит операнда вдвигается в операнд справа и становится значением младшего бита операнда;
    • одновременно выдвигаемый бит становится значением флага переноса c;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда.

    ROR- Циклический сдвиг операнда вправо. ASCII-коррекция после сложения

    • сдвиг всех битов операнда вправо на один разряд, при этом младший бит операнда вдвигается в операнд слева и становится значением старшего бита операнда;
    • одновременно этот младший бит операнда становится значением флага переноса c;
    • старое значение флага переноса c вдвигается в операнд слева и становится значением старшего бита операнда;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда.

    SAL (Shift Arithmetic operand Left) - Сдвиг арифметический операнда влево.

    • сдвиг всех битов операнда влево на один разряд, при этом выдвигаемый слева бит становится значением флага переноса c;
    • одновременно справа в операнд вдвигается нулевой бит;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда.

    SAR (Shift Arithmetic operand Right) - Сдвиг арифметический операнда вправо.

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

    SBB(SuBtract with Borrow) -Вычитание с заемом.

    • выполнить сложение операнд_2=операнд_2+(c);
    • выполнить вычитание операнд_1=операнд_1-операнд_2;

    SHL (SHift logical Left) - Сдвиг логический операнда влево.

    • сдвиг всех битов операнда влево на один разряд, при этом выдвигаемый слева бит становится значением флага переноса c;
    • одновременно слева в операнд вдвигается нулевой бит;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда.

    SHR - Сдвиг логический операнда вправо. ASCII-коррекция после сложения

    • сдвиг всех битов операнда вправо на один разряд; при этом выдвигаемый справа бит становится значением флага переноса c;
    • одновременно слева в операнд вдвигается нулевой бит;
    • указанные выше два действия повторяются количество раз, равное значению второго операнда.

    SUB(SUBtract) - Вычитание.

    • выполнить вычитание операнд_1=операнд_2-операнд_1;
    • установить флаги.

    TEST(TEST operand) -Логическое И.

    • выполнить операцию логического умножения над операндами приемник и источник: бит результата равен 1, если соответствующие биты операндов равны 1, в остальных случаях бит результата равен 0; Результат отражен во флаге ZF
    • установить флаги.

    XOR- Логическое исключающее ИЛИ. ASCII-коррекция после сложения

    • выполнить операцию логического исключающего ИЛИ над операндами: бит результата равен 1, если значения соответствующих битов операндов различны, в остальных случаях бит результата равен 0;
    • записать результат сложения в приемник;
    • установить флаги.

    1.В.Юров Ассемблер, Питер, 2001.

    2.Мартыничев А.К. Программное обеспечение компьютерных систем управления оборудованием, Чебоксары, 2010.

    3.Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT, AT :пер. с англ. М.: Финансы и статистика,1992. 544 с.: ил.

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

    Процессоры от данной компании более распространены и весьма неплохо распиарены и это не удивительно.

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

    Семейства процессоров

    Начнем с семейства процессор
    На данный момент существует 6 семейств процессоров:
    1. Core -Десктопные решения. Используюсь в основном в домашних пк. Данное семейство процессоров нацелено на общий рынок потребителей, и предоставляет от простых i3 процессоров для использования в не требовательных задачах (офис, видео и т.д), i5 это что то среднее между повседневными задачами и тяжелыми вычислениями, до i7 и i9 процессоров для выполнения сложных вычислений и работе с большими массивами данных.

    2.Xeon- Серверные решения. Используются на серверах в дата-центрах или в других местах где есть сервера. Выдерживают колоссальную нагрузки и могут работать на предельных частотах.Многие хорошо разгоняются, что дает гибкость при использовании.

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

    4.PENTIUM и CELERON — Бюджетные решения для маломощных ноутбуков или ПК. Отличный выбор для покупателей бюджетных систем, которым необходимы базовые функциональные возможности по доступной цене. Отлично подходят для повседневной работы на компьютере, например для базовых офисных задач, просмотра веб-страниц с высоким качеством графики, редактирования фотографий и других обыденных и не требовательных задач.
    Я объединил эти 2 семейства т.к описание на родном сайте Intel было совмещенное + по сути эти процессоры очень похожи.

    5.QUARK- Решение для плат или девайсов Интернета-вещей (IoT). Используется для встраиваемых применений, включая решения со сверхнизким энергопотреблением и носимые устройства.

    Техпроцесс

    Основным элементом в процессорах являются транзисторы – миллионы и миллиарды транзисторов. Из этого и вытекает принцип работы процессора. Транзистор, может, как пропускать, так и блокировать электрический ток, что дает возможность логическим схемам работать в двух состояниях – включения и выключения, то есть во всем хорошо известной двоичной системе (0 и 1).

    Техпроцесс – это, по сути, размер транзисторов. А основа производительности процессора заключается именно в транзисторах. Соответственно, чем размер транзисторов меньше, тем их больше можно разместить на кристалле процессора.

    Новые процессоры Intel выполнены по техпроцессу 22 нм. Нанометр (нм) – это 10 в -9 степени метра, что является одной миллиардной частью метра. Чтобы вы лучше смогли представить насколько это миниатюрные транзисторы, приведу один интересный факт: « На площади среза человеческого волоса, с помощью усилий современной техники, можно разместить 2000 транзисторных затворов!»

    Поколения

    История насчитывает 9 поколений процессоров

    • Первое поколение (2009, архитектура Nehalem)
    • Первое поколение (2010, Westmere)
    • Второе поколение (2011, Sandy Bridge)
    • Третье поколение (2012, Ivy Bridge)
    • Четвертое поколение (2013, Haswell)
    • Пятое поколение (2015, Broadwell)
    • Шестое поколение (2015, Skylake)
    • Седьмое поколение (2017, Kaby Lake)
    • Восьмое поколение (2017, Coffee Lake)
    • Девятое поколение(2019, Coffee Lake Refresh)

    Сокет (socket)

    Socket — гнездовой или щелевой разъём (гнездо) в материнской плате, предназначенный для установки в него центрального процессора. Использование разъёма вместо непосредственного припаивания процессора на материнской плате упрощает замену процессора для модернизации или ремонта компьютера, а также значительно снижает стоимость материнской платы. На ноутбучных материнских платах процессор распаен на плате, что исключает возможность его простой замены на другой.
    Вот список сокетов для процессоров начиная с поколения Nehalem (2009г.):

    • Socket H (LGA1156) — Core i7/Core i5/Core i3 с интегрированным двуканальным контроллером памяти и без соединения QuickPath (2009 год)
    • Socket H2 (LGA1155) — замена Socket H (LGA1156) (2011 год)
    • Socket R (LGA2011) — Core i7 и Xeon с интегрированным четырёхканальным контроллером памяти и двумя соединениями QuickPath. Замена Socket B (LGA1366) (2011 год)
    • Socket B2 (LGA1356) — Core i7 и Xeon с интегрированным трехканальным контроллером памяти и соединениям QuickPath. Замена Socket B (LGA1366) (2012 год)
    • Socket H3 (LGA1150) — замена Socket H2 (LGA1155) (2013 год)
    • Socket R3 (LGA2011-3) — модификация Socket R (LGA2011) (2014 год)
    • Socket H4 (LGA 1151) — замена Socket H3 (LGA1150) (2015 год)
    • Socket R4 (LGA 2066) — замена Socket R3 (2017 год)

    Чипсет

    Сhipset — набор микросхем, спроектированных для совместной работы с целью выполнения набора заданных функций.

    Так, в компьютерах чипсет, размещаемый на материнской плате, выполняет функцию связующего компонента (моста), обеспечивающего взаимодействие центрального процессора (ЦП) c различными типами памяти, устройствами ввода-вывода, контроллерами и адаптерами ПУ, как непосредственно через себя (и имея некоторые из них в своём составе), так и через другие контроллеры и адаптеры, с помощью многоуровневой системы шин. Так как ЦП, как правило, не может взаимодействовать с ними напрямую. Чипсет определяет функциональность системной платы. Являясь по сути основой платформы/системной платы,чипсеты встречаются и в других устройствах.


    .386

    codes segment use 16

    assume CS:codes

    codes ends

    data segment use16

    data ends


    Кроме этого, необходимо разрешить компоновщику обрабатывать 32-разрядные операнды, что для компоновщика TLINK осуществляется указанием ключа /3.
    Отдельные статьи, начинающиеся с обозначений 386+ , 486+ и Pentium+, посвящены командам, отсутствующим в МП 86. Многие из этих команд (например, команды проверки бита Ы или условной установки байта set) носят прикладной характер и могут использоваться в обычных программах реального режима.
    Новые команды, реализованные впервые в МП 80386, сохраняют свое значение и в более современных процессорах. Для того, чтобы ассемблер распознавая команды МП 80386, в программе должна присутствовать директива .386.
    Новые команды, реализованные впервые в МП 80486, сохраняют свое значение и в процессорах Pentium. Для того, чтобы ассемблер распознавая команды МП 80486, в программе должна присутствовать директива .486.
    Для того, чтобы ассемблер распознавал команды, реализованные впервые в процессоре Pentium, в программе должна присутствовать директива .586.
    Ряд команд требует для своего выполнения специальных условий, обычно отсутствующих в приложениях MS-DOS. Так, например, команда bound (проверки индекса массива на выход за границы) при обнаружении выхода за границы генерирует прерывание с вектором 5. Это прерывание в защищенном режиме как раз и является исключением нарушения границ массива, но в приложениях MS-DOS используется для вывода на печать содержимого экрана. Поэтому использование таких команд в реальном режиме затруднено.
    Отдельные статьи, начинающиеся с обозначения 386Р+, посвящены привилегированным командам современных процессоров, работающих в расширенном режиме, и отсутствующим в МП 86. Для использования этих команд в программу необходимо включить директиву ассемблера .386Р (можно также использовать директивы .486Р или .586Р). Если при этом программа реализуется, как 16-разрядное приложение MS-DOS, сегмент команд должен иметь описатель usc16 (при наличии директивы .386 транслятор по умолчанию создает 32-разрядное приложение). Следует, однако, иметь в виду, что привилегированные команды защищенного режима предназначены для использования не в прикладных программах, а в операционных системах защищенного режима. В прикладных программах привилегированные команды приходится использовать лишь в весьма специальных случаях, когда, например, прикладная программа запускается в реальном режиме под управлением MS-DOS, но затем переводит процессор в защищенный режим и далее использует преимущества этого режима. Типичный пример программы такого рода - приложение DOS, которому требуется использовать всю оперативную память компьютера. В настоящей книге, посвященной, в основном, реальному режиму, дается лишь перечисление привилегированных команд защищенного режима.

    Читайте также: