Другие языки программирования и технологии

Работа с файлами в АССЕМБЛЕРЕ. Надо считывать файл, путь указывает пользователь при запуске программу. Помогите!

Саша Ли
Саша Ли
3
> вот как ясоздаю
Ничего вы здесь не создаёте. Это просто поля FCB (блока управления файлом) в сегменте данных. А где сама программа?

Гораздо проще работать с файлами с помощью дескрипторов.

Пример программы, запрашивающей имя файла, можно вместе с полным путём, и считывающей в буфер размером 4 КБ содержимое этого файла:

.model small
.stack 100h

.data
Prompt db 'Введите имя файла: $'
Buffer db 65, ?,65 dup (?)
Handle dw ?
FileLen dw ?
FileDat db 4096 dup (?)

.code
N87514294:
    mov si,@data
    mov ds,si
    lea dx,Prompt
    mov ah,9
    int 21h
    inc ah
    lea dx,Buffer
    int 21h
    lea di,Buffer + 2
    xor ch,ch
    mov cl,Buffer + 1
    add di,cx
    mov [di],ch
;Открыть файл для чтения
    mov ah,3Dh
    lea dx,Buffer + 2
    xor al,al
    int 21h
    mov Handle,ax; Сохранение дескриптора открытого файла
;Считать данные из файла
    mov ah,3Fh
    mov bx,Handle
    lea dx,FileDat
    mov cx,4096
    int 21h
    mov FileLen,ax; Кол-во считанных байтов данных
;Закрыть файл
    mov ah,3Eh
    mov bx,Handle
    int 21h

;...
;Что-то делаете со считанными данными
;...

    mov ah,4Ch
    int 21h
    end N87514294
Мейраш Божанов
Мейраш Божанов
51 590
Лучший ответ