Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Звіт по Лаб. №2.doc
Скачиваний:
7
Добавлен:
27.11.2019
Размер:
286.21 Кб
Скачать

FORMAT_STRING:

db ' Локальний час:',0dh,0ah,0dh,0ah

db ' Рiк: %ld',0dh,0ah

db ' Мiсяць: %ld',0dh,0ah

db ' День тижня: %ld',0dh,0ah

db ' Число: %ld',0dh,0ah

db ' Година: %ld',0dh,0ah

db ' Хвилин: %ld',0dh,0ah

db ' секунд: %ld',0dh,0ah

db ' Мілісекунд: %ld',0dh,0ah

db 0

Time_struc:

wYear dw 0 ; Рік

wMonth dw 0 ; Місяць

wDayOfWeek dw 0 ; День тиждня

wDay dw 0 ; Число

wHour dw 0 ; Година

wMinute dw 0 ; Хвилина

wSecond dw 0 ; Секунда

wMilliseconds dw 0 ; Мілісекунда

;==============================================================

.code

Start: push offset Time_struc

call GetLocalTime

mov _ESP,esp ; Збереження адреси стеку

xor eax,eax ; EAX=0

mov ax,wMilliseconds

push eax

mov ax,wSecond

push eax

mov ax,wMinute

Push eax ; наступні параметри з стеку не забираються

mov ax,wHour

push eax

mov ax,wDay

push eax

mov ax,wDayOfWeek

push eax

mov ax,wMonth

push eax

mov ax,wYear

push eax

push offset FORMAT_STRING

push offset TIME_STRING

call _wsprintfA ; Вивід параметрів

mov esp,_ESP ; та очищення стеку

call MessageBoxA, 0, offset TIME_STRING, offset Time_title, 0

call ExitProcess, 0

end Start

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

Вивід вікна з двома кнопками «Ок» та «Cancel»

Текст програми:

; Програма для визначення поточної дати та місцевого часу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn GetSystemTime: proc

extrn MessageBoxA: proc

extrn _wsprintfA:Proc

.data

Time_title db ' Лаб.№2 Виконав ст.гр.КІ-21 Денисюк В.В.',0

TIME_STRING db 2000 dup (0)

_ESP dd 0

FORMAT_STRING:

db ' Системний час:',0dh,0ah,0dh,0ah

db ' Рiк: %ld',0dh,0ah

db ' Мiсяць: %ld',0dh,0ah

db ' День тижня: %ld',0dh,0ah

db ' Число: %ld',0dh,0ah

db ' Година: %ld',0dh,0ah

db ' Хвилин: %ld',0dh,0ah

db ' секунд: %ld',0dh,0ah

db ' Мілісекунд: %ld',0dh,0ah

db 0

Time_struc:

wYear dw 0 ; Рік

wMonth dw 0 ; Місяць

wDayOfWeek dw 0 ; День тиждня

wDay dw 0 ; Число

wHour dw 0 ; Година

wMinute dw 0 ; Хвилина

wSecond dw 0 ; Секунда

wMilliseconds dw 0 ; Мілісекунда

;==============================================================

.code

Start: push offset Time_struc

call GetSystemTime

mov _ESP,esp ; Збереження адреси стеку

xor eax,eax ; EAX=0

mov ax,wMilliseconds

push eax

mov ax,wSecond

push eax

mov ax,wMinute

Push eax ; наступні параметри з стеку не забираються

mov ax,wHour

push eax

mov ax,wDay

push eax

mov ax,wDayOfWeek

push eax

mov ax,wMonth

push eax

mov ax,wYear

push eax

push offset FORMAT_STRING

push offset TIME_STRING

call _wsprintfA ; Вивід параметрів

mov esp,_ESP ; та очищення стеку

call MessageBoxA, 0, offset TIME_STRING, offset Time_title, 1

CMP eax,1

jz Start

call ExitProcess, 0

end Start

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

Використання функції ‘CopyFileA’

Текс програми

;Програма для копіювання файлу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn MessageBoxA: proc

extrn CopyFileA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Copy File: ' ; Рядок байтів

File1 db "D:\Image\Img.txt",0 ;Адреса файлу, що треба скопіювати

File2 db "D:\copy\Img3.txt",0 ;Каталог куди потрібно скопіювати файл

.code

Start: call CopyFileA, offset File1, offset File2,0

CMP eax,0

jz stop

call MessageBoxA, 0, offset hello_message, offset hello_title, 1

stop:

call ExitProcess, 0

end Start

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

Використання функції ‘DeleteFileA’

Текст програми

; Програма для видалення файлу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn MessageBoxA: proc

extrn DeleteFileA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Delete File: ' ; Рядок байтів

File1 db "D:\copy\Img.JPG",0 ;Адреса файлу, що треба видалити

.code

Start: call DeleteFileA, offset File1,0

CMP eax,1

jz stop

call MessageBoxA, 0, offset hello_message, offset hello_title, 1

stop:

call ExitProcess, 0

end Start

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

Використання функції ‘RemoveDirectoryA’

Текст програми

; Програма для видалення каталогу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn MessageBoxA: proc

extrn RemoveDirectoryA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Remove Directory: ' ; Рядок байтів

Disk1 db "D:\Image\copy",0 ;Адреса аталога

.code

Start: call RemoveDirectoryA, offset Disk1

call MessageBoxA, 0, offset hello_message, offset hello_title, 0

call ExitProcess, 0

end Start

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

Використання функції ‘SetFileAttributesA

Текст програми

; Програма для встановлення атрибутів файлу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn MessageBoxA: proc

extrn SetFileAttributesA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Set File Attributes: ' ; Рядок байтів

FileName1 db "D:\Image\Img.JPG",0 ;Адреса файлу

.code

Start: call SetFileAttributesA, offset FileName1,7

call MessageBoxA, 0, offset hello_message, offset hello_title, 0

call ExitProcess, 0

end Start

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

Для картинки ‘Img.JPG’ встановлено такі атрибути: 0000111 (7)

Тобто: System, Hidden, Read only

Результат встановлення атрибутів

Використання функції ‘GetFileAttributesA’

Текст програми

; Програма для отримання атрибутів файлу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn MessageBoxA: proc

extrn GetFileAttributesA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' File Attributes: ' ; Рядок байтів

Text1 db 256 dup (0) ; Буфер заповнений нулями

Disk1 db "D:\Image\Img.JPG",0 ;Адреса файлa

.code

Start: call GetFileAttributesA, offset Disk1

ADD Al,"0"

mov Text1,Al

call MessageBoxA, 0, offset hello_message, offset hello_title, offset Text1 40h

call ExitProcess, 0

end Start

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

Використання функції ‘SetCurrentDirectoryA

Текст програми

; Програма для видалення файлу

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn SetCurrentDirectoryA: proc

extrn MessageBoxA: proc

extrn DeleteFileA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Delete File: ' ; Рядок байтів

Disk1 db "D:\copy\",0 ;Встановлення поточної директорії

File1 db "Img2.txt",0 ;Адреса файлу, що треба видалити

.code

Start:

call SetCurrentDirectoryA, offset Disk1,0

call DeleteFileA, offset File1,0

CMP eax,1

jz stop

call MessageBoxA, 0, offset hello_message, offset hello_title, 0

stop:

call ExitProcess, 0

end Start

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

Використання функції GetTempFileNameA

Текст програми

; Програма

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn GetTempFileNameA: proc

extrn MessageBoxA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Temp File Name: ' ; Рядок байтів

Buf1 db 256 dup (0) ; буфер

Disk1 db "D:\copy\",0 ;Встановлення поточної директорії

Pref1 db "Img",0 ; встановлення префікса

;Num1 db "0",0 ; число яке з'єднується з префіксом

.code

Start:

call GetTempFileNameA, offset Disk1, offset Pref1, 0, offset Buf1

call MessageBoxA, 0, offset hello_message, offset hello_title, 0

call ExitProcess, 0

end Start

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

Використання функції GetLogicalDrives

Текст програми

; Програма

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn GetLogicalDrives: proc

extrn MessageBoxA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Logical Drives: ' ; Рядок байтів

Buf1 db 256 dup (0) ; буфер

.code

Start:

call GetLogicalDrives

mov esi, offset Buf1

mov ecx, 32

L1: RCL eax,1

mov dl, "0"

ADC dl, 0

mov [esi], dl

INC esi

DEC ecx

jnz L1

call MessageBoxA, 0, offset hello_message, offset hello_title, 0

call ExitProcess, 0

end Start

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

Використання функції GetLogicalDriveStringA

Текст програми

; Програма

.386

.model flat,STDCALL

extrn ExitProcess: proc

extrn GetLogicalDriveStringsA: proc

extrn MessageBoxA: proc

.data

hello_title db ' Лаб. № 1 Виконав: ст.гр.КІ-21 Денисюк В.В.', 0

hello_message db ' Logical Drive String: ' ; Рядок байтів

Buf1 db 256 dup (0) ; буфер

bufflen dd 256

.code

Start:

call GetLogicalDriveStringsA, bufflen, offset Buf1

mov esi, offset Buf1

L1: CMP word ptr [esi],0

jz C1

CMP byte ptr [esi],0

jnz C2

mov byte ptr [esi], ","

C2: INC esi

JMP L1

C1: call MessageBoxA, 0, offset hello_message, offset hello_title, 0

call ExitProcess, 0

end Start

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