Не совсем понятно, что вам нужно сделать.
Если просто удвоить существующий файл без создания нового, то так:
.386
.model flat, stdcall
option casemap:none
include windows.inc
include kernel32.inc
includelib kernel32.lib
.stack 100h
.data
FileName db 'TWO',0
.data?
hFile dd ?
hMap dd ?
FileSize dd ?
AdrBase dd ?
.code
N76184314:
invoke CreateFile, addr FileName, GENERIC_READ or GENERIC_WRITE,\
FILE_SHARE_READ, NULL, OPEN_EXISTING,\
FILE_ATTRIBUTE_NORMAL, NULL
mov hFile, eax
invoke GetFileSize, eax, NULL
mov FileSize, eax
shl eax, 1
invoke CreateFileMapping, hFile, NULL, PAGE_READWRITE, 0, eax, NULL
mov hMap, eax
invoke MapViewOfFile, hMap, FILE_MAP_ALL_ACCESS, 0, 0, NULL
mov AdrBase, eax
mov esi, eax
mov edi, eax
mov ecx, FileSize
add edi, ecx
rep movsb
invoke UnmapViewOfFile, AdrBase
invoke CloseHandle, hMap
invoke CloseHandle, hFile
invoke ExitProcess, NULL
end N76184314
До запуска программы файл TWO с произвольным содержимым и ненулевого размера должен быть создан и расположен в одной папке с экзешником программы.
Программа не проверяет никакие ошибки файловых операций и распределения/выделения памяти.
Принцип работы: файл включается в адресное пространство процесса и удваивается прямо в памяти. Затем дескрипторы закрываются и файл системой выгружается на диск.
P.S. Если уж совсем точно, то файл на время обработки становится частью файла подкачки.
Другие языки программирования и технологии
Помогите пожалуйста с задачей по асемблеру. Построить конкатенацию (последовательную запись) файла TWO сомого с собой.
Похожие вопросы
- помогите пожалуйста решить задачу по работе компьютера!
- Помогите пожалуйста разобрать задачу по програмированию на C++.
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите пожалуйста решить задачу по программированию. В чем я ошибаюсь?
- Помогите,пожалуйста,решить задачу в Паскале.
- Помогите пожалуйста с задачей на Паскаль.
- Помогите, пожалуйста с задачей :( Сижу, туплю уже какой день, вообще не соображу - чтокуда. Задача на Паскале
- Помогите пожалуйста решить задачи по программированию. P.S: задачи по паскалю.
- Помогите,пожалуйста,решить задачу на двумерные массивы,в паскале.(задача вн.)Спасибо.
- Помогите пожалуйста решить задачу С++