10.12.2018, 16:58
общий
это ответ
Здравствуйте, lmk!
Примерно так...
Думаю, разберетесь... В тексте достаточно комментариев.
[code lang=asm]RD #3 ;количество массивов и минимальных положительных
WR R4 ;(для подсчета среднего арифметического)
RD #40 ;загрузка начального адреса первого массива
WR R0 ;в регистр R0
RD #5 ;загрузка длины массива k=5 в регистр R2
WR R2
CALL MINPOS ;ищем минимальное положительное в массиве
WR R3 ;накапливаем сумму для среднего арифметического
RD #50 ;загрузка начального адреса второго массива
WR R0 ;в регистр R0
RD #4 ;загрузка длины массива k=4 в регистр R2
WR R2
CALL MINPOS
ADD R3 ;накапливаем сумму для среднего арифметического
WR R3
RD #60 ;загрузка начального адреса второго массива
WR R0 ;в регистр R0
RD #5 ;загрузка длины массива k=5 в регистр R2
WR R2
CALL MINPOS
ADD R3 ;накапливаем сумму для среднего арифметического
DIV R4 ;делим на количество
OUT ;выводим среднее арифметическое
HLT ;останов
MINPOS:RD #0 ;обнуляем минимальное положительное
WR R5
M1:RD @R0+ ;берём очередной элемент массива (с автоинкрементом адреса)
JS NEXT ;отрицательные
JZ NEXT ; и нулевые пропускаем
WR R6 ;сохраним в R6
RD R5 ;проверим текущее минимальное положительное на 0
JZ NEW ;если найдено первое положительное, то просто сохраняем в R5
RD R6 ;только что прочитанное положительное число
SUB R5 ;сравниваем с минимальным
JNS NEXT ;если >= , то на следующее
NEW:MOV R5,R6 ;нашли очередное минимальное
NEXT:JRNZ R2,M1 ;циклим по всем элементам массива
RD R5 ;возвращаем результат в аккумуляторе
RET[/code]
5
Премного благодарен)<br>
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен