section '.data' data readable writable
startsection:
FileHandle dd 0
_written dd 0
dwordvar1 dd 0
dwordvar2 dd 0
.....
dwordvar2 dd 0
endsection:
запись в файл под виндой
запускается программа (под winxp), и она должна свой сегмент данных записать в отдельный файл.
Как это делать? Как создать файл на ASM'е? как туда записать данные?
Компилятор masm32.
Заранее спасибо!
Цитата: piroman17
... и она должна свой сегмент данных записать в отдельный файл.
в винде сегментом данных является область адресов памяти от 0 до (07FFFFFFFh)0FFFFFFFFh, тебе наверно надо записать в файл секцию с данными или просто записать в файл область памяти где находятся переменные программы?
Используй API функции CreateFile и ReadFile/WriteFile, смотри справку по этим функциям
именно переменные программы.
Код:
тогда чтобы записать всё это в файл надо сделать так
Код:
....
invoke WriteFile, [FileHandle], startsection,endsection-startsection,_written,0
....
invoke WriteFile, [FileHandle], startsection,endsection-startsection,_written,0
....
p.s. а какие инклуды надо прописывать?
прописываешь
include 'win32a.inc';
А чё далать с [FileHandle]? Как создать файл в определённом каталоге (C:\asm\)?
Код:
str1 db 'C:\asm\file.dat',0
FileHandle dd 0
invoke CreateFile, str1, GENERIC_WRITE+GENERIC_READ,FILE_SHARE_READ,0,CREATE_ALWAYS,0,0
mov [FileHandle],eax
FileHandle dd 0
invoke CreateFile, str1, GENERIC_WRITE+GENERIC_READ,FILE_SHARE_READ,0,CREATE_ALWAYS,0,0
mov [FileHandle],eax
Вот тут ты писал что надо добавить include 'win32a.inc', у меня в папке include его нет:eek:, он может иметь у меня другое название? Не мог бы ты мне выслать этот файл(win32a.inc) - [email]piroman17@rambler.ru[/email]?
Цитата: piroman17
Вот тут ты писал что надо добавить include 'win32a.inc', у меня в папке include его нет:eek:, он может иметь у меня другое название? Не мог бы ты мне выслать этот файл(win32a.inc) - [email]piroman17@rambler.ru[/email]?
он тебе про fasm , а ты про masm32 :-)
проще просто вывести это всё на экран ,а потом уже с файлами работать!
смотри мою програмку в разделе "разные програмки и т.д"
там прога выводит что находится в стеке испозует MessageBoxA
good luck!!!
Код:
; #########################################################################
include E:\Program\MASM\masm32\include\windows.inc
include E:\Program\MASM\masm32\include\user32.inc
include E:\Program\MASM\masm32\include\kernel32.inc
include E:\Program\MASM\masm32\include\gdi32.inc
includelib E:\Program\MASM\masm32\lib\user32.lib
includelib E:\Program\MASM\masm32\lib\kernel32.lib
includelib E:\Program\MASM\masm32\lib\gdi32.lib
; #########################################################################
include E:\Program\MASM\masm32\include\windows.inc
include E:\Program\MASM\masm32\include\user32.inc
include E:\Program\MASM\masm32\include\kernel32.inc
include E:\Program\MASM\masm32\include\gdi32.inc
includelib E:\Program\MASM\masm32\lib\user32.lib
includelib E:\Program\MASM\masm32\lib\kernel32.lib
includelib E:\Program\MASM\masm32\lib\gdi32.lib
; #########################################################################
ПОЧТИ В ЛЮБОМ исходнике для MASM32 есть эти строки!