Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа «Команды переходов»

Поиск

Составить рабочую программу.

Варианты заданий.

1. Сложить два однобайтных числа, находящихся в регистрах D и В. Если результат четный, то выполнить: . Если результат нечетный, то выполнить . Результат записать в ЯП (0800).

2. Сравнить два однобайтных числа, находящихся в ЯП (0800) и (0801). Если , то выполнить . Если нет, то .

3. Сложить два однобайтных числа, находящихся в ЯП (0800) и (0801). Если есть перенос в старший разряд, то выполнить , результат записать в ЯП (0802). Если нет переноса, то выполнить , результат записать в ЯП (0803).

4. Сравнить два однобайтных числа, находящихся в регистрах D и В. Если B>D, то . Если нет, то .

5. Содержимое ЯП (0800) проинвертировать. Если результат больше содержимого регистра B, записать его в ЯП (0802). Если меньше, то выполнить .


Операции Умножения и деления

Практическое занятие «Умножение и деление шестнадцатеричных чисел»

Умножение и деление шестнадцатеричных чисел, кратных 2N, осуществляется с помощью уже рассмотренных команд сдвига (RLC, RRC, RAL, RAR).

Деление шестнадцатеричных чисел, не кратных 2N, осуществляется путем вычитания. Из делимого вычитается делитель, количество произведенных вычитаний является результатом деления. Для этого в программе организуется цикл, где происходит сравнение текущего результата вычитания с делителем, а также организуется «счетчик вычитаний», в котором будет результат деления.

Пример. Число в ЯП (0800) разделить на 03H. Результат переслать в ЯП (0801).

 

Таблица 11 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
       
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  MVI D   Запись числа 00H в регистр D (организация счетчика)
     
  MVI B   Запись числа 03H в регистр B
     
  SUB B   Вычитание из содержимого А содержимое регистра B
  JC DA Условный переход по единичному значению триггера переноса по адресу (0910)
  0F 0F
090A    
090B INR D   Увеличение содержимого регистра D (счетчика) на 1

 

 

Продолжение таблицы 11.

       
090C JMP C3 Безусловный переход по адресу (0907)
090D    
090E    
090F MOV A, D 7A Содержимое регистра D переслать в аккумулятор А
  STA   Переслать содержимое аккумулятора в ЯП (0801)
     
     
  HLT   Останов

 

Лабораторная работа «Операции умножения и деления»

Варианты заданий.

Составить рабочую программу:

1. .

2. .

3. .

4. .

5. .

 


Работа с массивами чисел

 

8.1 Практическое занятие «Работа с массивами»

Определение наибольшего (наименьшего) числа из массива

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

Содержимое первой ячейки памяти заносится в аккумулятор. В регистровую пару H, L заносится адрес следующей ячейки памяти. С помощью команды сравнения CMP M производится сравнение содержимого аккумулятора и соответствующей ячейки памяти. С помощью команды перехода проверяем флаг переноса CY, если условие не выполняется, переходим к следующей ячейке памяти (увеличение содержимого регистровой пары на единицу). В противном случае в аккумулятор записывается большее (меньшее) число (регистровая косвенная адресация) и происходит переход к следующей ячейке памяти. После этого уменьшается содержимое счетчика на единицу и, пока его содержимое не равно нулю, переходим на сравнение содержимого аккумулятора и новой ячейки памяти. Когда счетчик обнуляется (выполнены все операции сравнения), в аккумуляторе находится наибольшее (наименьшее) число из массива.

 

Пример. Наибольшее число из массива (0800-0820), записать его в ЯП (0821).

 

 

Таблица 12 – Пример программы

Адрес ЯП Мнемоническое обозначение Код Комментарий
  LDA 3A Содержимое ЯП (0800) переслать в аккумулятор А
     
     
  LHI H   Запись адреса (0801) в регистровую пару (H,L)
     
     
  MVI C 0E Запись числа 20H в регистр C
     
  CMP M BE Сравнение содержимого А и регистровой пары H
  JNC D2 Условный переход по нулевому значению триггера переноса по адресу (090D)
090A 0D 0D
090B    
090C MOV A, M 7E Содержимое регистр. пары (H, L) переслать в аккумулятор А
090D INX H   Увеличение содержимого регистровой пары H на 1
090E DCR C 0D Уменьшение содержимого регистра C на 1
090F JNZ C2 Условный переход по нулевому значению результата по адресу (0908)
     
     
  STA   Переслать содержимое аккумулятора в ЯП (0821)
     
     
  HLT   Останов

 

Программа нахождения наименьшего числа из массива отличается оператором перехода JC вместо JNC.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 223; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.15.189.174 (0.006 с.)