F CMA инвертировать число в A




Отчет по лабораторной работе № 2

Отдельные команды, простые программы

 

 

Руководитель __________ Рыбин А.А.

подпись, дата инициалы, фамилия

 

Студент ФТ 09-06 __________ Алексеев Д.А

(номер) группы подпись, дата инициалы, фамилия

 

 

Красноярск 2012

Цель работы: ознакомиться с системой команд, методами адресации процессора 8080, освоить приёмы документирования программ.

Краткие теоритические сведения

Микропроцессор 8080 имеет фиксированный набор команд. Система команд состоит из шести различных типов (групп) команд.

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

2. команды передач управления обеспечивают безусловные и услов­ные ветвления в программе;

3. команды организации подпрограмм обеспечивают условные и без­условные вызовы подпрограмм и возвраты из подпрограмм;

4. команды арифметических и логических операций, среди которых представлены: арифметические сложение и вычитание, а также логические “И”, “ИЛИ”, “НЕ”, “Исключающее ИЛИ”, сдвига вправо и влево, сравнения;

5.

 
 

команды управления стеком обеспечивают установку указателя стека, а также операции чтения и записи стека;

Рис.1 Формат регистра признаков

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

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

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

 

Исследования команд арифметических и логических операций.

Программа 2.3 (Извлекает число из ячейки памяти с адресом 0B00, инвертирующую его и записывающая результат в память по адресу 0B01.)

Адрес Маш.код Мнемокод Комментарий

0800 3A 00 0B LDA 0B00 читать число из адреса 0B00 в A

F CMA инвертировать число в A

0804 32 01 0B STA 0B01 писать число из A по адресу 0B01

0807 СF RST1 вернуться в монитор

 

Заменяя в программе команду CMA на команды INR A, DCR A, ADD A, ANA A, ORA A, CMP A, исследуем результат выполнения указанных команд по числу, записанному в ячейку с адресом 0B01. Результаты выполнения программы при различных командах в табл.1.

 

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

 

Число Команда Рез-т Признаки Комментарии
M(0B00)   M[0B01] S Z AC P CY  
  CMA EA - - - - - (A)(A)
  INR A       -   - (А)(А)+1
  DCR A       -   - (А)(А)-1
  ADD A 2A           (А)(А)+ (А)
  ANA A             (A)(A)&(А) операция логического и
  ORA A             (A)(A)Ú(А) операция логического или
  CMP A   -           (F)(A)–(А) операция логического сравнения

 

Числовое значение результата операциисохраняется в аккумуляторе, а признаки этого результата устанавливаются в битах регистра признаков F.

Формат регистра признаков представлен на рис.1.

 

 
 


Таблица №2 – Значения битов признаков.

 

Слово Назначение
Sign Знак результата: "1"– минус; "0"– плюс. Знаком двоичного числа принято считать (как в схемотехнике цифроаналогового преобразования) значение старшего бита этого числа. Поэтому в бит S просто копируется старший бит результата операции, выполняемой процессором.
Zero Нулевой результат: да–"1"; нет–"0".
CarrY В этот бит помещается перенос из старшего разряда аккумулятора при сложении или из него берётся заём в старший разряд аккумулятора при вычитании: "1"– есть перенос или заём.: "1"–нет.
Add Carry Дополнительный перенос – то же что и Carry, но для границы полубайтов результата операции (биты D3 и D4).
Parity Паритет (чётность) для числа, показывающего количество битов равных "1" в составе байта результата: чётное (Even) –"1"; нечётное (Odd) – 0.

 

Вывод: в ходе исследования команд с помощью программы 2.3 выяснилось, что команды по-разному влияют на признаки. Команда CMA (инвертирование) не влияет на признаки, а команды логических операций (ANA r, ORA r), некоторые арифметические, а так же команда сравнения (CMP r) влияют на все признаки. Команды DCR r и INR r (декрементирование и инкрементирование) не влияют на признак CY, на это необходимо обратить внимание при организации цикла, чтобы правильно выбрать условие выхода из цикла. Биты всех признаков объединены в общий регистр признаков F.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: