Реферат: Микропроцессор Z80 его структура и система команд

<img src="/cache/referats/2956/image001.gif" v:shapes="_x0000_s1027">Московский Институт Электроники и Математики

(техническийуниверситет)

КафедраИТАС

РЕФЕРАТ

по курсу: “ЭВМ и периферийные устройства”

на тему:Микропроцессор Z80егоструктура и система команд.

Выполнил: студент группы АП-41

ЗавалишинЕ. А.

МОСКВА1998

Архитектурамикропроцессора Z-80

Архитектурамикропроцессора Z-80 фирмы ZILOG основывается на архитектурных принципахмикропроцессора 8080 и позволяет выполнять все 78 команд этого микропроцессора,а также 80 дополнительных команд. Всего микропроцессор Z-80 имеет 696 кодовопераций (в отличие от 244 кодов микропроцессора 8080).

К числуособенностей микропроцессора Z-80 относятся: использование для питания лишьодного источника напряжением “+5В”, наличие однофазного внешнегосинхрогенератора, 17 внутренних регистров и встроенная схема регенерации ОЗУ.

<span Times New Roman",«serif»">НАЗНАЧЕНИЕ ВЫВОДОВ.

МикропроцессорZ-80 — это микросхема с 40 выводами, пронумерованными от 1 до 40. Рассмотримфункции выводов.

Вывод 11напряжение питания +5в. Вывод 29- общий. Вывод 06- тактовый  вход. В SPECTRUMe используется тактоваячастота 3.5 Мгц. Вывод 07-10, 12-15- информационная шина. Вывод 1-5,30-40-адресная шина.

Оставшиеся13 выводов присоединены к линиям, которые несут управляющие сигналы. Вывод 21-линия считывания RD. Эта линия становится активной, когда байт информациидолжен быть считан из памяти или порта. Вывод 22- линия записи WR. Эта линияактивна, когда байт информации должен быть записан в память или в порт. Вывод19- запрос  памяти MREQ. Эта линияактивна в тех случаях, когда требуется обращение к памяти.

Байтинформации считывается из памяти в соответствии с адресом, помещенным наадресной шине. Далее, в соответствии с откликом на сигналы RD и MREQ, байтинформации поступает на информационную шину, с которой эта информация вдальнейшем считывается микропроцессором. Для записи байта данных в памятьмикропроцессор помещает требуемые адреса на адресную шину и требуемую информациюна шину данных. Сигналы MREQ и WR активизируются, и байт данных записывается впамять.

Вывод 28-линия регенерации RFSH. Она используется для регенерации динамической памяти.Частично используется для формирования TV сканирующих сигналов. Вывод 27-активизируется при выполнении машинного цикла М1 и показывает, что проходящиймашинный цикл обработки команды находится в состоянии “ввода кода операции” привыполнении некоторой команды. Сигнал М1 при выполнении двухбайтовой командыформируется при вызове каждого байта кода операции. Сигнал M1 появляется вместес сигналом IORQ в цикле приема прерывания. Выборка инструкции требует, чтобывсе три сигнала MI, MREQ и RD были активизированы. В то же время выборка байтаданных из ячейки памяти требует, чтобы только MREQ и RD были активизированы.Время необходимое для выборки инструкции — 1.14мкс, что составляет 4 такта.Вывод 20- линия выход lORQ. Эта линия активна при выполнении команд IN или OUT.Вывод 18- останов HALT. Линия активизируется при выполнении команды HALT. Вывод25- линия запроса BUSRQ. Z-80 позволяет внешним устройствам использоватьадресную и информационную шину в режиме пропуска цикла. Запрос микропроцессорупропустить следующий цикл выполняется внешними устройствами путем активизацииэтой линии. Вывод 23- линия подтверждения, BUSAK. Микропроцессор подтверждаетзапрос остановки после выполнения команды и активизирует эту линию.

Оставшиеся 4вывода находятся под контролем пользователя. Вывод 26- линия  сброса, RESET. Используется для инициализациимикропроцессора. Она активизируется при включении питания. Сброс может бытьосуществлен в SPECTRUMe соединением линий RESET и GND. Вывод 24- линия ожиданияWAIT. “Медленная” память может требовать большего времени для цикла считыванияили записи и об этом сообщает микропроцессору путем активизации линии WAIT.Вывод 17- “немаскируемое прерывание” NMI. Активизация этой линии приводит костановке выполнения микропроцессором текущей программы, и вместо неемикропроцессор  выполняет программупрерывания, записанную специально для этой цели. В SPECTRUMe немаскируемоепрерывание требует системного сброса, который выполняется записыванием 0 поадресу 23728. Вывод 16- “маскируемое прерывание”, INT. В SPECTRUMe сканированиеклавиатуры и обмен в режиме реального времени называется “управляемымпрерыванием”. Это означает, что электроника системы каждые 1/50 секундыактивизирует INT, вызывая остановку выполнения микропроцессором основнойпрограммы и, вместо этого, выполнение программы сканирования клавиатуры.Способность Z80 реагировать на INT может управляться программистом специальнымимашинными командами.

<span Times New Roman",«serif»">ЛОГИЧЕСКАЯ ОРГАНИЗАЦИЯ Z80

В состав Z80входят: устройство управления, регистр команд, программный счетчик, 24 регистрапользователя и арифметико-логическое устройство.

<span Times New Roman",«serif»;font-weight:normal">Устройствоуправления.

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

Регистркоманд.

Термин“регистр” используется для описания простой ячейки памяти внутри Z80. Регистрсодержит 8 бит (1 байт). В Z80 имеется большой блок регистров, и пересылкабайтов данных к регистрам и от них является простейшей и наиболее важной чертойпрограммирования в машинных кодах.

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

<span Times New Roman",«serif»;font-weight:normal">Программный счетчик.

Программныйсчетчик — это пара регистров, которые используются совместно, поэтомупрограммный счетчик содержит 16-ти битные значения.

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

Действиепрограммного счетчика очень похоже на переменную РРС интерпретатора бэйсик,которая содержит номер текущей строки бэйсик и также наращивается.

<span Times New Roman",«serif»">Регистры пользователя (основныерегистры).

Имеется 24регистра пользователя. Все регистры однобайтовые, хотя обычно используютсяпарами. Регистр А называется аккумулятором. Аккумулятор — основной регистрмикропроцессора при различных операциях с данными. Большинство арифметических илогических операций осуществляется путем использования АЛУ и аккумулятора.Любая такая операция над двумя словами данных предполагает размещение одного изних в аккумуляторе, а другого — в памяти или еще в каком-нибудь регистре. Такпри сложении двух слов, условно называемых А и В и расположенных в аккумулятореи памяти соответственно, результирующая сумма загружается в аккумулятор,замещая слово А.

Регистр F — это флаговый регистр. Он часто рассматривается как набор восьми флаговых битов,связанных вместе, а не как отдельный регистр. Установление флага соответствует1, сброс -0. Программист обычно имеет дело с 4-мя основными флагами. Это флагнуля, флаг знака, флаг переноса и флаг четности-переполнения. Дополнительныефлаги используются управляющим устройством и не могут быть использованыпрограммистом непосредственно.

<span Times New Roman",«serif»;font-weight:normal">Регистровая пара HL.

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

Вмикропроцессоре регистровая пара HL является одной из трех регистровых пар,которые используется в качестве адресных регистров. В этом качестве регистроваяпара HL является наиболее важной. Регистровая пара HL также может бытьиспользована для хранения 16-ти разрядного числа, и существует определенный рядарифметических операций, которые могут быть выполнены с этими числами.Н-регистр и L-регистр также могут быть использованы и как отдельные регистры,хотя с ними может быть выполнено ограниченное число операций.

Регистроваяпара ВС и DE. Эти пары используются главным образом как адресные регистры.Регистры могут быть использованы как одинарные. Регистр В рекомендуетсяиспользовать в качестве счетчиков циклов.

<span Times New Roman",«serif»;font-weight:normal">Набор альтернативныхрегистров.

Z80 имеетальтернативный набор регистров для А, Р, Н,1ДС, D,E. Они обозначаются A’,F, ит.д. Существуют две специальные команды, которые позволяют обменивать основнойи альтернативный набор регистров. После обмена для Z80 альтернативный наборстановится основным, а основной — альтернативным.

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

Регистровыепары IX и IY используются для выполнения операции, которая включает индексацию.Это дает возможность работать со списком или таблицей. Начальный адрес спискаили таблицы должен быть первоначально занесен в подходящую пару регистров IXиди IY. В программе монитора SPECTRUMa lY пара содержит адрес 23610 (5C3Ah),что является начальным адресом таблицы системных переменных. IX пара широкоиспользуется как указатель в программах обработки команд LOAD, SAVE, VERIFY,MERGE.

Указательстека — это адресный регистр. Он используется для указания в памяти областимашинного стека и всегда рассматривается как одинарный двухбайтовый регистр.Z80 использует стек, заполненный в памяти сверху вниз. Аналогией являетсямагазин автомата — по принципу последний пришел, первым ушел. Указатель стекаиспользуется для указания различных размещений в области стека в каждом случае.Указатель стека всегда содержит адрес, куда последний раз была произведеназапись. Поэтому управляющее устройство сначала уменьшает значение указателястека, а затем помещает туда значение. Пересылка в стек двухбайтовая, и поэтомууказатель стека должен быть дважды уменьшен при помещении в стек и дваждыувеличен при выборке из стека. Машинный стек обычно используется как местосохранения адресов возврата, но можно использовать его как рабочую область.

Регистр 1 — регистр вектора прерываний, используется для размещения адресов устройствввода-вывода. Однако BSPECTRUMe эта возможность не используется и 1- регистриспользуется для генерации TV — сигнала.

Регистр R-регенерации памяти. Он является простым счетчиком, который увеличивается каждыйраз при выполнении цикла регенерации. 3начение в регистре циклически изменяетсяот 0 до 255.

<span Times New Roman",«serif»">Арифметико-логическое устройство (АЛУ).

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

СИСТЕМА КОМАНДМИКРОПРОЦЕССОРА Z-80.

<span Times New Roman",«serif»">Команды и данные.

Командыподелены на 18 групп, каждая из которых состоит из тех команд, которые сильнопохожи друг на друга. Существует шесть классов данных, которые могут следоватьза командой.

<span Times New Roman",«serif»">1.0днобайтовая константа (+DD).

Это число Ав диапазоне 00-FFh,(0-65535d). Те команды, которые требуют за собойоднобайтовую константу, имеют мнемоническую приставку +DD. Например: LDHL,+DDDD.

<span Times New Roman",«serif»">2. Двухбайтовая константа (+DDDD).

Это число Ав диапазоне 0000-FFFFh (0-65535d).Те команды, которые требуют за собойдвухбайтовую константу, имеют мнемоническую приставку +DDDD. Например: LDHL,+DEDD.

<span Times New Roman",«serif»">3. Двухбайтовый адрес (ADDV).

Это число Ав диапазоне 0000-FFFFh (0-65535d), то есть число, которое используется как адреспамяти. Те команды, которые требуют за собой двухбайтовый адрес, имеютприставку ADDV, например: JP ADDV.

<span Times New Roman",«serif»">4. Однобайтовая константа смещения(e).

Это число Ав диапазоне 00-FFh(-128+127d).Число вегда представлено в дополнительном коде.Текоманды, которые требуют за собой однобайтовую константу, имеют мнемоническуюприставку e.Наприме:JP e.

<span Times New Roman",«serif»">5. Однобайтовая индуксирующая константасмещения (+D).

Это число Ав диапазоне 00-FFh, (-128 +127d) представлено дополнительной арифметике. Текоманды, которые требуют за собой однобайтовую индексирующую константусмещения, имеют мнемоническую приставку +D. Например: LD A,(JX+D)

6Однобайтовая индексирующая константа смещения и однобайтовая константа(+D,+DD).

Это двачисла в диапазоне 00-FFh, первое из которых рассматривается как десятичное-128+127, а второе — как десятичное 0-255. Команды, требующие два байта данных,сопровождаются мнемониками D и +DD.Например:LD (JX+D),+DD.

<span Times New Roman",«serif»">ГРУППАКОМАНД.

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

Группа 1. Команда “нет операции”

       Мнемоника                     16-ный код     

           NOP                                        00

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

Группа 2. Команды загрузки регистраконстантами.

         Мнемоника                     16-ный код        

         LD A,+DD                         3EDD

         LD H,+DD                         26DD

         LD L,+DD                          2EDD

         LD B,+DD                         06DD

         LD C,+DD                         0EDD

         LD D,+DD                        16DD

         LD E,+DD                        lEDD

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

Сведущиекоманды выполняют загрузку пары регистров двухбайтовыми константами.

         Мнемоника                     16-ный код        

         LD HL,+DDDD                  21 DD DD

         LD BC,+DDDD                  01 DD DD

         LD DE,+DDDD                  11 DD DD

         LD IX,+DDDD                    DD 21 DD DD 

         LD IY,+DDDD                    FD 21 DD DD

         LD SP,+DDDD                  31 DD DD

Строкакоманды требует 3 или 4 байта в памяти. Код операции занимает 1 или 2 байта, и2 байта занимает константа. Первый байт константы загружается в младшийрегистровой пары т.е. L,C,E,X,Y,P, а второй байт в старший регистр, т.е. H,B,D,l,S. Эти команды записывают  в регистровые пары данные, которые часторассматриваются программистом как двухбайтовый адрес, но могут быть также идвухбайтовым числовым значением  и двумяотдельными однобайтовыми числовыми значениями.

Команды этойгруппы не изменяют флагов.

Группа 3.Команды копирования регистров и обмена.Существует 59 команд, которые выполняют копирование регистров и регистровых пар.Эти команды можно разделить на 4 подгруппы.

ПодгруппаА.Команды копирования типарегистр-регистр. Следующая таблица дает коды операций команд, выполняющих  копирование содержимого одного регистра вдругой.

                  LD       LD     LD        LD       LD       LD        LD   

 регистр   A,R      H,R    L,R      B,R    C,R       D,R       E,R

      A           7F       67     6F        47       4F          57         5F

      H           7C      64     6C        44       4C          54         5C

      L            7D    65      6D         45       4D          55         5D

      B           78       60     68         40       48          50          58

      C           79       61     69        41        49           51         59          

      D           7A      62      6А        42        4A           52         5A                

      E            7B      63     6B        43        4B           53         5B

Ни одна изкоманд, приведенных в таблице, не изменяет флаги. Существует кроме того 4 командыдля I и R регистров.

        Мнемоника                     16-ный код        

         LD A,I                                ED57

         LD A,R                              ED5F

         LD I,A                                ED47

         LD R,A                               ED4F

Этипоследние команды влияют на флаг переполнения четности.

ПодгруппаВ. Команды копирования типа регистровая пара- регистровая пара

Существуеттолько 3 команды этой подгруппы. Они копируют значения в указатель стека.

        Мнемоника                     16-ный код        

         LD SP,HL                           F9

         LD SP,IX                             DD F9

         LD SP,IY                              FDF9

Эти команды не изменяют содержимое флагов. Заметим, если содержимоерегистровой пары надо копировать в другую регистровую пару и эти команды неподходят, необходимо выполнить две команды копирования регистр-регистр.Например, нет команды LD HL,DE, и её заменяют, используя    LD H,D и LD L,E. Или содержимое первой регистровой пары может быть сохранено встеке и затем переписано во вторую регистровую пару.

ПодгруппаС. Команды  DE,NL.

Существуеттолько одна команда, которая позволяет обменивать содержимое регистровых пар впределах основного набора регистров.  

    Мнемоника                     16-ный код        

    EXX DE,HL                          EB

Это оченьполезная команда позволяет обменивать содержимое пары DE с содержимым пары HL.Значение флагов не изменяется. Команда используется, когда необходимо, чтобыадрес или двухбайтовая числовая константа из пары DE была записана в пару HK,но содержимое последней не было потеряно.

ПодгруппаD. Команды альтернативного наборарегистров.

В этойгруппе 2 команды.

    Мнемоника                     16-ный код        

    EXX                                        D9

    EX AF,A’F                               08

Команда EXXвызывает переключение регистров H,L,B,C,D,E на регистры H’,L’,B’,C’,D’,E’.Команды EXAF,A’F, как следует из мнемоники, переключают рег. A и F на A’ F.Альтернативные регистры часто используются для хранения адресов и данных.Помещенные в альтернативные регистры эти значения сохраняются от искажения имогут быть легко и просто восстановлены.

Группа 4.Команды загрузки регистров изпамяти.

В системуZ80 входит много команд, позволяющих находить данные в памяти и затем загружатьих в регистры. Все эти команды требуют, чтобы программист указал адрес или паруадресов в памяти, откуда данные должны быть скопированы в регистр-получательданных.

Команды этойгруппы лучше рассматривать как команды трех подгрупп в соответствии с методомадресации. Виды адресации:

·<span Times New Roman"">     

косвенная — двухбайтовый адрес уже размещен в адресной регистровой паре;

·<span Times New Roman"">     

непосредственная-действительный адрес указан в двух байтах вслед за кодом операции;

·<span Times New Roman"">     

индексная — адрес данных должен быть вычислен путем сложения значения смещения D с основнымадресом, уже содержавшимся в регистровой паре IX или IY.

ПодгруппаA .Команды, использующие непосредственнуюадресацию.  

Мнемоника                         16-ный код

LD A ,(ADDR)                       3A ADDR

LD HL ,(ADDR)                     2AADDR

LD BC ,(ADDR)                     ED 4B ADDR

LD DE ,(ADDR)                     ED 5B ADDR

LD D ,(IX+D)                         DD 5D D 

LD E ,(IX+D)                         DD 5E D

Для команд,использующих пару IY, надо изменить IX на IY и DD на FD. Ни одна из команд этойгруппы не меняет флаги.

Группа 5.Команды записи в памятьсодержимого регистра или константы.

Обычнокоманды этой группы выполняют операции, противоположные тем, которые делаюткоманды группы 4.Команды позволяют содержимое регистров переписывать в памятьили записывать туда константы. Эти команды лучше рассмотреть по трём группам.

ПодгруппаA.Команды непосредственнойадресации.

 Мнемоника                         16-ный код

 LD(ADDR) ,A                       32 ADDR

 LD(ADDR),HL                     22 ADDR (обычная форма)

                                              ED 63 ADDR (необычная форма)

 LD(ADDR),BC                      ED 43 ADDR

 LD(ADDR),DE                      ED 53 ADDR 

 LD(ADDR),IX                        ЕD 22 ADDR

 LD(ADDR),IY                        ЕD 22 ADDR

 LD(ADDR),SP                       ЕD 73 ADDR

Приведённые команды приводят только непосредственную адресацию и важнозаметить, что нет команд для записи в память констант. Если это необходимо,константа предварительно должна быть загружена в регистр A. Затем выполняетсяLD(ADDR),A. Команды типа LD(ADDR),HL-фактически двойные команды: LD(ADDR),Lи   LD(ADDR+1),H. Команды подгруппы частоиспользуются для сохранения адресов и значений в памяти, когда эти значенияиспользуются как переменные. Например, часто используется LD(RAMTOP),HL, гдеRAMTOP -метка пары адресов памяти, используемых для хранения текущего значенияверхней границы памяти. Выборка текущего значения верхней границы может бытьпозднее выполнена команда 4 группы, например:

<span Times New Roman",«serif»">LDHL,(RAMTOP).

ПодгруппаB. Команды косвенной адресации.

Команды этойподгруппы позволяют копировать содержимое регистров в память, адрес которойсодержится в регистровой паре HL,BC или DE.

существуеттакже команда записи однобайтовой константы по адресу, указанному в паре HL.

Мнемоника                         16-ный код

LD(HL),A                             77

LD(BC),A                             02

LD(DE),A                             12

LD(HL),X                             74

LD(HL),L                             75 

LD(HL),B                             70

LD(HL),C                              71

LD(HL),D                             72

LD(HL),E                             73 

LD(HL),+DD                         36DD

ПодгруппаC.Команды индексной адресации.

Мнемоника                         16-ный код

LD(IX+D),A                           DD 77 D

LD(IX+D),H                          DD 74 D

LD(IX+D),L                          DD 75 D

LD(IX+D),B                          DD 70 D

LD(IX+D),C                          DD 71 D

LD(IX+D),E                          DD 73 D

LD(IX+D),+DD                      DD 36 DDD                                                                                      

Для команд,использующих IY-регистровую пару, надо изменить IX на IY и DD на DF.

Группа 6.Команды сложения.

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

Команды этойгруппы могут быть побелены на 3 подгруппы:

·<span Times New Roman"">     

команды ADD;

·<span Times New Roman"">     

команды INC. Специальные случаи сложения, когда кчислу прибавляется 1;

·<span Times New Roman"">     

команда ADC. Значение флага переноса прибавляется крезультату. Флаг переноса -это один из битов регистров флагов, которыйиспользуется для сигнализации о том, было ли при выполнении последнейарифметической операции переполнение регистра или байта памяти. 

Команды ADDи ADC меняют флаг переноса, а INC-не меняет.

ПодгруппаA. Команды ADD.

 Мнемоника                        16-ный код

 ADD A,+DD                             C6 DD

 ADD A,A                                   87

 ADD A,H                                   84

 ADD A,L                                    85

 ADD A,B                                    80

 ADD A,C                                    81

 ADD A,D                                    82

 ADD HL,HL                               29

 ADD HL,BC                               09

 ADD HL,DE                               19

 ADD HL,SP                                39

 ADD IX,IX                                   DD 29

 ADD IX,BC                                  DD 09

 ADD IX,DE                                   DD 19

 ADD A,E                                       83

ADD A,(HL)                                    86

ADD A,(IX +D)                                DD 86 D

Для командиспользующих IY регистр, надо поменять IX на IY и DD на FD.

Подгруппа  В.Команды INC.

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

 Мнемоника                        16-ный код

  INC A                                       3C

  INC H                                       24

  INC L                                        2C

  INC  B                                       04

  INC  C                                       0C

  INC  D                                       14

  INC E                                        1C

  INC  (HL)                                   34

  INC  (IX+D)                               DD 34 D

  INC  HL                                     23

  INC  BC                                     03

  INC DE                                      13

  INC  SP                                      33

  INC   IX                                       DD 23

  INC   IY                                       FD 23

ПодгруппаС. Команды ADC.

 Мнемоника                        16-ный код

 ADC A,+DD                             CE DD

 ADC A,A                                   8F

 ADC A,H                                   8C

 ADC A,L                                    8D

 ADC A,B                                    88

 ADC A,C                                    89

 ADC A,D                                    8A

 ADC A,E                                     8B

 ADC A,(HL)                                 8E

 ADC A,(IX+D)                               DD 8E

 ADC A,(IY+D)                               FD 8E

 ADC HL,HL                                  ED 6A

 ADC HL,BC                                 ED 4A

 ADC HL,DE                                 ED 5A

 ADC HL,SP                                 ED 7A

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

Группа 7.Команды вычитания.

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

·<span Times New Roman"">     

команда SUB;

·<span Times New Roman"">     

команда DEC. Специальный случай вычитания, когда изчисла вычитается 1;

·<span Times New Roman"">     

команда SBC. Значение флага переноса вычитается изрезультата. Все команды SUB и SBC изменяют флаг переноса в зависимости от того,требовался  ли двоичный заём. Команда DECоставляет флаг переноса без изменения.

Группа 8.Команды сравнения.

Команды этойгруппы используют очень часто во всех программах. Они позволяютпрограммисту сравнить значение, находящееся в регистре A, с константой,значением в регистрах и области памяти. Команды выполняют операцию вычитаниебез переноса, без запоминания результата вычитания и только устанавливают флагив регистре флагов. Первоначальное значение в регистре А не изменяется. Флагпереноса устанавливается, как при операциях вычитания. Сравнение, которое>=, сбрасывает флаг переноса, а < устанавливает. Команды этой группы-команда одинарного сравнения.

 Мнемоника                         16-ный код

 CP +DD                              FE  DD

 CP A                                    BF

 CP  H                                   BC

 CP L                                    BD

 CP B                                    B8

 CP C                                    B9

 CP D                                    BA

 CP E                                     BB

CP (HL)                                 BE

CP (IX) +D                             DD BED

CP (IY) +D                              FD BED

<span Times New Roman",«serif»">Группа 9.Команды  логики.

Это командыAND, OR, XOR.Они переменяются к регистру А и другой заданной переменной.Операция выполняется побитно, и 8-битовый результат возвращается в регистр А.

ПодгруппаА. Команда AND.

Логическаяоперация выполняется над двумя двоичными цифрами и результат равен 1, толькоесли оба тестируемых биты установлены. В противном случае результирующий битравен 0.Командой AND удобно сбрасывать биты 0-7 регистра А. Этот процессназывается демаскированием и позволяет проверять определённые биты байтаданных.

 Мнемоника                        16-ный код

 AND +DD                              E6

ПодгруппаB. Команда OR.

Логическаяоперация “или” выполняется над двумя двоичными цифрами, и результат равен1, если одна или обе цифры установлены. В противном случае бит результатасброшен.

 Мнемоника                        16-ный код

 OR +DD                                 E6 DD

Подгруппа C. Команда XOR.

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

Группа10.Команда DJNZ.

Единственнаякоманда в этой группе является одной из самых полезных и самой широкоиспользуемой в Z80.Работа этой команды может быть уподоблена циклу FOR-NEXTпрограммы бэйсик  следующего вида

еще рефераты
Еще работы по компьютерам и переферийным устройствам