Программа обращения массива

В следующем примере программы мы выполним обращение массива.

1; Автор: Довгополов Евгений Сергеевич
2
3array: db 0Ah, 09h, 08h, 07h, 06h, 05h, 04h, 03h, 02h, 01h
4
5main:
6    lxi     h, array      ; Загружаем адрес переменной array в пару регистров HL
7    lxi     d, array+09h  ; Загружаем адрес переменной array в пару регистров HL со смещением + 9
8    mvi     c, 05h        ; Устанавливаем счётчик цикла C равным 5
9
10ReverseLoop:
11    ldax    d             ; Загружаем значение по адресу в памяти (array+смещение) в аккумулятор A
12    mov     b, m          ; Копируем значение в памяти на которую указывает пара регистров HL в B
13    mov     m, a          ; Копируем значение A в память на которую указывает пара регистров HL
14    mov     a, b          ; Копируем значение регистра B в регистр A
15    stax    d             ; Сохраняем значение в A по адресу в памяти на которую указывает DE
16
17    inx     h             ; Увеличиваем значение пары регистров HL на 1
18    dcx     d             ; Уменьшаем значение пары регистров DE на 1
19    dcr     c             ; Уменьшаем значение регистра-счётчика C на 1
20    jnz     ReverseLoop   ; Выполняем переход на метку ReverseLoop пока C не будет равен 0
21
22    hlt                   ; Останавливаем выполнение программы
Made on
Tilda