В следующем примере программы мы выполним обращение массива.
1; Автор: Довгополов Евгений Сергеевич 2 3array:db0Ah,09h,08h,07h,06h,05h,04h,03h,02h,01h 4 5main: 6lxih,array; Загружаем адрес переменной array в пару регистров HL 7lxid,array+09h; Загружаем адрес переменной array в пару регистров HL со смещением + 9 8mvic,05h; Устанавливаем счётчик цикла C равным 5 9 10ReverseLoop: 11ldaxd; Загружаем значение по адресу в памяти (array+смещение) в аккумулятор A 12movb,m; Копируем значение в памяти на которую указывает пара регистров HL в B 13movm,a; Копируем значение A в память на которую указывает пара регистров HL 14mova,b; Копируем значение регистра B в регистр A 15staxd; Сохраняем значение в A по адресу в памяти на которую указывает DE 16 17inxh; Увеличиваем значение пары регистров HL на 1 18dcxd; Уменьшаем значение пары регистров DE на 1 19dcrc; Уменьшаем значение регистра-счётчика C на 1 20jnzReverseLoop; Выполняем переход на метку ReverseLoop пока C не будет равен 0 21 22hlt; Останавливаем выполнение программы