Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
01.05.2014
Размер:
1.51 Кб
Скачать
DATA SEGMENT WORD PUBLIC ;сегмент данных
ASSUME DS:DATA
; данные, которые передаются в модуль
extrn dlint ;длина интервала
extrn nchsl:word ; количество псевдослучайных чисел
extrn nint:word ; количество интервалов
extrn rand_array:dword ; массив псевдослучайных чисел
extrn rez1:dword ; выходной массив
extrn lgr:dword ; массив левых границ интервалов

DATA ENDS

CODE SEGMENT BYTE PUBLIC
ASSUME CS:CODE
count proc ; процедура формирования распределения чисел
Public count
Push bp
@init: ; инициализация
xor di,di
mov dx,ds:dlint ; в BX количество интервалов
mov cx,ds:nchsl ; в CX количество псевдослучайных чисел

@chislo ; для текущего числа найти интервал, в который он
; попадет
xor si,si
xor ax,ax
mov al,00
mov ah,byte ptr rand_array[di] ; в AH указатель на текущее число

@interval: ; поиск по интервалам
cmp si,dx ; проверка, не последний ли интервал
jg @out ; если да, то на метку @out
cmp ah,al ; иначе сравниваем число со границей интервала
inc al
inc si
ja @interval ; если число больше, то на следующий интервал

@out:
inc byte ptr out_r[si-2] ; число попало в последний интервал

inc di
loop @chislo ; переход к следующему числу

@quit_search: ; конец поиска

pop bp
ret

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