Название: Асемблер Задание 4 - вар2
Вид работы: реферат
Рубрика: Астрономия
Размер файла: 16.14 Kb
Скачать файл: referat.me-4777.docx
Краткое описание работы: : LXI H, 8100 ;задание адреса первого элемента (HL:=8100H) ;задание кол-ва элементов XRA A ;обнуление аккумулятора ;обнуление регистра C (счетчик переполнений)
Асемблер Задание 4 - вар2
SUMM : LXI H, 8100 ;задание адреса первого элемента (HL:=8100H)
MVI D , 40 ;задание кол-ва элементов
XRA A ;обнуление аккумулятора
MVI C , 00 ;обнуление регистра C (счетчик переполнений)
X 1: 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
ACP : MVI D , 06 ;задаём кол-во сдвигов (6 сдвигов – деление на 64)
MOV A , C ;пересылаем старший байт в аккумулятор (C→A)
RAR ;циклический сдвиг вправо через ТС
MOV C , A ;возврат в C старшего байта
MOV A , B ;пересылаем младший байт в аккумулятор (B→A)
RAR ;циклический сдвиг вправо через ТС
MOV B , A ;возврат в B младшего байта
ORA A ;обнуление флага переполнения (ТС:=0)
DCR D ;уменьшение счётчика кол-ва сдвигов на 1 (D:=D-1)
JNZ ACP ;если сдвиг не последний – продолжить
Среднее значение находится в регистре В
MOV A , B ;пересылаем среднее значение в аккумулятор
ADD B ;получаем в аккумуляторе значение 2АСР
JNC X3 ;перейти на Х3 если нет переполнения
INR C ;произошло переполнение → прибавить 1 к старшему байту
значения 2АСР
X 3: MOV B , A ;пересылка 2АСР в регистр В
Значение 2АСР находится в паре ВС
AMAX : LXI H, 8100 ;задание адреса первого элемента (HL:=8100H)
MVI D , 40 ;задание кол-ва элементов
MOV A , M ; будем считать первый элемент максимальным (A:=M(HL))
X4: CMP M ;сравниваем максимальный элемент с текущим (A-М(HL))
JP X 5 ;при S=0 (A-M(HL)≥0 → A≥M(HL)) переход на Х5
MOV A , M ;если же S=1 (A-M(HL)<0 → A<M(HL)), сделать текущий элемент
максимальным
X 5: INX H ;присвоить HL адрес следующей ячейки (HL:=HL+1)
DCR D ;уменьшение счётчика кол-ва элементов на 1 (D:=D-1)
JNZ X4 ;если элемент не последний - продолжить
Максимальное значение находится в аккумуляторе
RAR ;циклический сдвиг вправо через перенос (деление на 2)
ORA A ;обнуление флага переполнения (ТС:=0)
MOV E , A ;пересылка значения AMAX /2 в регистр E
Значение AMAX /2 находится в регистре Е
REZ 1: MOV A , B ; отправляем младший байт значения 2АСР в аккумулятор
SUB E ;отнимаем AMAX /2 от младшего байта значения 2АСР
JP X6 ;если результат неотрицателен - перейти на Х6
DCR C ;если результат отрицателен - вычесть 1 от старшего байта
значения 2АСР
X 6: MOV B , A ;пересылаем младший байт значения (2АСР - AMAX /2) в регистр В
Значение (2АСР - AMAX /2) находится в паре ВС
AMIN : LXI H, 8100 ;задание адреса первого элемента (HL:=8100H)
MVI D , 40 ;задание кол-ва элементов
MOV A , M ; будем считать первый элемент минимальным (A:=M(HL))
X7: CMP M ;сравниваем минимальный элемент с текущим (A-М(HL))
JM X 8 ;при S=1 (A-M(HL)<0 → A<M(HL)) переход на Х8
MOV A , M ;если же S=0 (A-M(HL)≥0 → A≥M(HL)), сделать текущий элемент
наименьшим
X 8: INX H ;присвоить HL адрес следующей ячейки (HL:=HL+1)
DCR D ;уменьшение счётчика кол-ва элементов на 1 (D:=D-1)
JNZ X7 ;если элемент не последний - продолжить
Минимальное значение находится в аккумуляторе
RAR ;циклический сдвиг вправо через перенос (деление на 2)
ORA A ;обнуление флага переполнения (ТС:=0)
MOV E , A ;пересылка значения AMIN /2 в регистр E
Значение AMIN /2 находится в регистре Е
!!!Значение Y теоретически не превышает два байта!!! YMAX = BE01H
MULT : MOV D , E ;загрузить множитель (AMIN /2) в регистр D
DCR D ;уменьшение на 1 множителя
MOV A , C ;пересылка старшего байта множимого в аккумулятор
X 9: ADD C ;суммируем по одному значению
DCR D ;уменьшить кол-во циклов суммирования на 1
JNZ X 9 ;если цикл не последний – повторить суммирование
MOV C , A ;переслать старший байт Yв регистр С
MOV D , E ;загрузить множитель в регистр D
DCR B ;уменьшение на 1 множителя
MOV A , B ;пересылка младшего байта множимого в аккумулятор
X 11: ADD B ;суммируем по одному значению
JNC X 12 ;если нет переполнения – перейти на Х12
INR C ;если было переполнение – увеличить старший байт на 1
X 12: DCR D ;уменьшить кол-во циклов суммирования на 1
JNZ X 11 ;если цикл не последний – повторить суммирование
STA 8150 ;отправить младший байт результата Y в ячейку 8150H
MOV A , C ;переслать старший байт результата Y в аккумулятор
STA 8151 ;отправить старший байт результата Y в ячейку 8151H
RST 1
Похожие работы
-
Асемблер Задание 3 - вар2
LXI H, 8100 ;задание адреса первого элемента (HL:=8100H) ;задание кол-ва элементов XRA A ;обнуление аккумулятора ;обнуление регистра C (счетчик переполнений)
-
Асемблер Контрольна - вар1
Задача #1 Найти значение функции M3=(B+E-73H)+M2-(M1+7AH)-D LDA 8150 ;M1→A ADI 7A ;A:=A+7AH MOV C, A ;A→C LDA 8160 ;M2→A SUB C ;A:=A-C
-
Асемблер Контрольна - варіант 1
Задача № 1 . Розробіть алгоритм і напишіть програму на мові Асемблера для обчислення функції: М3 = (С - М1) + (Е – (50)16) + (D + М2) , де A, B, C, D, E, H, L – регістри загального призначення мікропроцесора КР580ВМ80А; М1, М2 – операнди, розташовані в пам’яті; М3 – результат обчислень, розташований у пам’яті.
-
Регистры сдвиги
Оглавление 1. Оглавление …………………………………………………………… 2. Введение …………………………………………………………… 3. Обзор литературных источников ………………………………… 3.1. Общие сведения о регистрах …………………………………
-
Разработка четырёхразрядного счётчика со сквозным переносо
СОДЕРЖАНИЕ Введение 2 Техническое задание и исходные данные 3 Триггеры 4 RS-триггер 6 D-триггер 8 T-триггер 9 JK-триггер 10 Счётчики 12 Счетчик со сквозным переносом 13
-
Установка для механизированной наплавки кольцевого шва со слежением за вылетом электрода
Федеральное агентство по образованию ГОУ ВПО Уральский Государственный Технический Университет – УПИ имени первого президента РФ Б. Н. Ельцина Кафедра ЛП и УТ
-
Решения к Сборнику заданий по высшей математике Кузнецова Л.А. - 10 Линейная алгебра (разное)
Задача 1. Образует ли линейное пространство заданное множество, в котором определены сумма любых двух элементов и произведение любого элемента на любое число
-
Урок русского языка в 3 классе
Конспект урока русского языка в 3 классе по учебно-методическому комплекту «Русский язык» Канакиной В.П. (Учитель: Райкова Л.Н.) Визитная карточка урока.
-
Планетыгиганты Плутон
Урок-путешествие в 11 классе по астрономии на тему: «Планеты-гиганты. Плутон» Цель: рассмотреть вопросы физической природы планет-гигантов. Задачи
-
Изучение звездного неба с помощью подвижной карты
Лабораторная работа. “ Изучение звездного неба с помощью подвижной карты” Цель: Научиться определять вид звездного неба в любой момент суток произвольного дня года.