Рубрики

Программа 8086 для добавления двух 8-битных чисел BCD

Проблема — Напишите программу на микропроцессоре 8086, чтобы узнать о добавлении двух 8-битных чисел BCD, где числа хранятся с начального адреса памяти 2000: 500 и сохраняют результат в адресе памяти 2000: 600 и переносятся в 2000: 601.

Пример —

Алгоритм —

  1. Загрузить данные со смещения 500 в регистр AL (первое число)
  2. Загрузить данные со смещения 501 в регистр BL (второе число)
  3. Добавьте эти два числа (содержимое регистра AL и регистра BL)
  4. Применить инструкцию DAA (десятичная корректировка)
  5. Сохранить результат (содержимое регистра AL) по смещению 600
  6. Установите регистр AL на 00
  7. Добавить содержимое регистра AL к себе с переносом
  8. Сохранить результат (содержимое регистра AL) по смещению 601
  9. Стоп

Программа —

MEMORY ADDRESSMNEMONICSCOMMENT
400MOV AL, [500]AL<-[500]
404MOV BL, [501]BL<-[501]
408ADD AL, BLAL<-AL+BL
40ADAADECIMAL ADJUST AL
40BMOV [600], ALAL->[600]
40FMOV AL, 00AL<-00
411ADC AL, ALAL<-AL+AL+cy(prev)
413MOV [601], ALAL->[601]
417HLTEND

Пояснение —

  1. MOV AL, [500] : загрузить данные со смещения 500 для регистрации AL
  2. MOV BL, [501] : загрузить данные из смещения 501 для регистрации BL
  3. ADD AL, BL : ДОБАВИТЬ содержимое регистров AL AND BL
  4. DAA : десятичная настройка AL
  5. MOV [600], AL : сохранить данные из регистра AL в смещение 600
  6. MOV AL, 00 : установить значение регистра AL на 00
  7. ADC AL, AL : добавить содержимое регистра AL в AL с переносом
  8. MOV [601], AL : сохранить данные из регистра AL в смещение 601
  9. HLT : остановка

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

Программа 8086 для добавления двух 8-битных чисел BCD

0.00 (0%) 0 votes