Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
28.67 Кб
Скачать

Задание:

На языке высокого уровня Pascal генерируется массив псевдослучайных целых чисел, изменяющихся в заданном диапазоне и имеющих равномерное или гауссовское (ограниченное интервалом [Mx-3*S, Mx+3*S]) распределение.

Далее должен вызываться ассемблерный модуль(модули) для формирования распределения количества попаданий псевдослучайных целых чисел в заданные интервалы. В общем случае интервалы разбиения диапазона изменения

псевдослучайных чисел могут иметь различную длину.

Результирующий массив частотного распределения чисел по интервалам, сформированный на ассемблерном уровне, возвращается в программу,

реализованную на ЯВУ. Затем сохраняется в файле и выводится на экран средствами ЯВУ.

Уточнение условия:

Для бригад с четным номером: подпрограмма формирования распределения

количества попаданий псевдослучайных целых чисел в заданные

интервалы реализуется в виде двух ассемблерных модулей, первый из ко-

торых формирует распределение исходных чисел по интервалам единичной

длины и возвращает его в вызывающую программу на ЯВУ как промежуточ-

ный результат. Затем вызывается второй ассемблерный модуль, который

по этому промежуточному распределению формирует окончательное распре-

деление псевдослучайных целых чисел по интервалам произвольной длины

(с заданными границами). Это распределение возвращается в головную

программу и выдается как основной результат в виде текстового файла

и, возможно, графика.

Исходные данные:

  1. Длина массива псевдослучайных чисел

  2. Диапазон изменения псевдослучайных чисел

  3. Количество интервалов, на которые разбивается диапазон изменения псевдослучайных чисел.

  4. Интервалы заданы своими левыми границами. Значения левых границ содержатся в массиве.

Нужно получить:

Текстовый файл, строка которого содержит:

  1. Номер интервала

  2. Левую границу интервала

  3. Количество псевдослучайных чисел, попавших в интервал.

Ассемблерные модули можно подключить:

  1. in-line

  2. Подключая объектный модуль

Ниже приведены программы для обоих случаев.

Примечание: Интервалы имеют открытые правые границы.

Например есть интервалы: 1-2, 2-3 то число 1 попадет в 1й интервал, 2- во второй, 3-во второй.

Вывод:

Процедура ассемблера может быть также включена в модуль, написанный на ЯВУ. Но при этом нужно помнить о свойствах вызова процедуры (как Near или Far).

В данной программе этот способ не рассматривается так как код небольшой и позволяет сделать in-line вставку. Что в свою очередь делает программу более наглядной.

При передаче данных через параметры, они передаются через стек, причем в обратном порядке. В нашей программе данные передаются как глобальные.

Соседние файлы в папке Лабораторная работа №62