18.02.2019, 18:42 [+3 UTC]
в нашей команде: 3 394 чел. | участники онлайн: 6 (рекорд: 21)

:: РЕГИСТРАЦИЯ

задать вопрос

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.69 (10.02.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
10.02.2019, 21:59

Форум:
16.02.2019, 15:03

Последний вопрос:
18.02.2019, 16:51
Всего: 148776

Последний ответ:
18.02.2019, 10:04
Всего: 257798

Последняя рассылка:
18.02.2019, 12:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
25.01.2013, 02:19 »
Anamul
Stay inforatmive, San Diego, yeah boy!
30.06.2010, 11:01 »
Ginger
Спасибо, но хотелось бы услышать не личное мнение, а ссылку на правила грамматики русского языка..еще раз спасибо. [вопрос № 179356, ответ № 262348]
14.04.2010, 09:12 »
Botsman
Все ОК, даже больше чем достаточно. Спасибо!!! [вопрос № 177777, ответ № 260807]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 690
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 402
cain52
Статус: 3-й класс
Рейтинг: 267

Перейти к консультации №:
 

Консультация онлайн # 194142
Раздел: • Assembler
Автор вопроса: lmk (Посетитель)
Отправлена: 08.12.2018, 23:22
Поступило ответов: 1

Здравствуйте, уважаемые эксперты! Прошу помощи в следующем вопросе:
Три массива в памяти заданы начальными адресами и длинами. Вычислить и вывести на устройство вывода среднее арифметическое параметров этих массивов. Параметр массивов это минимальное положительное число. CompModel, Модель ЭВМ.

Есть такой код, но здесь необходимо сделать поиск минимального из положительных.

Код (Assembler) :: выделить код
RD #040 ;загрузка начального адреса массива
WR 030  ;в ячейку 030
RD #14  ;загрузка параметра цикла k=14 в ячейку 031
WR 031
RD #0   ;загрузка искомого минимального положительного числа нулём
WR 032  ;в ячейку 032
M1: RD @030 ;берём очередной элемент массива
SUB #1  ;сравниваем с 1 - т.е. проверяем на положительность
JNS M2  ; если положительное - завершаем поиск первого положительного
RD 30    ; увеличиваем адрес массива на 1 (переходим к следующему элементу)
ADD #1
WR 30
RD 031 ; Уменьшаем счётчик (параметр цикла) на 1
SUB #1
WR 031
JNZ M1 ; Если цикл не закончился - переходим к рассмотрению следующего элемента массива
M2:


Заранее, благодарю.

Состояние: Консультация закрыта

Ответ # 277072 от Лысков Игорь Витальевич (Старший модератор)

Здравствуйте, lmk!
Примерно так...
Думаю, разберетесь... В тексте достаточно комментариев.

Код (Assembler) :: выделить код
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


Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 10.12.2018, 16:58

5
Премного благодарен)

-----
Дата оценки: 10.12.2018, 19:20

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14012 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.69 от 10.02.2019
Версия JS: 1.33 | Версия CSS: 3.35