Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Ассемблер? Это просто! Учимся программировать


РАССЫЛКИ ПОРТАЛА RFPRO.RU

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

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 482
∙ повысить рейтинг »
Куликов Роман Евгеньевич
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »
Козлова Ольга Александровна
Статус: 1-й класс
Рейтинг: 0
∙ повысить рейтинг »

∙ Assembler

Номер выпуска:1608
Дата выхода:19.05.2016, 17:51
Администратор рассылки:Лысков Игорь Витальевич (Старший модератор)
Подписчиков / экспертов:21 / 7
Вопросов / ответов:1 / 1

Консультация # 189362: Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Здравствуйте, помогите пожалуйста! Выполнить следующий пример. Изучить алгоритм работы программы вычисления суммы элементов массива чисел С1, С2,..., Сn. Исходными данными в этой задаче являются: - п — количество суммируемых чисел - С1, С2, .., Сп — массив суммируемых чи...

Консультация # 189362:

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Здравствуйте, помогите пожалуйста!

Выполнить следующий пример.
Изучить алгоритм работы программы вычисления суммы элементов массива чисел С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. Отладить программу.
данные в прикл. файле.

Дата отправки: 14.05.2016, 14:18
Вопрос задал: lileay (Посетитель)
Всего ответов: 1
Страница онлайн-консультации »


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

Здравствуйте, lileay!
Вот подправленная программа, умножающая числа массива, начиная с адреса 040
Запишите, начиная с адреса 040 десять двоек и получите 210 = 1024
Имейте в виду, что задавать большие числа не стоит, чтобы не было переполнения.
Будут вопросы - милости просим в мини-форум

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

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

НЕ одобряю +1 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное