SlideShare a Scribd company logo
1 of 32
Лекция №10
В общем случае система команд процессора включает
в себя следующие четыре основные группы команд:
команды пересылки данных;
арифметические команды;
логические команды;
команды переходов.
 Команды пересылки данных не требуют
выполнения никаких операций над
операндами. Операнды просто пересылаются
(точнее, копируются) из источника (Source) в
приемник (Destination).
 Источником и приемником могут быть
внутренние регистры процессора, ячейки
памяти или устройства ввода/вывода. АЛУ в
данном случае не используется.
 Арифметические команды выполняют
операции сложения, вычитания, умножения,
деления, увеличения на единицу
(инкрементирования), уменьшения на
единицу (декрементирования) и т.д.
 Этим командам требуется один или два
входных операнда. Формируют команды один
выходной операнд.
 Логические команды производят над
операндами логические операции, например,
логическое И, логическое ИЛИ, исключающее
ИЛИ, очистку, инверсию, разнообразные
сдвиги (вправо, влево, арифметический
сдвиг, циклический сдвиг).
 Этим командам, как и арифметическим,
требуется один или два входных операнда, и
формируют они один выходной операнд.
 Команды переходов предназначены для
изменения обычного порядка последователь-
ного выполнения команд. С их помощью
организуются переходы на подпрограммы и
возвраты из них, всевозможные циклы,
ветвления программ, пропуски фрагментов
программ и т.д. 
 Команды переходов всегда меняют содержимое
счетчика команд. Переходы могут быть
условными и безусловными. Именно эти
команды позволяют строить сложные алгоритмы
обработки информации.
 В соответствии с результатом каждой
выполненной команды устанавливаются или
очищаются биты регистра состояния
процессора (PSW). Но надо помнить, что не
все команды изменяют все имеющиеся
в PSW флаги. Это определяется
особенностями каждого конкретного
процессора.
Функции:
загрузка (запись) содержимого во
внутренние регистры процессора;
сохранение в памяти содержимого
внутренних регистров процессора;
копирование содержимого из одной
области памяти в другую;
запись в устройства ввода/вывода и
чтение из устройств ввода/вывода.
 В некоторых процессорах все эти функции выполняются одной
единственной командой MOV (для байтовых пересылок
— MOVB) но с различными методами адресации операндов.
 Для загрузки регистров могут использоваться команды
загрузки, причем для разных регистров — разные команды (их
обозначения обычно строятся с использованием
слова LOAD — загрузка).
 Часто выделяются специальные команды для сохранения в
стеке и для извлечения из стека (PUSH — сохранить в
стеке, POP — извлечь из стека). Эти команды выполняют
пересылку с автоинкрементной и с автодекрементной
адресацией.
Стек (англ. stack — стопка) — структура данных с методом
доступа к элементам LIFO (англ. Last In — First Out, «последним
пришел — первым вышел»).
 Иногда в систему команд вводится
специальная команда MOVS для строчной
(или цепочечной) пересылки данных
(например, в процессоре 8086).
Эта команда пересылает не одно слово или байт,
а заданное количество слов или байтов
(MOVSB), то есть инициирует не один цикл
обмена по магистрали, а несколько.
При этом адрес памяти, с которым происходит
взаимодействие, увеличивается на 1 или на 2
после каждого обращения или же уменьшается
на 1 или на 2 после каждого обращения.
В некоторых процессорах специально
выделяются функции обмена с
устройствами ввода/вывода.
Команда IN используется для ввода
(чтения) информации из устройства
ввода/вывода, а
команда OUT используется для вывода
(записи) в устройство ввода/вывода.
Обмен информацией в этом случае
производится между регистром-
аккумулятором и устройством
ввода/вывода.
Также к командам пересылки данных
относятся команды обмена инфор-
мацией (их обозначение строится на
основе слова Exchange). Может быть
предусмотрен обмен информацией
между внутренними регистрами, между
двумя половинами одного регистра
(SWAP) или между регистром и
ячейкой памяти.
Арифметические команды рассматривают
коды операндов как числовые двоичные или
двоично-десятичные коды.
Эти команды могут быть разделены на пять
основных групп:
1. команды операций с фиксированной запятой
(сложение, вычитание, умножение, деление);
2. команды операций с плавающей запятой
(сложение, вычитание, умножение, деление);
3. команды очистки;
4. команды инкремента и декремента;
5. команда сравнения.
Команды операций с фиксированной запятой работают
с кодами в регистрах процессора или в памяти как с
обычными двоичными кодами.
Команда сложения (ADD) вычисляет сумму двух кодов.
Команда вычитания (SUB) вычисляет разность двух
кодов.
Команда умножения (MUL) вычисляет произведение
двух кодов (разрядность результата вдвое больше
разрядности сомножителей).
Команда деления (DIV) вычисляет частное от деления
одного кода на другой.
Причем все эти команды могут работать как с числами
со знаком, так и с числами без знака.
 Команды операций с плавающей запятой
(точкой) используют формат представления
чисел с порядком и мантиссой (обычно эти
числа занимают две последовательные ячейки
памяти).
 В современных мощных процессорах набор
команд с плавающей запятой не
ограничивается только четырьмя
арифметическими действиями, а содержит и
множество других более сложных команд,
например, вычисление тригонометрических
функций, логарифмических функций, а также
сложных функций, необходимых при обработке
звука и изображения.
 Команды очистки (CLR) предназначены для записи
нулевого кода в регистр или ячейку памяти. Эти команды
могут быть заменены командами пересылки нулевого
кода, но специальные команды очистки обычно
выполняются быстрее, чем команды пересылки. Команды
очистки иногда относят к группе логических команд, но
суть их от этого не меняется.
 Команды инкремента (увеличения на единицу, INC) и
декремента (уменьшения на единицу, DEC) также бывают
очень удобны. Их можно в принципе заменить командами
суммирования с единицей или вычитания единицы, но
инкремент и декремент выполняются быстрее, чем
суммирование и вычитание. Эти команды требуют одного
входного операнда, который одновременно является и
выходным операндом.
Команда сравнения (обозначается CMP)
предназначена для сравнения двух входных
операндов. По сути, она вычисляет разность
этих двух операндов, но выходного операнда
не формирует, а всего лишь изменяет биты в
регистре состояния процессора (PSW) по
результату этого вычитания.
Следующая за командой сравнения команда
(обычно это команда перехода) будет
анализировать биты в регистре состояния
процессора и выполнять действия в
зависимости от их значений
Логические команды выполняют над операндами логические
(побитовые) операции, то есть они рассматривают коды
операндов не как единое число, а как набор отдельных
битов. Этим они отличаются от арифметических команд. 
Логические команды выполняют следующие основные
операции:
1. логическое И, логическое ИЛИ, сложение по модулю 2
(Исключающее ИЛИ);
2. логические, арифметические и циклические сдвиги;
3. проверка битов и операндов;
4. установка и очистка битов (флагов) регистра состояния
процессора (PSW).
Команды логических операций позволяют побитно вычислять
основные логические функции от двух входных операндов.
Кроме того, операция И (AND) используется для
принудительной очистки заданных битов (в качестве одного
из операндов при этом используется код маски, в котором
разряды, требующие очистки, установлены в нуль).
Операция ИЛИ (OR) применяется для принудительной
установки заданных битов (в качестве одного из операндов
при этом используется код маски, в котором разряды,
требующие установки в единицу, равны единице).
Операция "Исключающее ИЛИ" (XOR) используется для
инверсии заданных битов (в качестве одного из операндов
при этом применяется код маски, в котором биты,
подлежащие инверсии, установлены в единицу).
Команды требуют двух входных операндов и формируют один
выходной операнд.
Команды сдвигов позволяют побитно
сдвигать код операнда вправо (в сторону
младших разрядов) или влево (в сторону
старших разрядов).
Тип сдвига (логический, арифметический
или циклический) определяет, каково
будет новое значение старшего бита (при
сдвиге вправо) или младшего бита (при
сдвиге влево), а также определяет, будет
ли где-то сохранено прежнее значение
старшего бита (при сдвиге влево) или
младшего бита (при сдвиге вправо).
Циклические сдвиги позволяют сдвигать биты
кода операнда по кругу (по часовой стрелке
при сдвиге вправо или против часовой стрелки
при сдвиге влево). При этом в кольцо сдвига
может входить или не входить флаг переноса.
В бит флага переноса (если он используется)
записывается значение старшего бита при
циклическом сдвиге влево и младшего бита
при циклическом сдвиге вправо.
Соответственно, значение бита флага переноса
будет переписываться в младший разряд при
циклическом сдвиге влево и в старший разряд
при циклическом сдвиге вправо.
Команды проверки битов и операндов
предназначены для установки или очистки битов
регистра состояния процессора в зависимости от
значения выбранных битов или всего операнда в
целом. Выходного операнда команды не
формируют.
Команда проверки операнда (TST) проверяет весь
код операнда в целом на равенство нулю и на знак
(на значение старшего бита), она требует только
одного входного операнда.
Команда проверки бита (BIT) проверяет только
отдельные биты, для выбора которых в качестве
второго операнда используется код маски. В коде
маски проверяемым битам основного операнда
должны соответствовать единичные разряды.
Команды установки и очистки битов регистра
состояния процессора (то есть флагов)
позволяют установить или очистить любой
флаг, что бывает очень удобно.
Каждому флагу обычно соответствуют две
команды, одна из которых устанавливает его в
единицу, а другая сбрасывает в нуль.
Например, флагу переноса C (от Carry) будут
соответствовать команды CLC (очистка)
и SEC или STC (установка).
Команды переходов предназначены для
организации всевозможных циклов, ветвлений,
вызовов подпрограмм и т.д., то есть они нарушают
последовательный ход выполнения программы.
Эти команды записывают в регистр-счетчик команд
новое значение и тем самым вызывают переход
процессора не к следующей по порядку команде, а
к любой другой команде в памяти программ.
Некоторые команды переходов предусматривают в
дальнейшем возврат назад, в точку, из которой
был сделан переход, другие не предусматривают
этого. Если возврат предусмотрен, то текущие
параметры процессора сохраняются в стеке. Если
возврат не предусмотрен, то текущие параметры
процессора не сохраняются.
Команды переходов без возврата делятся на две группы:
 команды безусловных переходов;
 команды условных переходов.
В обозначениях этих команд используются
слова Branch (ветвление) и Jump (прыжок).
Команды безусловных переходов вызывают переход в
новый адрес независимо ни от чего. Они могут вызывать
переход на указанную величину смещения (вперед или
назад) или же на указанный адрес памяти. Величина
смещения или новое значение адреса указываются в
качестве входного операнда.
Команды условных переходов вызывают переход не всегда,
а только при выполнении заданных условий. В качестве
таких условий обычно выступают значения флагов в
регистре состояния процессора (PSW). То есть условием
перехода является результат предыдущей операции,
меняющей значения флагов.
Условий перехода может быть от 4 до 16.
Несколько примеров команд условных переходов:
переход, если равно нулю;
переход, если не равно нулю;
переход, если есть переполнение;
переход, если нет переполнения;
переход, если больше нуля;
переход, если меньше или равно нулю.
Если условие перехода выполняется, то производится
загрузка в регистр-счетчик команд нового значения. Если
же условие перехода не выполняется, счетчик команд
просто наращивается, и процессор выбирает и выполняет
следующую по порядку команду.
Специально для проверки условий перехода применяется
команда сравнения (CMP), предшествующая команде
условного перехода (или даже нескольким командам
условных переходов).
Но флаги могут устанавливаться и любой другой командой,
например командой пересылки данных, любой
арифметической или логической командой.
Отметим, что сами команды переходов флаги не меняют,
что как раз и позволяет ставить несколько команд
переходов одну за другой.
Совместное использование нескольких команд условных и
безусловных переходов позволяет процессору выполнять
разветвленные алгоритмы любой сложности.
На рис. показано разветвление программы на две ветки с
последующим соединением.
а на рис. — разветвление на три ветки с последующим
соединением.
Все команды переходов с возвратом предполагают
безусловный переход (они не проверяют никаких
флагов). При этом они требуют одного входного
операнда, который может указывать как
абсолютное значение нового адреса, так и
смещение, складываемое с текущим значением
адреса. Текущее значение счетчика команд
(текущий адрес) сохраняется перед выполнением
перехода в стеке.
Для обратного возврата в точку вызова подпрог-
раммы (точку перехода) используется специальная
команда возврата (RET или RTS). Эта команда
извлекает из стека значение адреса команды
перехода и записывает его в регистр-счетчик
команд.
 Особое место среди команд перехода с возвратом
занимают команды прерываний (распространенное
название — INT). Эти команды в качестве
входного операнда требуют номер прерывания
(адрес вектора). Обслуживание таких переходов
осуществляется точно так же, как и аппаратных
прерываний. То есть для выполнения данного
перехода процессор обращается к таблице
векторов прерываний и получает из нее по номеру
прерывания адрес памяти, в который ему
необходимо перейти. Адрес вызова прерывания и
содержимое регистра состояния процессора (PSW)
сохраняются в стеке. Сохранение PSW — важное
отличие команд прерывания от команд
переходов с возвратом.

More Related Content

What's hot

Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыЛекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыAlexey Paznikov
 
ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...
ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...
ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...Alexey Paznikov
 
Функциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridФункциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridАрсений Жижелев
 
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...Alexey Paznikov
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...Alexey Paznikov
 
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...Mikhail Kurnosov
 
Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)Александр Силантьев
 
A Method of Building Extended Finite State Machines According to HDL-Descript...
A Method of Building Extended Finite State Machines According to HDL-Descript...A Method of Building Extended Finite State Machines According to HDL-Descript...
A Method of Building Extended Finite State Machines According to HDL-Descript...Iosif Itkin
 
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++.   Р...ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++.   Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...Alexey Paznikov
 
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...vitaliykulanov
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3it-people
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
лабораторная работа №2
лабораторная работа №2лабораторная работа №2
лабораторная работа №2student_kai
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsAlexey Paznikov
 
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...Alexey Paznikov
 
TMPA-2013 Tsytelov Trifanov Devexperts
TMPA-2013 Tsytelov Trifanov DevexpertsTMPA-2013 Tsytelov Trifanov Devexperts
TMPA-2013 Tsytelov Trifanov DevexpertsIosif Itkin
 

What's hot (20)

Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обменыЛекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
Лекция 1. Основные понятия стандарта MPI. Дифференцированные обмены
 
ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...
ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...
ПВТ - весна 2015 - Лекция 6. Разработка параллельных структур данных на основ...
 
Функциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGridФункциональные сети на основе библиотеки SynapseGrid
Функциональные сети на основе библиотеки SynapseGrid
 
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
ПВТ - весна 2015 - Лекция 3. Реентерабельность. Сигналы. Локальные данные пот...
 
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
ПВТ - осень 2014 - Лекция 6 - Атомарные операции. Внеочередное выполнение инс...
 
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...Использование Time-Stamp Counter для измерения времени выполнения кода  на пр...
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
 
Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)Лекция №4 Организация ЭВМ и систем (продолжение)
Лекция №4 Организация ЭВМ и систем (продолжение)
 
A Method of Building Extended Finite State Machines According to HDL-Descript...
A Method of Building Extended Finite State Machines According to HDL-Descript...A Method of Building Extended Finite State Machines According to HDL-Descript...
A Method of Building Extended Finite State Machines According to HDL-Descript...
 
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++.   Р...ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++.   Р...
ПВТ - осень 2014 - Лекция 5 - Многопоточное программирование в языке С++. Р...
 
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
Basic principles of projects description in VHDL - ENTITY, ARCHITECTURE, LIBR...
 
ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3ekbpy'2012 - Михаил Коробов - Python 3
ekbpy'2012 - Михаил Коробов - Python 3
 
System c
System cSystem c
System c
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
лабораторная работа №2
лабораторная работа №2лабораторная работа №2
лабораторная работа №2
 
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 3. Векторизация кода (Code vectorization: SSE, AVX)
 
лек9 10
лек9 10лек9 10
лек9 10
 
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX ThreadsПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
ПВТ - осень 2014 - Лекция 3 - Стандарт POSIX Threads
 
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
ПВТ - весна 2015 - Лекция 8. Многопоточное программирование без использования...
 
Stream API
Stream APIStream API
Stream API
 
TMPA-2013 Tsytelov Trifanov Devexperts
TMPA-2013 Tsytelov Trifanov DevexpertsTMPA-2013 Tsytelov Trifanov Devexperts
TMPA-2013 Tsytelov Trifanov Devexperts
 

Viewers also liked

тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуреJIuc
 
Ficha autoevaluacion trabajo final
Ficha autoevaluacion trabajo finalFicha autoevaluacion trabajo final
Ficha autoevaluacion trabajo finalEdver Cisneros Soto
 
Uso de los organizadores digitales online trabajo final
Uso de los organizadores digitales online trabajo finalUso de los organizadores digitales online trabajo final
Uso de los organizadores digitales online trabajo finalEdver Cisneros Soto
 
012
012012
012JIuc
 
005
005005
005JIuc
 
0017
00170017
0017JIuc
 

Viewers also liked (8)

тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуре
 
Ficha autoevaluacion trabajo final
Ficha autoevaluacion trabajo finalFicha autoevaluacion trabajo final
Ficha autoevaluacion trabajo final
 
Uso de los organizadores digitales online trabajo final
Uso de los organizadores digitales online trabajo finalUso de los organizadores digitales online trabajo final
Uso de los organizadores digitales online trabajo final
 
012
012012
012
 
Reflexion final trabajo final
Reflexion final trabajo finalReflexion final trabajo final
Reflexion final trabajo final
 
005
005005
005
 
Reflexion modulo 4
Reflexion modulo 4Reflexion modulo 4
Reflexion modulo 4
 
0017
00170017
0017
 

Similar to 028

Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системpianist2317
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMTech Talks @NSU
 
23
2323
23JIuc
 
Обзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектурОбзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектурIoT Community
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
[DD] 12. Arithmetic logic device
[DD] 12. Arithmetic logic device[DD] 12. Arithmetic logic device
[DD] 12. Arithmetic logic deviceGabit Altybaev
 
system software programming - assembler programming.pp
system software programming - assembler programming.ppsystem software programming - assembler programming.pp
system software programming - assembler programming.ppImpreSs4
 
Развитие технологий генерации эксплойтов на основе анализа бинарного кода
Развитие технологий генерации эксплойтов на основе анализа бинарного кодаРазвитие технологий генерации эксплойтов на основе анализа бинарного кода
Развитие технологий генерации эксплойтов на основе анализа бинарного кодаPositive Hack Days
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Mikhail Kurnosov
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системpianist2317
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Mikhail Kurnosov
 
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюAlexey Paznikov
 
Лекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системЛекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системpianist2317
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Mikhail Kurnosov
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Mikhail Kurnosov
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераstudent_SSGA
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 

Similar to 028 (20)

Лекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и системЛекция № 3 Организация ЭВМ и систем
Лекция № 3 Организация ЭВМ и систем
 
Лекция №3
Лекция №3Лекция №3
Лекция №3
 
Лекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и системЛекция №3 Организация ЭВМ и систем
Лекция №3 Организация ЭВМ и систем
 
Как приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVMКак приручить дракона: введение в LLVM
Как приручить дракона: введение в LLVM
 
23
2323
23
 
Обзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектурОбзор современных микроконтроллеров и их архитектур
Обзор современных микроконтроллеров и их архитектур
 
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1: Архитектурно-ориентированная оптимизация программного обеспечения (...
 
[DD] 12. Arithmetic logic device
[DD] 12. Arithmetic logic device[DD] 12. Arithmetic logic device
[DD] 12. Arithmetic logic device
 
system software programming - assembler programming.pp
system software programming - assembler programming.ppsystem software programming - assembler programming.pp
system software programming - assembler programming.pp
 
Arhitektura kompjutera
Arhitektura kompjuteraArhitektura kompjutera
Arhitektura kompjutera
 
Развитие технологий генерации эксплойтов на основе анализа бинарного кода
Развитие технологий генерации эксплойтов на основе анализа бинарного кодаРазвитие технологий генерации эксплойтов на основе анализа бинарного кода
Развитие технологий генерации эксплойтов на основе анализа бинарного кода
 
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
 
Лекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и системЛекция №4(часть 1) Организация ЭВМ и систем
Лекция №4(часть 1) Организация ЭВМ и систем
 
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
 
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятьюПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
ПВТ - осень 2014 - Лекция 2 - Архитектура вычислительных систем с общей памятью
 
Лекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и системЛекция №8 Организация ЭВМ и систем
Лекция №8 Организация ЭВМ и систем
 
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
Лекция 1. Архитектурно-ориентированная оптимизация программного обеспечения (...
 
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
Лекция 2: Оптимизация ветвлений и циклов (Branch prediction and loops optimiz...
 
Аппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютераАппаратная реализация персонального компьютера
Аппаратная реализация персонального компьютера
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 

More from JIuc

выступление на совет директоров
выступление на совет директороввыступление на совет директоров
выступление на совет директоровJIuc
 
тест по теме системы счисления
тест по теме системы счислениятест по теме системы счисления
тест по теме системы счисленияJIuc
 
тест по теме компьютерные коммуникации
тест по теме компьютерные коммуникациитест по теме компьютерные коммуникации
тест по теме компьютерные коммуникацииJIuc
 
тест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвмтест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвмJIuc
 
тест по теме устройство компьютера (20 вопросов)
тест по теме  устройство компьютера (20 вопросов)тест по теме  устройство компьютера (20 вопросов)
тест по теме устройство компьютера (20 вопросов)JIuc
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениеJIuc
 
итоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвмитоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвмJIuc
 
тест по теме основные устройства компьютера
тест по теме основные устройства компьютератест по теме основные устройства компьютера
тест по теме основные устройства компьютераJIuc
 
тесты сортировка в бд Excel
тесты сортировка в бд Excelтесты сортировка в бд Excel
тесты сортировка в бд ExcelJIuc
 
тест создание и модифиация структуры бд
тест создание и модифиация структуры бдтест создание и модифиация структуры бд
тест создание и модифиация структуры бдJIuc
 
тест система управления базами данных
тест система управления базами данныхтест система управления базами данных
тест система управления базами данныхJIuc
 
тест работа с макросами и внешними данными
тест работа с макросами и внешними даннымитест работа с макросами и внешними данными
тест работа с макросами и внешними даннымиJIuc
 
тест по Sql
тест по Sqlтест по Sql
тест по SqlJIuc
 
тест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрациятест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрацияJIuc
 
тест запросы
тест запросытест запросы
тест запросыJIuc
 
тест бд
тест бдтест бд
тест бдJIuc
 
тест база данных. основные функции
тест база данных. основные функциитест база данных. основные функции
тест база данных. основные функцииJIuc
 
тестирование по разделу архитектура эвм
тестирование по разделу архитектура эвмтестирование по разделу архитектура эвм
тестирование по разделу архитектура эвмJIuc
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуреJIuc
 
икр
икрикр
икрJIuc
 

More from JIuc (20)

выступление на совет директоров
выступление на совет директороввыступление на совет директоров
выступление на совет директоров
 
тест по теме системы счисления
тест по теме системы счислениятест по теме системы счисления
тест по теме системы счисления
 
тест по теме компьютерные коммуникации
тест по теме компьютерные коммуникациитест по теме компьютерные коммуникации
тест по теме компьютерные коммуникации
 
тест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвмтест по теме аппаратное обеспечение эвм
тест по теме аппаратное обеспечение эвм
 
тест по теме устройство компьютера (20 вопросов)
тест по теме  устройство компьютера (20 вопросов)тест по теме  устройство компьютера (20 вопросов)
тест по теме устройство компьютера (20 вопросов)
 
тест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечениетест Atutor аппаратное обеспечение
тест Atutor аппаратное обеспечение
 
итоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвмитоговый тест по дисциплине аппаратное обеспечение эвм
итоговый тест по дисциплине аппаратное обеспечение эвм
 
тест по теме основные устройства компьютера
тест по теме основные устройства компьютератест по теме основные устройства компьютера
тест по теме основные устройства компьютера
 
тесты сортировка в бд Excel
тесты сортировка в бд Excelтесты сортировка в бд Excel
тесты сортировка в бд Excel
 
тест создание и модифиация структуры бд
тест создание и модифиация структуры бдтест создание и модифиация структуры бд
тест создание и модифиация структуры бд
 
тест система управления базами данных
тест система управления базами данныхтест система управления базами данных
тест система управления базами данных
 
тест работа с макросами и внешними данными
тест работа с макросами и внешними даннымитест работа с макросами и внешними данными
тест работа с макросами и внешними данными
 
тест по Sql
тест по Sqlтест по Sql
тест по Sql
 
тест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрациятест ключи, связи, индексы поиск и фильтрация
тест ключи, связи, индексы поиск и фильтрация
 
тест запросы
тест запросытест запросы
тест запросы
 
тест бд
тест бдтест бд
тест бд
 
тест база данных. основные функции
тест база данных. основные функциитест база данных. основные функции
тест база данных. основные функции
 
тестирование по разделу архитектура эвм
тестирование по разделу архитектура эвмтестирование по разделу архитектура эвм
тестирование по разделу архитектура эвм
 
тест треннинг по архитектуре
тест треннинг по архитектуретест треннинг по архитектуре
тест треннинг по архитектуре
 
икр
икрикр
икр
 

028

  • 2. В общем случае система команд процессора включает в себя следующие четыре основные группы команд: команды пересылки данных; арифметические команды; логические команды; команды переходов.
  • 3.  Команды пересылки данных не требуют выполнения никаких операций над операндами. Операнды просто пересылаются (точнее, копируются) из источника (Source) в приемник (Destination).  Источником и приемником могут быть внутренние регистры процессора, ячейки памяти или устройства ввода/вывода. АЛУ в данном случае не используется.
  • 4.  Арифметические команды выполняют операции сложения, вычитания, умножения, деления, увеличения на единицу (инкрементирования), уменьшения на единицу (декрементирования) и т.д.  Этим командам требуется один или два входных операнда. Формируют команды один выходной операнд.
  • 5.  Логические команды производят над операндами логические операции, например, логическое И, логическое ИЛИ, исключающее ИЛИ, очистку, инверсию, разнообразные сдвиги (вправо, влево, арифметический сдвиг, циклический сдвиг).  Этим командам, как и арифметическим, требуется один или два входных операнда, и формируют они один выходной операнд.
  • 6.  Команды переходов предназначены для изменения обычного порядка последователь- ного выполнения команд. С их помощью организуются переходы на подпрограммы и возвраты из них, всевозможные циклы, ветвления программ, пропуски фрагментов программ и т.д.   Команды переходов всегда меняют содержимое счетчика команд. Переходы могут быть условными и безусловными. Именно эти команды позволяют строить сложные алгоритмы обработки информации.
  • 7.  В соответствии с результатом каждой выполненной команды устанавливаются или очищаются биты регистра состояния процессора (PSW). Но надо помнить, что не все команды изменяют все имеющиеся в PSW флаги. Это определяется особенностями каждого конкретного процессора.
  • 8. Функции: загрузка (запись) содержимого во внутренние регистры процессора; сохранение в памяти содержимого внутренних регистров процессора; копирование содержимого из одной области памяти в другую; запись в устройства ввода/вывода и чтение из устройств ввода/вывода.
  • 9.  В некоторых процессорах все эти функции выполняются одной единственной командой MOV (для байтовых пересылок — MOVB) но с различными методами адресации операндов.  Для загрузки регистров могут использоваться команды загрузки, причем для разных регистров — разные команды (их обозначения обычно строятся с использованием слова LOAD — загрузка).  Часто выделяются специальные команды для сохранения в стеке и для извлечения из стека (PUSH — сохранить в стеке, POP — извлечь из стека). Эти команды выполняют пересылку с автоинкрементной и с автодекрементной адресацией. Стек (англ. stack — стопка) — структура данных с методом доступа к элементам LIFO (англ. Last In — First Out, «последним пришел — первым вышел»).
  • 10.  Иногда в систему команд вводится специальная команда MOVS для строчной (или цепочечной) пересылки данных (например, в процессоре 8086). Эта команда пересылает не одно слово или байт, а заданное количество слов или байтов (MOVSB), то есть инициирует не один цикл обмена по магистрали, а несколько. При этом адрес памяти, с которым происходит взаимодействие, увеличивается на 1 или на 2 после каждого обращения или же уменьшается на 1 или на 2 после каждого обращения.
  • 11. В некоторых процессорах специально выделяются функции обмена с устройствами ввода/вывода. Команда IN используется для ввода (чтения) информации из устройства ввода/вывода, а команда OUT используется для вывода (записи) в устройство ввода/вывода. Обмен информацией в этом случае производится между регистром- аккумулятором и устройством ввода/вывода.
  • 12. Также к командам пересылки данных относятся команды обмена инфор- мацией (их обозначение строится на основе слова Exchange). Может быть предусмотрен обмен информацией между внутренними регистрами, между двумя половинами одного регистра (SWAP) или между регистром и ячейкой памяти.
  • 13. Арифметические команды рассматривают коды операндов как числовые двоичные или двоично-десятичные коды. Эти команды могут быть разделены на пять основных групп: 1. команды операций с фиксированной запятой (сложение, вычитание, умножение, деление); 2. команды операций с плавающей запятой (сложение, вычитание, умножение, деление); 3. команды очистки; 4. команды инкремента и декремента; 5. команда сравнения.
  • 14. Команды операций с фиксированной запятой работают с кодами в регистрах процессора или в памяти как с обычными двоичными кодами. Команда сложения (ADD) вычисляет сумму двух кодов. Команда вычитания (SUB) вычисляет разность двух кодов. Команда умножения (MUL) вычисляет произведение двух кодов (разрядность результата вдвое больше разрядности сомножителей). Команда деления (DIV) вычисляет частное от деления одного кода на другой. Причем все эти команды могут работать как с числами со знаком, так и с числами без знака.
  • 15.  Команды операций с плавающей запятой (точкой) используют формат представления чисел с порядком и мантиссой (обычно эти числа занимают две последовательные ячейки памяти).  В современных мощных процессорах набор команд с плавающей запятой не ограничивается только четырьмя арифметическими действиями, а содержит и множество других более сложных команд, например, вычисление тригонометрических функций, логарифмических функций, а также сложных функций, необходимых при обработке звука и изображения.
  • 16.  Команды очистки (CLR) предназначены для записи нулевого кода в регистр или ячейку памяти. Эти команды могут быть заменены командами пересылки нулевого кода, но специальные команды очистки обычно выполняются быстрее, чем команды пересылки. Команды очистки иногда относят к группе логических команд, но суть их от этого не меняется.  Команды инкремента (увеличения на единицу, INC) и декремента (уменьшения на единицу, DEC) также бывают очень удобны. Их можно в принципе заменить командами суммирования с единицей или вычитания единицы, но инкремент и декремент выполняются быстрее, чем суммирование и вычитание. Эти команды требуют одного входного операнда, который одновременно является и выходным операндом.
  • 17. Команда сравнения (обозначается CMP) предназначена для сравнения двух входных операндов. По сути, она вычисляет разность этих двух операндов, но выходного операнда не формирует, а всего лишь изменяет биты в регистре состояния процессора (PSW) по результату этого вычитания. Следующая за командой сравнения команда (обычно это команда перехода) будет анализировать биты в регистре состояния процессора и выполнять действия в зависимости от их значений
  • 18. Логические команды выполняют над операндами логические (побитовые) операции, то есть они рассматривают коды операндов не как единое число, а как набор отдельных битов. Этим они отличаются от арифметических команд.  Логические команды выполняют следующие основные операции: 1. логическое И, логическое ИЛИ, сложение по модулю 2 (Исключающее ИЛИ); 2. логические, арифметические и циклические сдвиги; 3. проверка битов и операндов; 4. установка и очистка битов (флагов) регистра состояния процессора (PSW).
  • 19. Команды логических операций позволяют побитно вычислять основные логические функции от двух входных операндов. Кроме того, операция И (AND) используется для принудительной очистки заданных битов (в качестве одного из операндов при этом используется код маски, в котором разряды, требующие очистки, установлены в нуль). Операция ИЛИ (OR) применяется для принудительной установки заданных битов (в качестве одного из операндов при этом используется код маски, в котором разряды, требующие установки в единицу, равны единице). Операция "Исключающее ИЛИ" (XOR) используется для инверсии заданных битов (в качестве одного из операндов при этом применяется код маски, в котором биты, подлежащие инверсии, установлены в единицу). Команды требуют двух входных операндов и формируют один выходной операнд.
  • 20. Команды сдвигов позволяют побитно сдвигать код операнда вправо (в сторону младших разрядов) или влево (в сторону старших разрядов). Тип сдвига (логический, арифметический или циклический) определяет, каково будет новое значение старшего бита (при сдвиге вправо) или младшего бита (при сдвиге влево), а также определяет, будет ли где-то сохранено прежнее значение старшего бита (при сдвиге влево) или младшего бита (при сдвиге вправо).
  • 21. Циклические сдвиги позволяют сдвигать биты кода операнда по кругу (по часовой стрелке при сдвиге вправо или против часовой стрелки при сдвиге влево). При этом в кольцо сдвига может входить или не входить флаг переноса. В бит флага переноса (если он используется) записывается значение старшего бита при циклическом сдвиге влево и младшего бита при циклическом сдвиге вправо. Соответственно, значение бита флага переноса будет переписываться в младший разряд при циклическом сдвиге влево и в старший разряд при циклическом сдвиге вправо.
  • 22. Команды проверки битов и операндов предназначены для установки или очистки битов регистра состояния процессора в зависимости от значения выбранных битов или всего операнда в целом. Выходного операнда команды не формируют. Команда проверки операнда (TST) проверяет весь код операнда в целом на равенство нулю и на знак (на значение старшего бита), она требует только одного входного операнда. Команда проверки бита (BIT) проверяет только отдельные биты, для выбора которых в качестве второго операнда используется код маски. В коде маски проверяемым битам основного операнда должны соответствовать единичные разряды.
  • 23.
  • 24. Команды установки и очистки битов регистра состояния процессора (то есть флагов) позволяют установить или очистить любой флаг, что бывает очень удобно. Каждому флагу обычно соответствуют две команды, одна из которых устанавливает его в единицу, а другая сбрасывает в нуль. Например, флагу переноса C (от Carry) будут соответствовать команды CLC (очистка) и SEC или STC (установка).
  • 25. Команды переходов предназначены для организации всевозможных циклов, ветвлений, вызовов подпрограмм и т.д., то есть они нарушают последовательный ход выполнения программы. Эти команды записывают в регистр-счетчик команд новое значение и тем самым вызывают переход процессора не к следующей по порядку команде, а к любой другой команде в памяти программ. Некоторые команды переходов предусматривают в дальнейшем возврат назад, в точку, из которой был сделан переход, другие не предусматривают этого. Если возврат предусмотрен, то текущие параметры процессора сохраняются в стеке. Если возврат не предусмотрен, то текущие параметры процессора не сохраняются.
  • 26. Команды переходов без возврата делятся на две группы:  команды безусловных переходов;  команды условных переходов. В обозначениях этих команд используются слова Branch (ветвление) и Jump (прыжок). Команды безусловных переходов вызывают переход в новый адрес независимо ни от чего. Они могут вызывать переход на указанную величину смещения (вперед или назад) или же на указанный адрес памяти. Величина смещения или новое значение адреса указываются в качестве входного операнда. Команды условных переходов вызывают переход не всегда, а только при выполнении заданных условий. В качестве таких условий обычно выступают значения флагов в регистре состояния процессора (PSW). То есть условием перехода является результат предыдущей операции, меняющей значения флагов.
  • 27. Условий перехода может быть от 4 до 16. Несколько примеров команд условных переходов: переход, если равно нулю; переход, если не равно нулю; переход, если есть переполнение; переход, если нет переполнения; переход, если больше нуля; переход, если меньше или равно нулю.
  • 28. Если условие перехода выполняется, то производится загрузка в регистр-счетчик команд нового значения. Если же условие перехода не выполняется, счетчик команд просто наращивается, и процессор выбирает и выполняет следующую по порядку команду. Специально для проверки условий перехода применяется команда сравнения (CMP), предшествующая команде условного перехода (или даже нескольким командам условных переходов). Но флаги могут устанавливаться и любой другой командой, например командой пересылки данных, любой арифметической или логической командой. Отметим, что сами команды переходов флаги не меняют, что как раз и позволяет ставить несколько команд переходов одну за другой. Совместное использование нескольких команд условных и безусловных переходов позволяет процессору выполнять разветвленные алгоритмы любой сложности.
  • 29. На рис. показано разветвление программы на две ветки с последующим соединением.
  • 30. а на рис. — разветвление на три ветки с последующим соединением.
  • 31. Все команды переходов с возвратом предполагают безусловный переход (они не проверяют никаких флагов). При этом они требуют одного входного операнда, который может указывать как абсолютное значение нового адреса, так и смещение, складываемое с текущим значением адреса. Текущее значение счетчика команд (текущий адрес) сохраняется перед выполнением перехода в стеке. Для обратного возврата в точку вызова подпрог- раммы (точку перехода) используется специальная команда возврата (RET или RTS). Эта команда извлекает из стека значение адреса команды перехода и записывает его в регистр-счетчик команд.
  • 32.  Особое место среди команд перехода с возвратом занимают команды прерываний (распространенное название — INT). Эти команды в качестве входного операнда требуют номер прерывания (адрес вектора). Обслуживание таких переходов осуществляется точно так же, как и аппаратных прерываний. То есть для выполнения данного перехода процессор обращается к таблице векторов прерываний и получает из нее по номеру прерывания адрес памяти, в который ему необходимо перейти. Адрес вызова прерывания и содержимое регистра состояния процессора (PSW) сохраняются в стеке. Сохранение PSW — важное отличие команд прерывания от команд переходов с возвратом.