Файловая система - Assembler
Формулировка задачи:
Помогите. Я уже копаюсь не первые сутки не могу нормально скомпилировать две части кода и переделать их под Windows. Я наскрябал 2 отдельних кода для открытия и создания файла но на MS Dos а препод зараза выёжываетса и сказал что надо под виндовс. Там ёще загвоздочка есть мне надо их соеденить. Вот создание
и открытие файла
.data handle dw 0 filename db 'file.txt',0 point_name dd filename .code xor cx, cx lds dx,point_fname mov ah, 3ch int 21h jc exit mov handle, ax
.data handle dw 0 filename db 'file.txt', 0 point_fname dd filename .code mov al, 02h lds dx, point_fname mov ah, 3dh int 21h jc exit mov handle, ax
Решение задачи: «Файловая система»
textual
Листинг программы
.486 .model flat, stdcall option casemap :none include \masm32\include\windows.inc include \masm32\include\masm32.inc include \masm32\include\msvcrt.inc include \masm32\macros\macros.asm includelib \masm32\lib\masm32.lib includelib \masm32\lib\msvcrt.lib .data handle dd 0 filename db 'file.txt',0 crea db 'w+',0 ope db 'r+',0 vanya db 'Ваня Пупырин' Vsz = $ - vanya vasya db 'Вася Фидорасов' vsz = $ - vasya .data? bf dd ? .code start: invoke crt_fopen, ADDR filename, ADDR crea ; создание mov handle, eax invoke crt_fwrite, ADDR vanya, 1, Vsz, handle invoke crt_fclose, handle invoke crt_fopen, ADDR filename, ADDR ope ; открытие mov handle, eax invoke crt_fseek, handle, 0 , SEEK_END ; в хвост файла invoke crt_ftell, handle ; скажи размер push eax invoke crt_malloc, eax ; выделяем память mov bf, eax invoke crt_fseek, handle, 0, SEEK_SET ; в начало файла pop eax invoke crt_fread, ADDR bf, 1, eax, handle ; читаем в буфер invoke crt_puts, ADDR bf ; выводим на экран invoke crt_free, bf ; освобождаем память invoke crt_fclose, handle ; закрываем файл invoke crt_exit end start
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д