Консультация № 189821
26.09.2016, 08:44
0.00 руб.
0 2 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Три массива в памяти заданы начальными адресами и длинами. Вычис-
лить и вывести на устройство вывода среднее арифметическое парамет-
ров этих массивов.Параметр массивов это номер Количество отрицательных чисел; n = 16;
Не могу понять почему у меня под-программа бесконечно выполняется,как буд-то бесконеный цикл задал

Приложение:
rd #85
wr r1
rd #16
wr r2
call m
wr r6
rd #100
wr r1
rd #16
wr r2
call m
wr r7
rd #110
wr r1
rd #16
wr r2
call m
rd #0
wr 49
add r7
add r6
div #3
out
hlt
m: rd @r1
wr r3
l2: rd @r1+
wr r4
jns 12
rd 49
add #1
wr 49
jrnz r2,l2
ret

Обсуждение

давно
Посетитель
400192
3
28.09.2016, 10:33
общий
Адресаты:
Игорь Витальевич,помогите пожалуйста не могу подпрограмму составить только
M:
RD @R1+
JMP L3
L1:RD @R1+
JS L1
WR R3
ADD #1
L3: JRNZ R2,L1
RET
не могу понять как обнулить ячейку перед входом в п/п в которой и хотел организовать счетчик...
давно
Посетитель
7438
7205
28.09.2016, 11:03
общий
это ответ
Здравствуйте, KORSAJan!
Ошибки:
1) длина массива равна 16, и начало следующего было меньше, чем начало массива+16
2) зацикливание было из-за того, что стояла команда условного перехода jns 12. Был записан явный адрес 12 (не метка!)
Кстати, должен был быть переход на декремент счетчика цикла (а не на метку начала цикла L2)
В мини-форуме записано js L1, что тоже, сами понимаете, неправильно. Нам же надо считать отрицательные числа. И переход не туда.
3) обнуление переменной по адресу 49 надо делать в начале подпрограммы M
4) совершенно нет необходимости сохранять считанные значения. Нам надо знать только их знак
[code lang=asm h=200]rd #85
wr r1
rd #16
wr r2
call m
wr r6
rd #110
wr r1
rd #16
wr r2
call m
wr r7
rd #130
wr r1
rd #16
wr r2
call m
add r7
add r6
div #3
out
hlt
m: rd #0
wr 49
l2: rd @r1+
jns l3
rd 49
add #1
wr 49
l3: jrnz r2,l2
rd 49
ret[/code]
5
Большое спасибо,что помогли ) а то все выходные мучался сидел
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа