Сформировать массив из 10 простых чисел больше 100 - Assembler

Узнай цену своей работы

Формулировка задачи:

Люди помогите, пожалуйста! Ничего не смыслю в ассемблере, завтра надо сдать! Задание: Сформировать массив из 10 простых чисел больше 100.[

Решение задачи: «Сформировать массив из 10 простых чисел больше 100»

textual
Листинг программы
rd #100
wr r0
rd #2
wr r1
rd #10
wr r2
rd #90
wr r3
l: rd r0
div r1
mul r1
sub r0
jz o
rd r0
div #2
sub r1
js h
rd r1
add #1
wr r1
jmp l
o: rd r0
add #1
wr r0
rd #2
wr r1
jmp l
h: rd r0
wr @r3
rd r3
add #1
wr r3
rd r2
sub #1
wr r2
jnz o
hlt

Объяснение кода листинга программы

  1. Подготовительные операции перед циклом: — rd #100 - считывание числа 100 в регистр r0; — wr r0 - запись числа 100 в регистр r0; — rd #2 - считывание числа 2 в регистр r1; — wr r1 - запись числа 2 в регистр r1; — rd #10 - считывание числа 10 в регистр r2; — wr r2 - запись числа 10 в регистр r2; — rd #90 - считывание числа 90 в регистр r3; — wr r3 - запись числа 90 в регистр r3.
  2. Цикл поиска простых чисел: — l: rd r0 - считывание числа из регистра r0; — div r1 - деление числа из регистра r0 на число из регистра r1; — mul r1 - умножение числа из регистра r1 на число из регистра r0; — sub r0 - вычитание числа из регистра r0 на число из регистра r1; — jz o - переход на метку o, если результат вычитания равен нулю; — rd r0 - считывание числа из регистра r0; — div #2 - деление числа из регистра r0 на 2; — sub r1 - вычитание числа из регистра r1 на число из регистра r0; — js h - переход на метку h, если результат вычитания равен нулю; — rd r1 - считывание числа из регистра r1; — add #1 - прибавление единицы к числу из регистра r1; — wr r1 - запись числа из регистра r1 в регистр r1; — jmp l - переход на начало цикла; — o: rd r0 - считывание числа из регистра r0; — add #1 - прибавление единицы к числу из регистра r0; — wr r0 - запись числа из регистра r0 в регистр r0; — rd #2 - считывание числа 2 в регистр r1; — jmp l - переход на начало цикла; — h: rd r0 - считывание числа из регистра r0; — wr @r3 - запись числа из регистра r0 в память по адресу, хранящемуся в регистре r3; — rd r3 - считывание числа из памяти по адресу, хранящемуся в регистре r3; — add #1 - прибавление единицы к числу из регистра r3; — wr r3 - запись числа из регистра r3 в память по адресу, хранящемуся в регистре r3; — rd r2 - считывание числа из регистра r2; — sub #1 - вычитание единицы из числа из регистра r2; — wr r2 - запись числа из регистра r2 в регистр r2; — jnz o - переход на метку o, если результат вычитания не равен нулю; — hlt - остановка работы процессора.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5
Похожие ответы