Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[6]

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

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

Аккумулятор. Выходной регистр АЛУ служит для приема результатов выполнения операции АЛУ.

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

Схемы управления соединены* со всеми узлами микропроцессора линиями управления. Некоторые линии связаны с внешними линиями сигналов управления ПЭВМ. Например, по сигналу готовности*JRDY) микропроцессор заносит в счетчик команд число, находящееся в ячейках памяти с адресами FFFC . и FFFD , иници-

1616

ируя тем самым начало выполнения программы.

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

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

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

Другой тип прерывания (NMI) используется, чтобы вовремя подать сигнал о возникших ненормальных или угрожающих нормальной работе условиях, таких, как отказ питания или неисправности некоторых подсистем. Это немаскируемое (NON MASKable) прерывание, оно определяет немедленную обработку прерывания по окончании выполнения текущей команды.

МНЕМОНИКА КОМАНД

Команда микропроцессора - это такое двоичное число, которое будучи "про читано" микропроцессором, заставляет его выполнять определенные действия. Другие двоичные числа, отличные от команд, подобных действий вызвать не мо-


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

Команды имеют разную длину (один, два или три байта) и содержат два вида информации. Во-первых, команда сообщает микропроцессору, что делать (выполнить очистку, сложение, пересылку, сдвиг и т.д.); во-вторых, команда указывает адрес (местоположение) обрабатываемых данных. Например, команды могут заставить микропроцессор добавить к содержимому аккумулятора копию содержимого некоторой ячейки памяти, очистить аккумулятор, перенести данные из индексного регистра X в индексный регистр Y ит.Д.J

Таким образом, команда состоит из двух частей: кода операции и адреса. Если длина команды составляет два или три байта, то первый из них - код операции, а второй (или, если есть, третий) - адрес. Однако не следует делать вывод, что все команды длиной в 1 байт - безадресные.

Команда микропроцессора - это двоичное число. Но даже однобайтовое двоичное число трудно запомнить. Еще труднее запомнить двух-, трехбайтовые команды. Шестнадцатеричные эквиваленты также трудно запомнить и тем более отождествлять с их фактическим назначением.

Поэтому при работе с компьютером применяют мнемоническое обозначение -сокращенную форму записи английского названия команд. Для этой цели используются три буквы названия операции выполняемой команды (см. прил. 1). Например, мнемоническое обозначение команды загрузки аккумулятора имеет вид LDA (LOAD ACCUMULATOR WITH).

Мнемоническая запись является составной частью языка ассемблера. Ассемблер преобразует мнемоническое обозначение кодов операции в соответствующие двоичные эквиваленты. Сочетание сокращенного буквенного обозначения кода операции с числовой формой записи адреса - наиболее удобная форма записи команды. Длина команды зависит от длины используемого в ней адреса. Тип обращения (адресации) к данным в команде называют способом адресации. Всего микропроцессор насчитывает 16 способов адресации.

Неявная адресация. Однобайтовые команды не адресуются к данным, расположенным в памяти, а оперируют с информацией, загруженной в регистры микропроцессора, или с разрядами регистра состояния. При таком способе адрес как бы встроен в команду, поэтому он и называется неявным.

Однобайтовые команды выполняются быстрее любых других команд (в течение одного-двух машинных циклов).

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

Прямая адресация. Для размещения или считывания данных из ячейки памяти применяется прямая адресация. Команда с прямой адресацией имеет длину 2 байт (прямая короткая) или 3 байт (прямая длинная). Первый байт предназначен для


кода операции, второй и, если имеется, третий - для адреса. Адрес указывает область памяти, в которой находятся подлежащие обработке данные. Совместное использование второго и третьего байтов команды позволяет адресоваться к любой из 65536 ячеек памяти. При неявной адресации адрес местоположения данных "встроен" в команду, и программист лишен возможности самостоятельно обращаться к данным по их адресу. При непосредственной адресации данные указываются в самой команде сразу за кодом операции. И в этом случае программист не может адресоваться к данными Только прямая адресация позволяет ему это делать, явным образом задавая адрес используемых данных. Прямая короткая адресация позволяет обратиться только к первым 256 байтам (с 0 по 255) - это адрес так называемой нулевой страницы памяти; прямая длинная охватывает весь диапазон адресов (с 0 по 65535).

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

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

Индексная адресация. Эта адресация удобна при обращении к массивам и таблицам. Для образования исполнительного адреса к адресной части команды прибавляется смещение (шестнадцатеричное число) из индексного регистра. Индексные регистры (X и Y) программно доступны, и их содержимое можно изменить, что позволяет варьировать исполнительные адреса без модификации команды, а значит, и всей программы в целом. Когда индексная адресация используется для доступа к массиву, адрес в команде соответствует базовому адресу массива, а значение индексного регистра - индексу элемента массива.

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

Смещение интерпретируется как знаковое целое число, представленное в дополнительном коде, что обеспечивает переход в любом направлении. Максимальный переход соответствует сдвигу на число адресов в диапазоне от +127 до -128 по отношению к содержимому PC. При этом до прибавления смещения со-



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36] [стр.37] [стр.38] [стр.39] [стр.40] [стр.41] [стр.42] [стр.43] [стр.44] [стр.45] [стр.46] [стр.47] [стр.48] [стр.49] [стр.50] [стр.51] [стр.52] [стр.53] [стр.54] [стр.55] [стр.56] [стр.57] [стр.58] [стр.59] [стр.60] [стр.61] [стр.62] [стр.63] [стр.64] [стр.65] [стр.66] [стр.67] [стр.68] [стр.69] [стр.70] [стр.71] [стр.72] [стр.73] [стр.74] [стр.75] [стр.76] [стр.77] [стр.78] [стр.79] [стр.80] [стр.81] [стр.82] [стр.83] [стр.84] [стр.85] [стр.86] [стр.87] [стр.88] [стр.89] [стр.90] [стр.91] [стр.92] [стр.93] [стр.94] [стр.95] [стр.96] [стр.97] [стр.98]