Рубрики

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

Проблема — Напишите программу в микропроцессоре 8086 для генерации серии GP (геометрическая прогрессия) из n чисел (числа будут только 8-разрядными), где размер «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]
414MUL BLAX<-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 для генерации серий GP из n чисел

0.00 (0%) 0 votes