MN: RD @R1+ ;читаем очередное значение, начиная с первого
js L1 ;отрицательное?
jrnz r2,MN ;нет, уменьшаем счетчик, проверяем на 0, если не 0 - на начало
rd #0 ;прошли весь массив, отрицательных не нашлм, возвращаем 0
ret
L1: WR R3 ;нашли отрицательное, соханим в r3, считаем его максимальным
jrnz r2,L2 ;уменьшаем счетчик, если не 0 - продолжаем поиск
jmp L4 ;счетчик = 0 - имеем одно отрицательное значение,
;которое последнее в массиве, и которое будет максимальным
L2: RD @R1+ ;читаем очередное значение
jns L3 ;не отрицательное - на уменьшение счетчика
WR R4 ;нашли очередное отрицательное, сохраним его в r4
SUB R3 ;сравним с максимальным
JS L3 ;< - максимальный не меняется - идем на уменьшение счетчика
MOV R3,R4 ;>= - получаем нового максимального
L3: JRNZ R2,L2 ;уменьшаем счетчик, если не 0 - на продолжение поиска
L4: RD R3 ;массив пройден, возвращаем максимального отрицательного
RET
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.