Найти минимальное положительное число в последовательности чисел (n=14) - Assembler/CompModel
Формулировка задачи:
Вот есть код, не могу разобраться в чем ошибка.
RD #40 WR 37 RD #14 WR 38 M3: RD @37 JS M1 WR 60 RD 37 WR 61 RD 38 WR 62 M2: RD @61 JS M4 SUB 60 JNS M2 RD @61 WR 60 M4: RD 61 ADD #1 WR 61 RD 62 SUB #1 WR 62 JNZ M2 M1: RD 37 ADD #1 WR 37 RD 38 SUB #1 WR 38 JNZ M3 WR 60 OUT HLT
Решение задачи: «Найти минимальное положительное число в последовательности чисел (n=14)»
textual
Листинг программы
RD #0 WR 39 RD #40 WR R0 M1: RD @R0+ JS M3 JZ M3 WR 38 RD 39 JZ M2 SUB 38 JS M3 M2: RD 38 WR 39 OUT M3: RD R0 SUB #54 JNZ M1 HLT
Объяснение кода листинга программы
- Считывание данных с прямого адреса 0, запись результата в регистратор 39.
- Считывание данных с прямого адреса 40, запись результата в регистр 0.
- Переход к блоку M1.
- Считывание данных с регистра 0, увеличение значения на 1.
- Проверка условия: результат сравнения меньше 0.
- Переход к блоку M2.
- Считывание данных с регистра 38, запись результата в регистр 39.
- Проверка условия: значение регистра 39 равно 0.
- Переход к блоку M3.
- Считывание данных с регистра 0, уменьшение значения на 54.
- Проверка условия: результат сравнения меньше 0.
- Переход к блоку M1.
- Переход к блоку M3.
- Считывание данных с регистра 0, запись результата в регистр 38.
- Переход к блоку M2.
- Считывание данных с регистра 38, запись результата в регистр 39.
- Переход к блоку M1.
- Переход к блоку M3.
- Считывание данных с регистра 0, уменьшение значения на 1.
- Переход к блоку M1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д