Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab01.docx
Скачиваний:
5
Добавлен:
14.07.2019
Размер:
29.75 Кб
Скачать

Щоб використовувати цю процедуру, збережіть в стеку вміст регістра cx.

printDecimal proc

mov bx, 0

mov cx, 10

digits:

inc bx

xor dx, dx

div cx

push dx

cmp ax, 0

jne digits

mov ah, 2h

print:

pop dx

cmp bx, 0

je exit

add dl, '0'

int 21h

dec bx

cmp bx, 0

je exit

jmp print

exit:

mov dl, ' '

int 21h

ret

printDecimal endp

code ends

end main

Для генерації початкових елементів послідовності (для реалізації, наприклад, алгоритму «Мати всіх») можна скористатись функцією визначення поточної константи часу – 2ch переривання 21h. В регістрах ch, cl, dh, dh знаходитимуться відповідно години, хвилини, секунди і соті долі секунди поточного часу. Відповідний код матиме вигляд:

mov ah, 2ch

int 21

Більш складним способом є отримання поточного числа тактів мікропроцесора. Для цього застосовується команда rdtsc, яка переміщує поточне значення лічильника тактів в регістр edx:eax. Цю команду, однак, можна використовувати тільки для мікропроцесорів Pentium та вище.

Подальша реалізація алгоритмів генерації псевдовипадкових послідовностей полягає у правильній реалізації математичних перетворень.

Хід роботи

Необхідний інструментарій:

Borland Turbo Assembler, або Nasm, або Microsoft Assembler (masm)

1. Ознайомитись із теоретичними відомостями про генерацію псевдовипадкових послідовностей.

2. Вибрати один із запропонованих алгоритмів, і реалізувати його на мові Assembler.

3. Виконати кілька прогонів (не менше трьох) алгоритму і показати у вигляді таблиці та графіка отримані ряди.

4. Зробити висновки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]