Програма
Приклад 7. Пересилання даних
Дана задача являє собою пересилку даних з одного місця пам’яті в інше.
Нехай довжина масиву знаходиться в комірці пам’яті за адресою ADDR1, дані розташовуються, починаючи з адреси ADDR2 і область, в яку вони надходять починається з адреси ADDR3. Масив складається з двох елементів, розташованих відповідно в комірках з адресами ADDR2 та ADDR2+1.
(ADDR1)=2 - розмір масиву,
(ADDR2)=7EH – 1-й елемент масиву,
(ADDR2+1)=55H – 2-й елемент масиву.
В результаті: зміст комірки за адресою ADDR2 необхідно надіслати в комірку за адресою ADDR3, а зміст комірки за адресою ADDR2+1 – в комірку за адресою ADDR3+1.
ORG 800H | ||||
21 10 08 | LXI H,ADDR1 | ;HL ß ADDR1 вказівник на ;кількість | ||
MOV B,M | ;B ß {(HL)} завантажуємо ;довжину масиву | |||
11 12 08 | LXI D,ADDR3-1 | |||
TRUNS: | INX H | ; після інкрементування ;регістрових пар HL i DE ;отримуємо доступ до перших ;елементів | ||
INX D | ; адреса, куди надсилаємо дані | |||
7E | MOV A,M | ;елемент першого масиву | ||
80A | STAX D | ; {(DE)} ß A переміщення | ||
80B | DCR B | ; зменшення лічильника на 1 | ||
80C | C2 07 08 | JNZ TRUNS | ;якщо зміст В#0 перейти на ;мітку TRUNS | |
80F | HLT | |||
ADDR1: | DB 2 | |||
7E 55 | ADDR2: | DB 7EH,55H | ||
ADDR3: | DB 0 | |||
END |
Приклад 8. Знаходження максимального елементу масиву ( задача сортування ). “Бульбашковий метод”.
Нехай довжина масиву даних знаходиться в пам’яті за адресою ADDR2, а сам масив розміщується, починаючи з адреси ADDR3. Програма повинна знайти максимальне значення і помістити його в комірку за адресою ADDR1 .
(ADDR1) = 0 – max,
(ADDR2) = 3 - розмір масиву (лічильник),
(ADDR3) = 37H - 1-й елемент масиву,
(ADDR3+1) = 0F2H - 2-й елемент масиву,
(ADDR3+2) =0C6H - 3-й елемент масиву.