Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodychka-lab_OS.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.35 Mб
Скачать

Додаток 5

Детальний опис функції CreateThread.

invoke CreateThread,NULL,NULL,eax, NULL,NORMAL_PRIORITY_CLASS,\

Addr ThreadId – Створює новий потік.

CreateThread proto lpThreadAttributes:DWORD,\

dwStackSize:DWORD,\

lpStartAddress:DWORD,\

lpParameter:DWORD,\

dwCreationFlags:DWORD,\

lpThreadId:DWORD

  • lpThreadAttributes – Щоб у потоку параметри безпеки встановлювались по замовчуванню, потрібно використовувати NULL.

  • DwStackSize – Вказується розмір стеку. Коли цей параметр рівний NULL, то потік буде мати такий самий розмір стеку як і у головного потоку (процесі).

  • LpStartAddress – Адреса функції потоку. Ця функція виконує произначену для потоку роботу. Ця функція повинна одержувати тільки один 32 – бітний параметр і повертати 32 – бітове значення.

  • LpParameter – Параметр, котрий передається функції потоку.

  • DwCreationFlags - 0 – означає, що потік починає виконуватися відразу після його створення. Прапорець CREATE_SUSPEND – загальмує потік поки не буде викликана функція ResumThread.

  • LpThreadId – В цей параметр запишеться ID створеного потоку.

Додаток 6

Опис параметрів командної стрічки.

Для транслювання і компонування даного .ASM файлу ми використовуємо пакет MASM32. Для того щоб відтранслювати (ML.EXE) та скомпонувати (злінкувати) (LINK.EXE) даний .ASM код, потрібно вказати в командній стрічці такі параметри:

ml /c /coff /Cp Hello.asm

link /SUBSYSTEM:WINDOWS /LIBPATH:d:\masm32\lib Hello.obj

Опис параметрів:

/c – говорить MASM’у створити .obj файл формату COFF (Common Object File), який використовується в ОС UNIX як його власний обєктний і виконуваний формат файлів.

/Cp – говорить MASM’у зберігати регістр назв, заданих програмістом. Можна також вставити в код програми (після директиви .model) стрічку :option casemap:none, щоб одержати такий самий ефект, тобто, щоб MASM розрізняв великі і малі символи.

/SUBSYSTEM:WINDOWS – говорить link’еру якого виду буде виконуваний модуль.

/LIBPATH – говорить link’еру де знаходяться бібліотеки імпорту.

Додаток 7

Перетворення символів типу int в тип char.

Для того, щоб вивести результати обчислень, потрібно перетворити їх з типу int в char.Це можна зробити за допомогою функції wsprintf().

.386

.model flat,stdcall

option casemap:none

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc

includelib \masm32\lib\kernel32.lib

include \masm32\include\user32.inc

includelib \masm32\lib\user32.lib

wsprintfA PROTO C :DWORD, :VARARG

wsprintf equ <wsprintfA>

.data

MsgBoxCaption db "Повідомлення",0

buffer db 50 dup(?)

parametr db "%u",0 ;unsigned int

.code

start:

mov eax,10

add eax,10

invoke wsprintf,addr buffer,addr parametr, eax

invoke MessageBox,NULL,addr buffer, addr MsgBoxCaption,MB_OK

invoke ExitProcess, NULL

end start

Результат виконання програми:

Лабораторна робота №2

Тема: Взаємодія між процесами і потоками та синхронізація процесів і потоків у середовищі ОС Windows.

Мета: Навчитись створювати процеси та потоки, котрі передають дані між собою та синхронізувати їх в середовищі ОС Windows, використовуючи пакет MASM32.

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