Реферат

Реферат Асемблер Задание 3 - вар2

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 11.11.2024


LXI H, 8100 ;задание адреса первого элемента (HL:=8100H)

MVI D, 40 ;задание кол-ва элементов

XRA A ;обнуление аккумулятора

MVI C, 00 ;обнуление регистра C (счетчик переполнений)

X1: ADD M ;суммирование (A:=A+M(HL))

JNC X2 ;перейти на Х2 если нет переполнения

INR C ;произошло переполнение → прибавить 1 к старшему байту

результата суммирования

X2: INX H ;присвоить HL адрес следующей ячейки (HL:=HL+1)

DCR D ;уменьшение счётчика кол-ва элементов на 1 (D:=D-1)

JNZ X1 ;если элемент не последний - продолжить суммирование

MOV B, A ;пересылка младшего байта результата суммирования в регистр В

Сумма 64х элементов находится в паре BC

MVI D, 06 ;задание кол-ва сдвигов (6 сдвигов равносильно делению на 64)

CALL DIV ;вызов подпрограммы деления

После DIV: Среднее значение находится в регистре В

LXI H, 8100 ;задание адреса первого элемента (HL:=8100H)

MVI D, 40 ;задание кол-ва элементов

MOV A, M ;будем считать первый элемент минимальным (A:=M(HL))

X3: CMP M ;сравниваем минимальный элемент с текущим (A-М(HL))

JM X4 ;при S=1 (A-M(HL)<0 → A<M(HL)) переход на Х4

MOV A, M ;если же S=0 (A-M(HL)≥0 → AM(HL)), сделать текущий элемент

наименьшим

X4: INX H ;присвоить HL адрес следующей ячейки (HL:=HL+1)

DCR D ;уменьшение счётчика кол-ва элементов на 1 (D:=D-1)

JNZ X3 ;если элемент не последний - продолжить

MOV C, A ;пересылка значения AMIN в регистр C

Минимальное значение находится в регистре С

MOV A, C ;пересылаем минимальное значение в аккумулятор (CA)

RAR ;циклический сдвиг вправо через перенос (деление на 2)

ORA A ;обнуление флага переполнения (ТС:=0)

MVI C, 00 ;обнуление регистра C (счетчик переполнений)

ADD B ;суммирование: АСР + АMIN/2

JNC X5 ;перейти на Х5 если нет переполнения

INR C ;произошло переполнение → прибавить 1 к старшему байту

результата Y

X5: MOV B, A ;пересылаем младший байт из аккумулятора в регистр B

Значение (Аср + Amin/2) находится в паре ВС

MVI D, 02 ;задание кол-ва сдвигов (2 сдвига равносильно делению на 4)

CALL DIV ;вызов подпрограммы DIV (деление на 4)

После DIV: Y находится в регистре В

MOV A, B ;пересылаем значение Y в регистр аккумулятор (BA)

STA 8150 ;пересылаем значение Y (окончательный результат) в ячейку 8150H

RST 1 ;выход из программы

DIV: MOV A, C ;пересылаем старший байт в аккумулятор (CA)

RAR ;циклический сдвиг вправо через ТС

MOV C, A ;возврат в C старшего байта

MOV A, B ;пересылаем младший байт в аккумулятор (BA)

RAR ;циклический сдвиг вправо через ТС

MOV B, A ;возврат в B младшего байта

ORA A ;обнуление флага переполнения (ТС:=0)

DCR D ;уменьшение счётчика кол-ва сдвигов на 1 (D:=D-1)

JNZ DIV ;если сдвиг не последний – продолжить

RET ;выход из подпрограммы DIV


1. Контрольная работа на тему Духовный кризис современной цивилизации
2. Доклад на тему Культурное строительство 20-30 годов в Куйбышевской области
3. Реферат Международное разделение труда и роль России в нем
4. Реферат Эволюция менеджмента
5. Контрольная работа Особенности формирования федерального бюджета
6. Статья Экология Москвы. XII в. начало XX в.
7. Сочинение на тему Блок а. а. - Александр блок и революция
8. Курсовая на тему Применение ККТ в современной коммерческой деятельности
9. Реферат История железной дороги Санкт-Петербург - Москва
10. Реферат Латинская Америка в повестке дня российской дипломатии