- Главная
- Информатика
- Алгоритм работы процессора
Содержание
- 2. Формат команды процессора N (1,2,…) байт (в зависимости от архитектуры) Код команды Числовая комбинация, определяющая действия
- 4. 1) Как правило, ассемблерная строка однозначно соответствует одной процессорной команде. 2) Команда языка Ассемблера имеет следующую
- 5. Количество операндов в команде может быть различным, в большинстве современных процессоров — от 0 до 3.
- 7. Набор команд микропроцессора
- 9. Например
- 12. Количество команд для разных типов ЭВМ колеблется от малых десятков до сотен. В таком множестве разобраться
- 15. Постоянно происходит технический прогресс и особенно разработка компьютеров не стоит на месте, совсем недавно лучшими были
- 16. Регистр eax является 32-х разрядным. Если представить его значение в двоичной системе счисления как последовательность из
- 18. По назначению регистры различаются на: аккумулятор — используется для хранения промежуточных результатов арифметических и логических операций
- 19. Регистры общего назначения. 32-битные регистры EAX (аккумулятор), EBX (база), ECX (счетчик), EDX (регистр данных) могут использоваться
- 20. Примеры команд с регистрами Команды пересылки и загрузки данных: - MOV R1,R2 – пересылка из регистра
- 21. Остальные четыре регистра – ESI (индекс источника), EDI (индекс приемника), EBP (указатель базы), ESP (указатель стека)
- 22. В FLAGS каждый бит является флагом, то есть устанавливается в 1 при определенных условиях или установка
- 24. Скачать презентацию
Формат команды процессора
N (1,2,…) байт (в зависимости от архитектуры)
Код команды
Числовая комбинация,
Формат команды процессора
N (1,2,…) байт (в зависимости от архитектуры)
Код команды
Числовая комбинация,
Операнд 1
Данные для команды или указание, откуда взять данные для команды
Операнд M
…
1) Как правило, ассемблерная строка однозначно соответствует одной процессорной команде.
2) Команда
1) Как правило, ассемблерная строка однозначно соответствует одной процессорной команде.
2) Команда
Меткаl: КОП Оп1,Оп2,… ;
пример команды на языке ассемблера
L1: mov r1, #12A9h ; Загрузка регистра константой
Команды микропроцессора
Данный оператор содержит команду пересылки, которая загружает константу 12A9h в регистр процессора r1. Константа задана программистом в виде шестнадцатиричного числа.
Оператор включает в свой состав следующие поля:
Метка — это символическое обозначение адреса.
В мнемонике команды, приведенной выше, метка обозначает адрес, начиная с которого байты данной команды будут расположены в ОЗУ после загрузки программы в память. Имя метки часто используется как операнд в командах переходов.
КОП — мнемоническое обозначение кода операции, выполняемой данной командой,
например mov — переслать
Оп1, Оп2,… — символические обозначения операндов, обычно они разделяются запятыми (хотя в некоторых Ассемблерах для разделения операндов используется пробел).
Количество операндов в команде может быть различным, в большинстве современных процессоров
Количество операндов в команде может быть различным, в большинстве современных процессоров
Например, команда сложения
add sum,op1,op2
содержит указания на два операнда-приемника (слагаемые) — op1 и op2, а также указание на элемент данных (sum), куда команде следует поместить результат.
Количество операндов, которые программист может указать в команде, определено отдельно для каждой команды конкретного процессора его разработчиками. Для многих команд делают допустимым несколько форматов.
В Ассемблерах процессоров фирмы Intel, по большей части, операнды-источники записываются левее операндов-приемников.
В Ассемблерах других фирм это может быть наоборот. В качестве операнда можно использовать метку, в этом случае метка будет обозначать адрес, с которого располагается в памяти соответствующий операнд.
Хотя каждый процессор имеет свой Ассемблер (соответствующий его системе команд), многие мнемонические обозначения в разных Ассемблерах одинаковы для одинаковых операций.
Этот факт сильно облегчает изучение следующего Ассемблера (и процессора), после того, как хотя бы один уже изучен.
Набор команд микропроцессора
Набор команд микропроцессора
Например
Например
Количество команд для разных типов ЭВМ колеблется от малых десятков до
Количество команд для разных типов ЭВМ колеблется от малых десятков до
В разных книгах эта классификация тоже сделана по-разному. Выделяют от 3 до более 10 групп.
Постоянно происходит технический прогресс и особенно разработка компьютеров не стоит на
Постоянно происходит технический прогресс и особенно разработка компьютеров не стоит на
Битность процессора напрямую связана с битностью регистров и их аббревиатурой, поэтому:
AX, CX, SP, IP, ... - характеризуют 16 битные регистры EAX, ECX, ESP, EIP, ... - 32 битные (добавляется буква E от англ. Extended - "расширенный") RAX, RCX, RSP, RIP, ... - 64 битные (добавляется буква R)
Регистр eax является 32-х разрядным. Если представить его значение в двоичной
Регистр eax является 32-х разрядным. Если представить его значение в двоичной
По назначению регистры различаются на:
аккумулятор — используется для хранения промежуточных результатов
По назначению регистры различаются на:
аккумулятор — используется для хранения промежуточных результатов
флаговые — хранят признаки результатов арифметических и логических операций;
общего назначения — хранят операнды арифметических и логических выражений, индексы и адреса;
индексные — хранят индексы исходных и целевых элементов массива;
указательные — хранят указатели на специальные области памяти (указатель текущей операции, указатель базы, указатель стека);
сегментные — хранят адреса и селекторы сегментов памяти;
управляющие — хранят информацию, управляющую состоянием процессора, а также адреса системных таблиц.
Начиная с 80386 процессоры Intel предоставляют 16 основных регистров для пользовательских программ плюс еще 11 регистров для работы с мультимедийными приложениями (MMX(Multimedia Extension)) и числами с плавающей запятой (FPU/NPX (Float Point Unit / Numerical Processor Extension)). Все команды так или иначе изменяют значения регистров, и всегда быстрее и удобнее обращаться к регистру, чем к памяти.
Регистры общего назначения.
32-битные регистры EAX (аккумулятор), EBX (база), ECX (счетчик), EDX
Регистры общего назначения.
32-битные регистры EAX (аккумулятор), EBX (база), ECX (счетчик), EDX
регистр AX — умножение, деление, обмен с устройствами ввода/вывода (команды ввода и вывода);
регистр BX — базовый регистр в вычислениях адреса;
регистр CX — счетчик циклов;
регистр DX — определение адреса ввода/вывода.
Для регистров данных существует возможность раздельного использования обоих байтов (например, для регистра AX они имеют обозначения AL – младший байт и AH — старший байт).
Примеры команд с регистрами
Команды пересылки и загрузки данных:
- MOV R1,R2
Примеры команд с регистрами
Команды пересылки и загрузки данных:
- MOV R1,R2
- LD AX B(D) – пересылка из ячейки памяти, адрес которой записан в регистровой паре ВE (DE), в аккумулятор;
Команды сложения :
- ADD R – сложение содержимого аккумулятора с содержимым регистра R (A) ← (A) + (R);
- ADI_B2 – сложение содержимого аккумулятора со вторым байтом команды (A) ← (A) + B2;
- ADC R – сложение содержимого аккумулятора с содержимым регистра R и признаком (С) (А)← (A) + (R) + (С);
Во многих процессорах выделяется специальный регистр, называемый аккумулятором (то есть накопителем). При этом, как правило, только этот регистр-аккумулятор может участвовать во всех операциях, только через него может производиться взаимодействие с устройствами ввода/вывода. Иногда в него же помещается результат любой выполненной команды (в этом случае говорят даже об "аккумуляторной" архитектуре процессора).
Остальные четыре регистра – ESI (индекс источника), EDI (индекс приемника), EBP
Остальные четыре регистра – ESI (индекс источника), EDI (индекс приемника), EBP
Регистры ESI и EDI необходимы в строковых операциях, EBP и ESP – при работе со стеком.
В FLAGS каждый бит является флагом, то есть устанавливается в
В FLAGS каждый бит является флагом, то есть устанавливается в
Все флаги, расположенные в старшем слове регистра, имеют отношение к управлению защищенным режимом, поэтому будем рассматривать только регистр FLAGS.