Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metod_laborat.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
212.99 Кб
Скачать

Лабораторна робота №6

Тема: Складне програмування

Мета: навчитися користуватися командами для рішення складних задач

Теоретичні відомості

Приклад. Скласти пiдпрограму зсуву елементiв масиву на певне число крокiв вліво.

Блок – схема Програма

org 0800h

call ssuv

hlt

ssuv: lxi h,kil

mov b,m

lda krok

mov c,a

lxi d,mas

inx h

nn1: dcx h

dcr c

jnz nn1

next: ldax d

mov m,a

inx h

inx d

dcr b

jnz next

ret

ds 10

kil: db 5

mas: db 5,4,8,19,2

krok: db 7

end

HL  kil

B  {(HL)}

A  (krok)

C  A

DE  mas

HL  HL + 1

HL  HL - 1

C  C - 1

ні

так

A  {(DE)}

{(HL)} A

HL  HL + 1

DE  DE + 1

B  B - 1

ні

так

Завдання: Написати алгоритм і програму у відповідності з вказаним варіантом. Програму розпочати з адреси 800H+N, N - номер варіанту. Програму відлагодити за допомогою емулятору, перевірити результати.

Варiант 1

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn= Xn-1 + Xn-2, X0=X1=1;

Варiант 2

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn= 2* Xn-1 + 3 * Xn-2, X0=0; X1=9;

Варiант 3

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = Xn-1 + Xn-2 + Xn-3 , X0=X1=1; X2=6;

Варiант 4

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = Xn-1 + 4 * Xn-3 , X0=X1=X2=2;

Варiант 5

Обчислити кiлькiсть одиниць в 8-розрядному кодi.

Варiант 6

Скласти пiдпрограму затримання на час ~ 20 мкс.

Варiант 7

Скласти пiдпрограму, яка підраховує кількість елементiв однобайтного масиву, що більше 100.

Варiант 8

Скласти пiдпрограму зсуву елементiв масиву на певне число крокiв вправо.

Варiант 9

Скласти пiдпрограму порiвняння двох масивiв, сформувати масив з номерами елементiв, якi не порівнялись.

Варiант 10

Скласти пiдпрограму порiвняння двох масивiв, елементам обох масивiв, якi не порівнялись, привласнити код 00h.

Варiант 11

Скласти пiдпрограму порiвняння двох однобайтних масивiв, знайти

суму елементiв, якi порівнялись.

Варiант 12

Cкласти пiдпрограму заповнення областi пам'ятi const.

Варiант 13

Cкласти пiдпрограму привласнення певного коду заданому елементу масиву.

Варiант 14

Cкласти пiдпрограму читання заданого елемента масиву.

Варiант 15

Скласти пiдпрограму порiвняння двох 16-бiтних кодiв, в акумулятор занести 1, якщо 1-ий код бiльше другого, 0-якщо коди еквiвалентнi i 0FFH, в iншому випадку.

Варiант 16

Скласти пiдпрограму збереження змiсту всiх РЗП в пам'ятi користувача i пiдпрограму вiдновлення їх з пам'ятi.

Варiант 17

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = Xn-1 + 2 * (Xn-2 + 1) , X0=0;X1=1;

Варiант 18

В масивi однобайтних чисел пiдрахувати кiлькiсть чисел бiльших 10, рiвних 0 i всiх iнших.

Варiант 19

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = Xn-1 + Xn-2, X0=X1=1;

Варiант 20

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = 2* Xn-1 + 3 * Xn-2, X0=0; X1=9;

Варiант 21

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = Xn-1 + Xn-2 + Xn-3 , X0=X1=1; X2=6;

Варiант 22

Використовуючи цикли, скласти програму, яка обчислює n-ий член послiдовностi, заданої рекурентним спiввiдношенням:

Xn = Xn-1 + 4 * Xn-3 , X0=X1=X2=2;

Варiант 23

Обчислити кiлькiсть одиниць в 8-розрядному кодi.

Варiант 24

Скласти пiдпрограму затримання на час ~ 20 мкс.

Варiант 25

Скласти пiдпрограму, яка підраховує кількість елементiв однобайтного масиву, що менше 100.

Варiант 26

Скласти пiдпрограму зсуву елементiв масиву на певне число крокiв вправо.

Варiант 27

Скласти пiдпрограму порiвняння двох масивiв, сформувати масив з номерами елементiв, якi не порівнялись.

Варiант 28

Скласти пiдпрограму порiвняння двох масивiв, елементам обох масивiв, якi не порівнялись, привласнити код 00h.

Варiант 29

Скласти пiдпрограму порiвняння двох однобайтних масивiв, знайти суму елементiв, якi порівнялись.

Варiант 30

Cкласти пiдпрограму заповнення областi пам'ятi const.

Контрольні питання:

  1. Яким чином можна організувати рекурсію і де краще розташувати початкові значення ?

  2. Що таке підпрограма і які команди використовують для виклику підпрограми ?

  3. Для чого використовується стек при роботі з підпрограмами ?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]