- •Задание для выполнения лабораторной работы №4
- •Программа обмена данными между регистрами блока рон и ячейкой памяти
- •Программа перемещения массива данных из памяти в регистры блока рон
- •Программа создания массива данных из содержимого регистров блока рон в памяти
- •Составить программу обмена данными между двумя ячейками памяти 0830 (7816) и 0831 (е316). Предварительно записать числа в память.
- •Программа обмена данными между двумя ячейками памяти
- •Программа обмена данными между ячейкой памяти и регистром
- •Программа организации стековой памяти
- •Число 7f16 из регистра в переписать в ячейку памяти 0800
- •Определение модуля числа
- •Состав отчета по лабораторной работе
Определение модуля числа
В микроЭВМ числа представляются В дополнительном коде, поэтому при определении модуля нельзя ограничиться только определением знака числа, информация о котором содержится в старшем бите. Если число положительное, то его следует оставить в том же виде. Если же число отрицательное, то его необходимо побитно инвертировать и добавить 1 к младшему значащему разряду полученного числа.
Знак можно определить с помощью ряда команд, в частности, используя операцию маскирования или засылку старшего бита в триггер переноса с последующим его анализом. Иногда выполнение этих операций нежелательно, т.к. оно сопровождается изменением содержимого аккумулятора. Целесообразно применять команду логического сложения (или умножения) содержимого аккумулятора с самим собой. При этом содержимое аккумулятора не изменяется, а флаги регистра F устанавливаются в состояние, соответствующее результатам операции.
На рис. 42 приведена структурная схема программы определения модуля числа, находящегося в регистре Е.
(A) ← (E)
MOV
A,E
ORA A
JP
CMA
INR A MOV E,A
Рисунок
42 –
Блок-схема
программы
определения
модуля 8-разрядного
числа (7
бит – знаковый)
Поиск максимального числа в массиве чисел.
В прикладных программах встречается задача определения максимального из нескольких чисел. Для выполнения этой операции используется команда сравнения СМР, не изменяющая содержимого аккумулятора.
Допустим, числа занимают область ОЗУ, с адреса 1 по адрес 2. Требуется поместить максимальное число в регистр В. Адреса ячеек памяти, где хранятся числа, будем указывать в регистровой паре НL. На рис. 43 приведена структурная схема для определения максимального из массива чисел.
Отметим некоторые особенности подпрограммы. Анализ массива начинается с конечного адреса (адрес 2). Окончание массива характеризуется нулевым значением числа в регистре-счетчике С.
В ряде случаев нет необходимости в хранении всего массива чисел, а достаточно определить максимальное число по мере поступления каждого нового значения. На рис. 44 приведена структурная схема такого «копирного» сравнения чисел. Поступающее новое число находится в аккумуляторе, а максимальное число помещается в регистр В.
Состав отчета по лабораторной работе
Отчет должен содержать:
титульный лист;
цель и задачи лабораторной работы;
программы, разработанные при выполнении заданий лабораторной работы;
результаты выполнения индивидуальных заданий; выводы по лабораторной работе.
(HL) ← адрес 2
LXI
H,адрес 2
MVI C,data8
(С) ← data8
MOV
A,M
DCX
H
CMP M
JNC
MOV A,M
DCR C
JZ
MOV B,A
Рисунок 43 – Блок-схема программы определения максимального из массива чисел
