Рубрики

8085 программа для умножения двух 8-битных чисел

Проблема — Умножьте два 8-битных числа, сохраненных по адресам 2050 и 2051. Результат сохраняется по адресам 3050 и 3051. Начальный адрес программы принимается за 2000.

Пример —

Алгоритм —

  1. Мы берем добавление числа 43 семь (7) раз в этом примере.
  2. Поскольку умножение двух 8-битных чисел может быть максимум 16 бит, поэтому нам нужна регистровая пара для сохранения результата.

Программа —

Memory AddressMnemonicsComment
2000LHLD 2050H←2051, L←2050
2003XCHGH↔D, L↔E
2004MOV C, DC←D
2005MVI D 00D←00
2007LXI H 0000H←00, L←00
200ADAD DHL←HL+DE
200BDCR CC←C-1
200CJNZ 200AIf Zero Flag=0, goto 200A
200FSHLD 3050H→3051, L→3050
2012HLT

Пояснение — Используемые регистры: A, H, L, C, D, E

  1. LHLD 2050 загружает содержание 2051 в H и содержание 2050 в L
  2. XCHG обменивается содержимым H с D и содержимым L с E
  3. MOV C, D копирует содержание D в C
  4. MVI D 00 назначает 00 для D
  5. LXI H 0000 присваивает 00 к H и 00 к L
  6. DAD D добавляет HL и DE и присваивает результат HL
  7. DCR C уменьшает C на 1
  8. JNZ 200A переводит программный счетчик на 200A, если нулевой флаг = 0
  9. SHLD сохраняет значение H в ячейке памяти 3051 и L на 3050
  10. HLT прекращает выполнение программы и останавливает любое дальнейшее выполнение

Читайте дальше: Программа на языке ассемблера (микропроцессор 8085) для добавления двух 8-битных чисел

Рекомендуемые посты:

8085 программа для умножения двух 8-битных чисел

0.00 (0%) 0 votes