IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Файлы и дескрипторы -->> Паскаль
сообщение
Сообщение #1


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Как вставить в программу на паскале код открытия, закрытия и т.д. процедур для работы с файлами.
Иначе: мне нужно что-то вроде исходников процедур Assign, reset и т.д.
--------
Что такое дескриптор и можно-ли как то их использовать в пасе?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






В данном случае, дескриптор - это просто 16-битное значение.
Function FileOpen(FileName:PChar):Word;Assembler;
{Возвращает Handle или 0 при ошибке}
Asm
 PUSH DS
 LDS DX,[FileName]
 MOV AX,3D02h {Read+Write}
 INT 21h
 JNC @@1
 XOR AX,AX
@@1:
 POP DS
End;

Function FileCreate(FileName:PChar):Word;Assembler;
{Возвращает Handle или 0 при ошибке}
Asm
 PUSH DS
 LDS DX,[FileName]
 MOV AH,3Ch {Read+Write}
 MOV CX,0020h {Attribute = Archive}
 INT 21h
 JNC @@1
 XOR AX,AX
@@1:
 POP DS
End;

Procedure FileClose(f:Word);Assembler;
Asm
 MOV BX,[f]
 MOV AH,3Eh
 INT 21h
Ebd;

Function FileRead(f:Word;Var Buf;Count:Word):Word;Assembler;
Asm
 PUSH DS
 LDS DX,[Buf]
 MOV CX,[Count]
 MOV BX,[f]
 MOV AH,3Fh
 INT 21h
End;

Function FileWrite(f:Word;Const Buf;Count:Word):Word;Assembler;
Asm
 PUSH DS
 LDS DX,[Buf]
 MOV CX,[Count]
 MOV BX,[f]
 MOV AH,40h
 INT 21h
End;

Ну, это самое простое...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 28.03.2024 20:15
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name