Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задание для выполнения лабораторной работы №3.docx
Скачиваний:
0
Добавлен:
26.06.2025
Размер:
59.3 Кб
Скачать
    1. Определение модуля числа

В микроЭВМ числа представляются В дополнительном коде, поэтому при определении модуля нельзя ограничиться только определением знака числа, информация о котором содержится в старшем бите. Если число положительное, то его следует оставить в том же виде. Если же число отрицательное, то его необходимо побитно инвертировать и добавить 1 к младшему значащему разряду полученного числа.

Знак можно определить с помощью ряда команд, в частности, используя операцию маскирования или засылку старшего бита в триггер переноса с последующим его анализом. Иногда выполнение этих операций нежелательно, т.к. оно сопровождается изменением содержимого аккумулятора. Целесообразно применять команду логического сложения (или умножения) содержимого аккумулятора с самим собой. При этом содержимое аккумулятора не изменяется, а флаги регистра F устанавливаются в состояние, соответствующее результатам операции.

На рис. 42 приведена структурная схема программы определения модуля числа, находящегося в регистре Е.

(A) ← (E)

MOV A,E

ORA A

JP

CMA

INR A MOV E,A

Рисунок 42 – Блок-схема программы определения модуля 8-разрядного числа (7 бит – знаковый)

    1. Поиск максимального числа в массиве чисел.

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

Допустим, числа занимают область ОЗУ, с адреса 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 – Блок-схема программы определения максимального из массива чисел