Рубрики

Программа 8086 для определения кубов чисел в массиве из n чисел

Проблема — Напишите программу в микропроцессоре 8086, чтобы найти кубы 8-битных n чисел, где размер «n» хранится со смещением 500, а числа хранятся со смещения 501 и сохраняются результирующие числа во смещении 501 (в предположении кубов). выходит в пределах 8 бит).

Пример —

Алгоритм —

  1. Сохраните 500 в SI и загрузите данные со смещения 500 в регистр CL и установите регистр CH в 00 (для подсчета).
  2. Увеличьте значение СИ на 1.
  3. Загрузить номер (значение) из смещения SI в регистр AL.
  4. Переместите значение регистра AL в BL.
  5. Умножьте значение в регистре AL на себя.
  6. Умножьте значение в регистре AL на BL.
  7. Сохранить результат (значение регистра AL) в смещении памяти SI.
  8. Увеличьте значение СИ на 1.
  9. Цикл выше 6, пока регистр 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]
40AMOV BL, ALBL<-AL
40CMUL ALAX=AL*AL
40EMUL BLAX=AL*BL
410MOV [SI], ALAL->[SI]
412INC SISI<-SI+1
413LOOP 408JUMP TO 408 IF CX!=0 and CX=CX-1
415HLTend

Пояснение —

  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. MOV BL, AL: переместить значение регистра AL в BL.
  7. MUL AL: умножить значение регистра AL на AL.
  8. MUL BL: умножить значение регистра AL на BL.
  9. MOV [SI], AL: сохранить значение регистра AL по смещению SI.
  10. INC SI: увеличить значение SI на 1.
  11. LOOP 408: перейти к адресу 408, если CX не 0 и CX = CX-1.
  12. HLT: остановка

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

Программа 8086 для определения кубов чисел в массиве из n чисел

0.00 (0%) 0 votes