Консультация # 189362: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Здравствуйте, помогите пожалуйста! Выполнить следующий пример. Изучить алгоритм работы программы вычисления суммы элементов массива чисел С1, С2,..., Сn. Исходными данными в этой задаче являются: - п — количество суммируемых чисел - С1, С2, .., Сп — массив суммируемых чи...
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Здравствуйте, помогите пожалуйста!
Выполнить следующий пример. Изучить алгоритм работы программы вычисления суммы элементов массива чисел С1, С2,..., Сn. Исходными данными в этой задаче являются: - п — количество суммируемых чисел - С1, С2, .., Сп — массив суммируемых чисел. Заметим, что должно выполняться условие п > 1, т. к. алгоритм предусматривает, по крайней мере, одно суммирование. Кроме того, предполагается,
что суммируемые числа записаны в ОЗУ подряд, т. е. в ячейки памяти с последовательными адресами. Результатом является сумма S. Рассмотрим программу для вычисления суммы со следующими конкретными параметрами: - число элементов массива— 10; - элементы массива расположены в ячейках ОЗУ по адресам 040, 041, 042,..., 049. Используемые для решения задачи промежуточные переменные имеют следующий смысл: - Аi — адрес числа Сi, i {1, 2,..., 10}; - ОЗУ(Ai)
— число по адресу Ai, - S —текущая сумма; к — счетчик цикла, определяющий число повторений. Распределение памяти таково. Программу разместим в ячейках ОЗУ, начиная с адреса 000, примерная оценка объема программы — 20 команд; промежуточные переменные: - Аi — в ячейке ОЗУ с адресом 030; - к — по адресу 031; - S — по адресу 032. Граф-схема алгоритма (ГСА) программы, показана на рис. 2, текст программы с комментариями приведен в табл. 3. 4. Разработатhttp://rfpro.ru/upload/10140ь программу определения заданной характеристики последовательности чисел C1, С2,..., Сп , n <=10. 4.1.ВЫЧИСЛИТЬ ПРОИЗВЕДЕНИЕ ВСЕХ ЧИСЕЛ ПОСЛЕДОВАТЕЛЬНОСТИ 4.2. Записать программу в мнемокодах, введя ее в поле окна Текст программы. 4.3. Сохранить набранную программу в виде текстового файла и произвести ассемблирование мнемокодов. 4.4. Загрузить в ОЗУ необходимые константы и исходн
ые данные. 4.5. Отладить программу. данные в прикл. файле.
Здравствуйте, lileay! Вот подправленная программа, умножающая числа массива, начиная с адреса 040 Запишите, начиная с адреса 040 десять двоек и получите 210 = 1024 Имейте в виду, что задавать большие числа не стоит, чтобы не было переполнения. Будут вопросы - милости просим в мини-форум
RD #40 ;Загрузка начального адреса массива 040 в ячейку 030
WR 30
RD #10 ;Загрузка параметра цикла к = 10 в ячейку 031
WR 31
RD #1 ;Загрузка начального значения произведения S = 1 в ячейку 032
WR 32
Ml:RD @30 ;получение очередного элемента по адресу из ячейки 30
MUL 32 ;Умножение очередного элемента массива на текущее произведение
WR 32 ;сохранение его там же
RD 30 ;Модификация текущего адреса массива (переход к следующему адресу)
ADI #1
WR 30
RD 31 ;Уменьшение счетчика (параметра цикла) на 1
SBI #1
WR 31
JNZ Ml ;Проверка параметра цикла и переход при к 0
RD 32 ;Вывод результата
OUT
HLT ;Стоп
Консультировал: Лысков Игорь Витальевич (Старший модератор)
Дата отправки: 14.05.2016, 20:53
5
нет комментария ----- Дата оценки: 14.05.2016, 23:41
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались.
Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора -
для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение.
Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал,
который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом.
Заходите - у нас интересно!