- •; Програма для визначення поточної дати та місцевого часу
- •Push eax ; наступні параметри з стеку не забираються
- •Виконання роботи:
- •; Програма для визначення поточної дати та місцевого часу
- •Push eax ; наступні параметри з стеку не забираються
- •; Програма для визначення поточної дати та місцевого часу
- •Push eax ; наступні параметри з стеку не забираються
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
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
Push eax ; наступні параметри з стеку не забираються
Результат виконання програми:
Вивід вікна з двома кнопками «Ок» та «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
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
Push eax ; наступні параметри з стеку не забираються
Результат виконання програми:
Використання функції ‘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
Результат виконання програми
