Програма


Приклад 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-й елемент масиву.