Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 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 | 3А | 2А | 1F | ||
ü Косвенная адресация.
При косвенной адресации байт адресуется через пару регистров, т. е. адрес ячейки памяти может быть определен с помощью содержимого пары регистров. Для большинства команд используется регистры H и L. Регистр Н содержит старший байт адреса, регистр L – младший.
Пример:
Загрузить аккумулятор содержимым ячейки 1F2A. | ||||||||||||
Память | Регистры | |||||||||||
7Е | 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 |


