Программа умножения 16-битного числа

В следующем примере программы мы выполним умножение 16-битного числа 90h на 3. Такой алгоритм позволит вам умножать любые числа.

1; Автор: Довгополов Евгений Сергеевич
2
3main:
4    lxi     d, 90h        ; Загружаем шестнадцатеричное значение 90h в пару регистров DE
5    mvi     a, 03h        ; Копируем число на которое будем искать в регистр A
6
7    lxi     h, 0000h      ; Загружаем шестнадцатеричное значение 0000h в пару регистров HL
8    mvi     c, 08h        ; Устанавливаем счётчик цикла C равным 8
9
10MultiplyLoop:
11    dad     h             ; Умножаем значение в HL на 2
12    ral                   ; Поворачиваем значение в регистре A на 1 влево с учётом флага CY
13    jnc     Next          ; Если C=0, то переходим на метку Next
14
15    dad     d             ; К содержимому пары регистров HL прибавляем содержимое пары регистров DE
16
17Next:
18    dcr     c             ; Уменьшаем значение регистра-счётчика C на 1
19    jnz     MultiplyLoop  ; Выполняем переход на метку MultiplyLoop пока C не будет равен 0
20
21    hlt                   ; Останавливаем выполнение программы
Made on
Tilda