Сформировать массив из 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
Объяснение кода листинга программы
- Подготовительные операции перед циклом: — 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.
- Цикл поиска простых чисел: — 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 - остановка работы процессора.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д