BigEdu.ru
» » » Асемблер Контрольна - вар1
Вернуться назад

Асемблер Контрольна - вар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

SUB D ;A:=A-D

MOV C, A ;A→C

MOV A, B ;B→A

ADD E ;A:=A+E

SUI 73 ;A:=A-73H

ADD C ;A:=A+C

STA 8170 ;A→M3


Задача #2

Написать алгоритм задержки 255 мс ± 0,1%

Поскольку 1 такт занимает 0,5 мкс, то по пропорции:

1 такт - 0,5·10-6 с

Х тактов - 255·10-3 с

тактов.

Учитывая погрешность 0,1%, результат должен составить 510000 ± 510 тактов.

Для такого кол-ва тактов будем использовать не один регистр, а регистровую пару DE.

Код задержки будет таким:

LXI D , Y

CALL DEL

… … …

DEL : DCX D ;5 тактов

MOV A , D ;5 тактов

ORA D ;4 такта

JNZ DEL ;10 тактов, если условие выполняется, и 7 тактов, если не выполняется

RET ;10 тактов

Чтобы найти Yвоспользуемся формулой: 510000 = Y(5( DCX) +5( MOV) +4( ORA) +10( JNZ) ) + 10( RET) .

510000 = 24·Y + 10 → Y = (510000–10) / 24 → Y = 21249,58 ≈ 21250 циклов. 2125010 = 530216 .

В программе использована команда ORAD, которая не влияет на содержимое аккумулятора, но влияет на флаг нулевого результата Z, по которому мы судим об окончании.

Окончательный код задержки будет выглядеть следующим образом:

LXI D , 5302 ;10 тактов

CALL DEL ;17 тактов

… … …

DEL : DCX D ;5 тактов

MOV A , D ;5 тактов

ORA D ;4 такта

JNZ DEL ;10 тактов, если условие выполняется, и 7 тактов, если не выполняется

RET ;10 тактов

В результате общее количество тактов будет: 24(один цикл) ·21250 + 10( RET) – 3( JNZ) + 10( LXI) + 17( CALL) = 510034 тактов.

Погрешность составит: .


Задача #3

Вычислить , где АСР и А MIN – среднее арифметическое и минимальное значение массива однобайтных чисел объёмом в 64 элемента.

Значения АСР и А MIN могут быть в диапазоне: . Следовательно, Y может быть в диапазоне: . Как видно, результат умещается в один регистр (байт).

Общий алгоритм программы выглядит так:

Алгоритм подпрограммы ADT (суммирования и нахождения минимального элемента):

Алгоритм подпрограммы DIV (деления через циклический сдвиг вправо с переносом):

Алгоритм подпрограммы REZ (нахождение значения Y):

<!-- так как среднее значение (АСР ) не превышает один байт, то оно находится не в паре DE, а в регистре D; это значение будет переправлено в регистр Н (пара HL уже не используется), чтобы освободить пару DE -->

Листинг программы расположен ниже:

CALL ADT ;вызов подпрограммы ADT (суммирование и нахождение минимального

элемента)

MVI B , 06 ;задание кол-ва сдвигов (B:=06H – 6 сдвигов равносильно

делению на 64)

CALL DIV ;вызов подпрограммы DIV (нахождение среднего значения)

CALL REZ ;вызов подпрограммы REZ (вычисление результата Y)

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

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

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

MVI B , 40 ;задание кол-ва элементов (B:=64D=40H)

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

LX I D , 0000 ;обнуление регистров E и D (пары DE) – старшего и младшего

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

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

X1: MOV A , M ;переслать в аккумулятор текущий элемент (A:=M(HL))

CMP C ;сравниваем содержимое аккумулятора с текущим наименьшим

значением (A-C)

JP X 2 ;при TS=0 (A-C≥0 → A≥C) переход на Х2

MOV C , A ;если же TS=1 (A-C<0 → A<C), сделать текущий элемент наименьшим

X 2: ADD D ;суммирование (A:=D+A)

MOV D, A ;пересылкаA→D

JNC X3 ;перейти на Х3 если нет переполнения

INR E ;произошло переполнен

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по астрономии Задача #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
Оценок: 1007 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru