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