В следующем примере программы мы выполним поиск самого маленького элемента в массиве и сохраним результат в переменной.
1; Автор: Довгополов Евгений Сергеевич 2 3array:db23h,15h,37h,42h,51h,68h,74h,89h,92h,10h 4result:db00h 5 6main: 7lxih,array; Загружаем адрес переменной array в пару регистров HL 8mvic,09h; Устанавливаем счётчик цикла C равным 9 9 10mova,m; Предположим что первый элемент массива является наименьшим элементом 11movb,a; Копируем значение регистра A в регистр B 12 13FindSmallestLoop: 14inxh; Увеличиваем значение пары регистров HL на 1 15mova,m; Копируем значение в памяти на которую указывает пара регистров HL в A 16cmpb; Выполняем сравнение значения в регистре A со значением в регистре B 17jcUpdateSmallest; Если C=1, то переходим на метку UpdateSmallest 18 19jmpContinueLoop; Выполняем безусловный переход на метку ContinueLoop 20 21UpdateSmallest: 22movb,a; Копируем A в B. Обновляем наименьший элемент массива 23 24ContinueLoop: 25dcrc; Уменьшаем значение регистра-счётчика C на 1 26jnzFindSmallestLoop; Выполняем переход на метку FindSmallestLoop пока C не будет равен 0 27 28mova,b; Копируем значение регистра B в регистр A 29staresult; Сохраняем значение регистра A в памяти (result) 30 31hlt; Останавливаем выполнение программы