русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Разветвлений


Дата добавления: 2014-11-28; просмотров: 696; Нарушение авторских прав


 

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

Для решения данной задачи примем, что адрес первого числа 0900Н, тогда второе число будет храниться по адресу 0901Н, а результат необходимо будет поместить по адресу 0902H (для решения данной задачи на УМК-80 можно задаться любыми адресами ОЗУ в диапазоне 0800 ¸0ВFF).

На рис. 2.1 приведена блок-схема алгоритма решения данной задачи, построенная из операций, выполняемых МП серии КР580. Рассмотрим операции, выполняемые в каждом из блоков схемы-алгоритма.

Блок 1 производит запись в регистровую пару НL адреса первого числа 0900Н (мнемоническое обозначение команды LXI H, 0900Н).

Блок 2 производит прием в аккумулятор содержимого ячейки, ОЗУ (М), адресом которой служит содержимое пары регистров HL. Таким образом, в регистр А принимается первое из чисел; эта операция может быть выполнена командой пересылки регистр-регистр (мнемоническое обозначение команды МОV А, М).

Блок 3 формирует в паре регистров НL адрес второго числа (0901H); эта операция выполняется командой приращения пары регистров (мнемоника команды INX H).

 
 


0900H ® HL
   
(M) ® A
   
(HL) + 1 ® HL
   
(A) – (M) ® A
   
(HL) + 1 ® HL
   
(A) ® M

 

Рис.2.1. Блок-схема алгоритма вычитания чисел, хранящихся в памяти

 

Блок 4 производит вычисление разности содержимого аккумулятора (А) и содержимого ячейки ОЗУ (М), адресом которой служит содержимое пары регистров HL; операция выполняется командой вычитания SUB M.



Блок 5 формирует в паре регистров адрес ОЗУ (0902Н), куда необходимо поместить результат; эта операция выполняется командой приращения пары регистров INX H.

Блок 6 пересылает в память (по адресу 0902Н) полученную в аккумуляторе разность; выполняющая эту операцию команда имеет мнемонику МОV M, А.

В табл. 2.1 приведена программа рассматриваемой задачи на языке Ассемблер и в машинных кодах.

Команды программы при отсутствии условных и безусловных переходов размещаются в ячейках памяти с последовательно нарастающими адресами. При написании данной программы размещение команд произведено, начиная с ячейки, имеющей адрес 0800Н. Для того чтобы после выполнения данной программы на УМК-80 управление было передано системной программе Монитор, в конце программы добавлена команда RST 7.

Таблица 2.1

Программа вычитания чисел

Адрес Н-код Метка Мнемоника Операнд Машинный код Комментарий
  LXI H, 0900Н 21 00 09 Блок 1
  MOV А, М Блок 2
  INX H Блок 3
  SUB М Блок 4
  INX H Блок 5
  MOV М, А Блок 6
  RST FF Переход к программе Монитор

 

Пример 2.2. Требуется сложить два числа 6 и 10 и их сумму поместить в регистр D. Перед сложением числа должны храниться соответственно в регистрах В и С.

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

На рис.2.2 приведена блок-схема алгоритма решения данной задачи. Рассмотрим операции, выполненные в каждом из блоков.

Блок 1 загружает непосредственно в регистр В число 6; эта операция выполняется командой пересылки МVI B, 06Н.

Блок 2 загружает непосредственно в регистр С число 10; эта операция выполняется командой пересылки МVI C, 0АН (0А – Н-код числа 10).

Блок 3 производит пересылку первого числа из регистра В в аккумулятор (А), т.к. при выполнении арифметических и логических операций один из операндов обязательно должен находиться в аккумуляторе (исключение – команда DAD); эта операция выполняется командой пересылки МОV А, В.

 
 


6 ® B
   
10 ® C
   
(B) ® A
   
(A) + (C) ® A
   
(A) ® D

 

Рис. 2.2 Блок-схема алгоритма сложения двух чисел 6 и 10

 

Блок 4 производит вычисление суммы содержимого аккумулятора (А) регистра С, т.е. первого и второго чисел; мнемоника команды ADD C.

Блок 5 производит пересылку суммы двух чисел из аккумулятора (А) в регистр D; мнемоника команды MOV D, А.

В табл. 2.2 приведена программа рассматриваемой задачи на языке Ассемблер и в машинных кодах. Размещение команд произведено с ячейки ОЗУ, имеющей адрес 0800Н.

Таблица 2.2

Программа сложения двух чисел 6 и 10

Адрес Н-код Метка Мнемоника Операнд Машинный код Комментарий
  MVI В, 06Н 06 06 Блок 1
  MVI C, 0АН 0Е 0А Блок 2
  MOV А, В Блок 3
  ADD С Блок 4
  MOV D, А Блок 5
  RST FF Переход к программе Монитор


<== предыдущая лекция | следующая лекция ==>
КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ | Задание для самостоятельной работы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.032 сек.