Статьи по Assembler


Main.asm для mycall (ассемблер) - часть 6


xor edx,edx

mov dx,[word ptr buffer]

push edx

invoke GetSystemMetrics,SM_CXSCREEN

sub eax,10

pop edx

@if(edx<=eax)

mov main_win_left,edx

@endif

xor edx,edx

mov dx,[word ptr buffer+2]

push edx

invoke GetSystemMetrics,SM_CYSCREEN

sub eax,10

pop edx

@if(edx<=eax)

mov main_win_top,edx

@endif

;Запоминание позиций списков телефонов и логинов

xor edx,edx

mov dl,[byte ptr buffer+4]

mov current_con,edx

xor ecx,ecx

xor ebx,ebx

@while(ecx<MAX_CON)

mov ax,[word ptr buffer+5+ebx]

mov [con_phone+ecx],al

mov [con_user+ecx],ah

add ebx,2

inc ecx

@endw

@endif

pop eax

invoke CloseHandle,eax

@endif

ret

load_ini ENDP


;СОХРАНЕНИЕ ФАЙЛА ИНИЦИАЛИЗАЦИИ mycall.ini

;В файле сохраняются положение главного окна на экране и позиции

;списков на момент завершения работы приложения

;============================================================= Сохранение файла инициализации

save_ini PROC

invoke CreateFileA,offset ini_file_name,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL

@if(eax!=INVALID_HANDLE_VALUE)

push eax

mov eax,main_win_left

mov [word ptr buffer],ax

mov eax,main_win_top

mov [word ptr buffer+2],ax

mov eax,current_con

mov [buffer+4],al

xor ecx,ecx

xor ebx,ebx

@while(ecx<MAX_CON)

mov al,[con_phone+ecx]

mov ah,[con_user+ecx]

mov [word ptr buffer+5+ebx],ax

add ebx,2

inc ecx

@endw

pop eax

push eax

invoke WriteFile,eax,offset buffer,INI_FILE_LENGTH,offset bytes_readwrite,NULL

pop eax

invoke CloseHandle,eax

@endif

ret

save_ini ENDP


;ЗАГРУЗКА ФАЙЛА ДАННЫХ mycall.dat

;Файл содержит имена соединений, телефоны и логины

;///////////////////////////////////////////////////////////// Загрузка файла данных

.data?

dat_file dd ?

dat_file_size dd ?

.const

dat_file_name db "mycall.txt",0

.code

load_data PROC

;Открытие файла, подготовка буфера для него и считывание файла в буфер

invoke CreateFileA,offset dat_file_name,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL

@if(eax==INVALID_HANDLE_VALUE)




- Начало -  - Назад -  - Вперед -



Книжный магазин