
- •1.1 Базовые понятия и принципы организации
- •1.1.1 Аналоговые и цифровые сообщения
- •1.1.2 История развития цифровой вычислительной техники
- •1.1.3 Схемотехнические основы цифровой техники
- •Функциональные узлы
- •1.1.4 Упрощенная схема вычислительной системы
- •1.1.5 Иерархия устройств памяти эвм
- •1.2 Архитектура центрального процессора
- •1.2.1 Архитектура одноаккумуляторного процессора
- •1.2.2 Организация ветвлений
- •1.2.3 Стековая память
- •1.2.4 Синхронизация выполнения машинной команды. Машинные циклы. Циклы команд
- •1.2.5 Архитектура регистровых процессоров
- •1.2.6 Risc и cisc архитектуры процессоров
- •1.2.7 Архитектура процессора к1810вм86 (i8086)
- •1.3 Система команд эвм
- •1.3.1 Адресность и форматы команд
- •1.3.2 Типы операции. Классификацию команд по типам операций можно провести, разделив их на пять основных групп:
- •1.3.3 Способы адресации
- •1.4 Два способа алгоритмической организации ввода/вывода
- •1.4.1 Система прерывания программ эвм
- •1.4.2 Пересылки по прерыванию
- •1.4.3 Организация приоритетных прерываний
- •1.4.4 Контроллерный обмен
- •1.5 Интерфейсы вычислительных систем
- •1.5.1 Принципы организации внутрисистемного интерфейса
- •1.5.2 Два типа межмодульных связей
- •1.5.3 Особенности интерфейса периферийных устройств
- •1.5.4 Классификация режимов обмена интерфейса второго уровня
1.2.2 Организация ветвлений
Необходимость организации ветвлений (возможных переходов) обуславливается логикой алгоритма решаемой задачи и опирается на текущее состояние триггеров флажкового регистра. С каждым флажком связана одна или несколько машинных команд условных переходов, которые принудительно модифицируют значение РС только при определенном значении флажка. В противном случае программный счетчик продолжает стандартные приращения своего значения.
Операндом любой команды перехода является или прямой многоразрядный адрес команды, к которой нужно осуществить скачок, или относительное смещение (положительное или отрицательное) на которое осуществляется скачок. Таким образом, в программный счетчик записывается адрес перехода из состава самой команды или результат алгебраического сложения с текущим его значением.
1.2.3 Стековая память
Прежде чем рассмотреть назначение еще одного специализированного регистра – шестнадцатиразрядного указателя стека (SP), необходимо уяснить принципы работы с памятью магазинного типа – стеком. Стек в классическом понимании представляет собой набор ячеек (регистров), новые данные в который помещаются всегда сверху, проталкивая все ранее записанное вниз. Считывается первой информация, поступившая последней. При этом все содержимое стека поднимается на один регистр вверх. Такой механизм работы стека напоминает принцип работы оружейного магазина (обоймы). Команды обращения к стеку не содержат адреса, так как процессору «известно», что загрузка и извлечение информации всегда происходит через его верхний регистр. Благодаря этому команды записи (PUSH) и считывания (POP) из стека короткие (однобайтовые).
Иметь стек в кристалле центрального процессора хорошо с точки зрения высокой скорости обращения к нему. Однако из-за ограниченности объема кристалла организовать достаточно емкий стек в процессоре не удается. В этом случае на практике стек организуется в любой части оперативной памяти, а в процессоре остается лишь один регистр, который содержит адрес «дна» стека, если он пустой, или адрес верхней заполненной строки стека.
Указатель стека доступен программисту. Специальной командой можно записать в него наибольший адрес свободного участка памяти, где пользователь организует стек своей программы. Магазинная память используется прежде всего командой перехода к подпрограмме (CALL). Действие процессора по выполнению этой команды заключается в отправке в стек адреса следующей за CALL команды, т.е. адреса возврата из подпрограммы. При этом содержимое указателя стека уменьшается. В программный счетчик записывается адрес начала программы, который содержится в адресном поле команды CALL. Таким образом, уже следующей исполняемой командой будет первая команда подпрограммы. Выполнение любой подпрограммы заканчивается командой возврата типа RETURN. Действия по выполнению этой команды достаточно просты. Из стека выталкивается верхнее слово с адресом возврата и загружается в программный счетчик (указатель стека увеличивает свое значение). Теперь следующей будет выполняться команда основной программы, следующая за командой CALL.
Стек позволяет очень просто обеспечить безошибочный возврат в вызвавшую программу даже, если одна подпрограмма вызывает вторую, та обращается к третьей, третья к четвертой и т.д. Стек может быть использован для временного хранения промежуточных результатов. Преимущества стека, организованного в главной памяти, в том, что он неограничен своей длиной, и каждая программа получает свой собственный стек или даже несколько стеков.