Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

3.1.  Краткие сведения из теории

Процессор содержит ряд узлов, выполняющих различные функции, такие, как арифметическо-логическое устройство (АЛУ), используемое для осуществления операций над данными, дешифратор команд (ДК) и устройство управления (УУ), которые анализируют команды, поступающие из программной памяти, и генерируют необходимые импульсы для выполнения этих операций, а также ряд регистров. Процессор КР580 имеет семь регистров общего назначения, обозначаемых A, B, C, D, E, H, L. Они предназначены для хранения как постоянных, так и переменных данных и адресов. В структуре процессора предусмотрена реализация команд пересылки данных из одного регистра в другой, из регистра в память и наоборот, или же команд для выполнения арифметических или логических операций над содержимым двух регистров (в этом случае один из регистров обязательно должен быть регистром А, например, нельзя суммировать содержимое регистров В и С).

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

Регистр команд (РК) хранит команду, которая выполняется. Он соединен с дешифратором команд, который анализирует команду и определяет вид обработки. Команда хранится и используется в течение всего времени ее выполнения.

Буферные регистры данных и адреса предназначены для временного хранения данных и адреса с целью обеспечения нормальной работы других узлов микро-ЭВМ.

Регистры счетчик команд (СК, PC), указатель стека (УС, SP) и регистр флагов (F), играют очень важную роль в программировании микропроцессора.

НЕ нашли? Не то? Что вы ищете?

Все пять бит регистра признаков (F) устанавливаются по результату выполнения операции в АЛУ:

ü  Признак переноса (С) устанавливается в 1, если при выполнении команд появляется единица переноса из старшего разряда.

ü  Дополнительный признак переноса (АС) устанавливается в 1, если при выполнении команд возникает единица переноса из третьего разряда числа. Состояние разряда может быть проанализировано лишь командой десятичной коррекции.

ü  Признак знака (S) устанавливается в 1, если седьмой (старший) разряд числа равен 1. Машинное слово представляется числом от –128 до +127. Седьмой разряд числа указывает на знак числа. Если он равен 0, то число положительное, если 1, то отрицательное.

ü  Разряд признака нулевого содержимого аккумулятора (Z) устанавлива­ется в 1, если при выполнении команды результат равен нулю.

ü  Разряд признака паритета (Р) устанавливается в 1, если число единичных битов аккумулятора четно, в противном случае этот разряд будет установлен в нулевое состояние.

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

Указатель стека (УС) содержит адрес стековой памяти, начиная с которого ее можно применять для хранения и восстановления содержимого программно доступных регистров МП.

Выполнение каждой команды производится МП в строго определенной последовательности, определяемой кодом команды, и синхронизируется во времени сигналами C1 и C2 тактового генератора. Период синхросигналов C1 или C2 называют машинным тактом (МТ). Длительность машинного такта от 0,5 до 2 мкс.

Машинный цикл (МЦ) – время, требуемое для извлечения 1 байта ин­формации из памяти или выполнения команды, определяемой одним машинным словом. Машинный цикл может состоять из 3 – 5 машинных тактов. Вре­мя выполнения команды – время получения, дешифрации и отработки команды процессором. В зависимости от вида команды, это время может состоять из 1 – 5 машинных циклов. Существуют десять различных типов машинных циклов:

1.  Извлечение кода команды.

2.  Чтение данных из памяти.

3.  Запись данных в память.

4.  Извлечение из стека.

5.  Запись данных в стек.

6.  Ввод данных из внешнего устройства.

7.  Запись данных во внешнее устройство.

8.  Цикл обслуживания прерывания.

9.  Останов.

10.  Обслуживание прерывания при работе в режиме останова.

Первым машинным циклом при выполнении любой команды является извлечение кода команды. На первом такте каждого машинного цикла МП указывает тип выполняемого цикла с помощью 8-разрядного слова состояния, выдаваемого на ШД. Отдельные разряды слова состояния используются для формирования шины управления.

3.1.1.  Способы адресации памяти.

ü  Прямая адресация.

При прямой адресации команда содержит адрес памяти. Команда занимает три байта памяти, причем второй и третий байты содержат адрес.

Пример:

Загрузить содержимое ячейки 1F2A в аккумулятор.

Мнемоника команды

Запись в памяти

LDA 1F2A

1F

ü  Косвенная адресация.

При косвенной адресации байт адресуется через пару регистров, т. е. адрес ячейки памяти может быть определен с помощью содержимого пары регистров. Для большинства команд используется регистры H и L. Регистр Н содержит старший байт адреса, регистр L – младший.

Пример:

Загрузить аккумулятор содержимым ячейки 1F2A.

Память

Регистры

1F

2A

MOV A, M

B

C

D

E

H

L

A

ü  Непосредственная адресация.

Команда с непосредственной адресацией содержит в одном из своих полей операнд. Команды с непосредственной адресацией не обращаются к памяти для извлечения операнда – они сами содержат операнд.

Пример:

Загрузить в аккумулятор величину 2А.

Память

3E

2A

MVI A, 2A

ü  Адресация через указатель стека.

Здесь адресация может осуществляться через 16-разрядный регистр – УС. Существуют две операции со стеком: запись в стек (PUSH) и выборка из стека (POP). Запись в стек используется для пересылки 16 бит данных из пары регистров или из программного счетчика (СК) в область памяти, отведенную под стек. Извлечение из стека используется для пересылки 16 бит из стековой области памяти, в любую пару регистров или в программный счетчик. Подробнее эти операции будут рассмотрены позже.

3.1.2.  Система команд микропроцессора.

Команды МП можно разделить на 4 категории:

ü  Команды пересылки данных (см. Табл. 0-4Табл. 0-7).

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

ü  Арифметические и логические команды (см. Табл. 0-8Табл. 0-10).

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

ü  Команды передачи управления (см. Табл. 0-11Табл. 0-13).

Они включают в себя команды разветвления, перехода к подпрограммам и возврата из подпрограмм.

ü  Команды различного назначения (специальные команды, см. Табл. 0-14).

К данному классу относятся команды, которые нельзя точно классифицировать.

3.1.2.1  Команды пересылки данных.

Команды пересылки "регистр-регистр" – MOV R1, R2. Формат этих команд имеет вид 01 DDD SSS, где DDD – регистр приемник, SSS – регистр источник. Регистры определяются номерами B = 0, C = 1, D = 2, E = 3, H = 4, L = 5, A =7. Таким образом, команда 4С (01001100) означает "переслать содержимое регистра Н в регистр С". Если значение DDD или SSS равно 110, то приемником или источником является ячейка памяти, адрес которой хранится в паре регистров HL (косвенная адресация).

Команда MVI служит для пересылки одного байта в любой из 7 РОН. Формат команды 00 DDD 110. Если DDD = 0, 1, ..., 5, 7, то пересылается константа, следующая в программе за этой командой в регистры B, C, ..., L, A. Если поле DDD = 6, то константа пересылается в ячейку памяти, адрес которой хранится в паре регистров H, L.

Для быстрой загрузки регистров H, L существует команда LXI H, пересылающая следующие за командой LXI H два байта (в программе) в указанную пару регистров. Таким же образом команда LXI D загружает два байта в пару регистров D и Е, а команда (LXI B) – два байта в регистры В и С. Эти команды называются командами непосредственной загрузки.

Существуют команды, выделяющие регистр А для специальных целей. Команды STAX и LDAX служат для передачи данных между регистром А и ячейкой памяти, адрес которой находится либо в паре регистров ВС, либо в паре регистров DЕ, причем STAX B – пересылает содержимое А в ячейку памяти, адрес которой находится в ВС, а LDAX D – осуществляет обратную передачу содержимого ячейки памяти с адресом, записанным в DE в регистр А.

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

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14