Файловая система - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы