Консультация № 195728
27.05.2019, 19:57
0.00 руб.
0 2 1
Здравствуйте! Прошу помощи в следующем вопросе по ЭВМ Жмакина(CompModel):

Разработать программу учебной ЭВМ для решения следующей задачи. Три массива в памяти заданы начальными адресами и длинами. Вычислить и вывести на устройство вывода среднее арифметическое параметров
этих массивов
Необходимо написать текст программы и подпрограмму на задачу по CompModel: Вычислить произведение всех чисел последовательности С1, С2, ... Сn

Обсуждение

давно
Посетитель
7438
7205
05.06.2019, 10:37
общий
Адресаты:
Здравствуйте!
Вопрос: устройство вывода - это что? Регистр OUT или дисплей?
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
давно
Посетитель
7438
7205
05.06.2019, 11:04
общий
это ответ
Здравствуйте, luxv99!
Вот Вам программка. Массивы надо разместить по следующим адресам:
5 байт, начиная с40, 4 байта, начиная с 50, и 5 байт, начиная с 60
Результат в регистре OUT
[code lang=asm h=200];Даны три массива чисел. Три массива в памяти заданы начальными адресами и длинами.
;Вычислить и вывести на устройство вывода среднее арифметическое произведения всех элементов

RD #3 ;количество массивов и номеров минимальных значений
WR R4 ;(для подсчета среднего арифметического)

RD #40 ;загрузка начального адреса первого массива
WR R0 ;в регистр R0
RD #5 ;загрузка длины массива в регистр R2
WR R2
CALL PR ;ищем призведение элементов массива
WR R3 ;накапливаем сумму для среднего арифметического

RD #50 ;загрузка начального адреса второго массива
WR R0 ;в регистр R0
RD #4 ;загрузка длины массива в регистр R2
WR R2
CALL PR ;ищем призведение элементов массива
ADD R3 ;накапливаем сумму для среднего арифметического
WR R3

RD #60 ;загрузка начального адреса второго массива
WR R0 ;в регистр R0
RD #5 ;загрузка длины массива в регистр R2
WR R2
CALL PR ;ищем призведение элементов массива
ADD R3 ;накапливаем сумму для среднего арифметического

DIV R4 ;делим на количество
OUT ;выводим среднее арифметическое
HLT ;останов

;ищем произведения массива по адресу в R0, длина в R2
;результат в A
PR:RD #1 ;начальное значение произведения
WR R9 ;будем накапливать в R9

LOOP:RD @R0+ ;читаем очередной элемент в A, R0=R0+1
MUL R9 ;A=A*R9
WR R9 ;сохраним в R9
NEXT:JRNZ R2,LOOP ;по всем элементам массива
RET
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа