Рубрики

Программа 8086 для генерации AP серии из n чисел

Проблема — Напишите программу на микропроцессоре 8086 для генерации серии арифметической прогрессии (AP) из n восьмибитных чисел.

Предположения —
Предположим, что размер «n» сохраняется со смещением 500, а первое число (a) сохраняется со смещением 501, а общее различие сохраняется со смещением 502. Сохранение ряда в смещении 600 адреса памяти.

Пример —

Алгоритм —

  1. Сохранить 500 в SI и 600 в DI. Загрузить данные со смещения 500 в регистр CL и установить регистр CH в 00 (для подсчета).
  2. Увеличьте значение СИ на 1.
  3. Загрузите первое число (значение) из следующего смещения (т. Е. 501), чтобы зарегистрировать AL.
  4. Сохраните значение регистра AL в смещении памяти DI.
  5. Увеличьте DI на 1.
  6. Уменьшить CL на 1.
  7. Загрузите второе число (общее различие) из следующего смещения (т. Е. 502), чтобы зарегистрировать BL.
  8. Добавьте регистр AL и BL.
  9. Сохранить результат (значение регистра AL) в смещении памяти DI.
  10. Увеличьте значение СИ на 1.
  11. Цикл выше 3, пока регистр CX не получит 0.

Программа —

MEMORY ADDRESSMNEMONICSCOMMENT
400MOV SI, 500SI<-500
403MOV CL, [SI]CL<-[SI]
405MOV CH, 00CH<-00
407INC SISI<-SI+1
408MOV AL, [SI]AL<-[SI]
40AINC SISI<-SI+1
40BMOV DI, 600DI<-600
40EMOV [DI], AL[DI]<-AL
410INC DIDI<-DI+1
411DEC CLCL<-CL-1
412MOV BL, [SI]BL<-[SI]
414ADD AL, BLAL<-AL+BL
416MOV [DI], AL[DI]<-AL
418INC DIDI<-DI+1
419LOOP 414JUMP TO 414 IF CX!=0 and CX=CX-1
41BHLTend

Пояснение —

  1. MOV SI, 500: установите значение SI на 500.
  2. MOV CL, [SI]: загрузить данные из смещения SI в регистр CL.
  3. MOV CH, 00: установить значение регистра CH на 00.
  4. INC SI: увеличить значение SI на 1.
  5. MOV AL, [SI]: загрузить значение из смещения SI в регистр AL
  6. INC SI: увеличить значение SI на 1.
  7. MOV DI, 500: установите значение DI равным 600.
  8. MOV [DI], AL: сохранить значение регистра AL по смещению DI.
  9. INC DI: увеличить значение DI на 1.
  10. DEC CL: уменьшить значение регистра CL на 1.
  11. MOV BL, [SI]: загрузить значение из смещения SI в регистр BL.
  12. MUL BL: добавить значение регистра AL с помощью BL.
  13. MOV [DI], AL: сохранить значение регистра AL по смещению DI.
  14. INC DI: увеличить значение DI на 1.
  15. LOOP 414: перейти к адресу 414, если CX не 0 и CX = CX-1.
  16. HLT: остановись.

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

Программа 8086 для генерации AP серии из n чисел

0.00 (0%) 0 votes