Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 22:41   #1
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
Смущение Перемещение файла из диска на диск

Нужно написать програму "перемещения файла из диска на диск", я раньше не работал с файловой системой на асме, то может кто подсказать нужные функции, прерывания, вообщем то, что нужно для решения задачи
Alex1991 вне форума Ответить с цитированием
Старый 19.03.2011, 10:44   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

WinApi

MoveFile/2 параметра
- Имя существующего файла
- Имя нового файла

MoveFileEx пополнение на один параметр флаг.
- Имя существующего файла
- Имя нового файла
- Флаг
coNsept вне форума Ответить с цитированием
Старый 19.03.2011, 17:41   #3
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

спасибо, но нужно именно "асмовскими функциями" а не winApi
Alex1991 вне форума Ответить с цитированием
Старый 19.03.2011, 21:53   #4
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

http://programmersforum.ru/showthread.php?t=14599
Прерывание 21h
функции:
3c - создание
3d - открытие файла
3e - закрытие
3f - чтение
40 - запись
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 20.03.2011, 21:21   #5
Alex1991
Форумчанин
 
Аватар для Alex1991
 
Регистрация: 18.10.2008
Сообщений: 166
По умолчанию

Может кому нужно будет то вот:
Код:
model small

dataseg

OkMsg		db	'Файл успiшно перемiщений :) !!!',13,10,0, '$'
Msg1		db	'Лабораторна робота 4',13,10,0, '$'
Msg6		db	'',13,10,0, '$'

Filename1	db	"myfile.txt",0  	 
Filename2	db	"C:\myfile.txt",0    

Handle1		dw	?              ; Handle першого файлу
Handle2		dw	?              ; Handle нового файлу

Buffer		label	byte           ; Буфер для копiювання

codeseg

BufSize		=	2048          ; Розмiр буфера

Start:		mov ax, @data	
		mov ds, ax     
		mov es, ax      

		mov	ax,3D00h       ; читаємо файл
		lea	dx, Filename1
		int	21h            ; в?дкриваємо файл1
		mov	Handle1,ax     ; зберiгаємо handle файлу

		mov	ah,3Ch
		mov	cx,01h         ; ставимо атрибут файлу(по бажанню) - т?льки читання
		lea	dx, Filename2
		int	21h            ; створюємо файл2
		mov	Handle2,ax     ; збер?гаємо handle файлу
CopyNext:
		mov	ax,4406h
		mov	bx,Handle1
		int	21h            ; чи к?нець файлу ?
		or	al,al      
		je	EOF            

		mov	ah,3Fh

		mov	cx,BufSize
		lea	dx,Buffer
		int	21h            ; читаєм з першого файлу

		xchg	cx,ax          ; м?няємо AX в CX
		mov	ah,40h
		mov	bx,Handle2
		
		int	21h            ; записуємо те шо змогли прочитать
		jnc	CopyNext 

EOF:
		mov	ah,3Eh
		int	21h            ; Закриваю перший файл..

		mov	ah,3Eh
		mov	bx,Handle2
		int	21h            ; Закриваю новий файл..

		mov	ah, 41h
		mov	dx, offset FileName1
		int 21h

		mov ah, 9
		mov dx, offset Msg1
		int 21h

		mov ah, 9
		mov dx, offset Msg6
		int 21h

		mov ah, 9
		mov dx, offset OkMsg
		int 21h

		mov ah,00
		int 16h

	Exit:	mov ax, 04c00h	
 		int 21h

end	Start
Правда выбор файла и его перемещение нужно писать в коде, кому понадобиться, думаю доделает
Alex1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка! В устройстве нет диска, вставьте диск\Device\Harddisk1\DR2 Alexij Windows 10 15.09.2014 10:28
Как сделать загрузочный диск из ISO файла в Nero? Буратино Свободное общение 1 17.01.2011 22:22
Считывание строк из файла. перемещение по строкам "веред"-"назад" Larkin. Помощь студентам 2 15.06.2009 17:58
обьём диска D 129ГБ свободно 27ГБ, открываю диск D выделяю всё -> свойства, а там 80ГБ куда делись 22 ГБ? Витёк1989 Помощь студентам 7 18.05.2009 01:54
Как реализовать перемещение ползунка при проигрывании mp3 файла компонент mediaplayer, в нужную позицию? strannik Компоненты Delphi 5 12.12.2006 05:23