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

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

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

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


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

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

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


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


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


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

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


ПРОГРАММА НЕ МОЯ =)


;   VERY, VERY simple ANSI/text viewer
;
;   Coded by Draeden [VLA]
;

   DOSSEG
   .MODEL SMALL
   .STACK 200h
   .CODE
   Ideal

;===- Data -===

BufferSeg   dw  0

ErrMsgOpen  db  "Error opening `"
FileName    db  "ANSI.TXT",0,8,"'$"    ;8 is a delete character
                                      ;0 is required for filename
                                      ;(displays a space)
FileLength dw 0

;===- Subroutines -===

PROC DisplayFile NEAR
   push    ds

   mov     ax,cs
   mov     ds,ax
   mov     ax,3d00h   ;open file (ah=3dh)
   mov     dx,offset FileName
   int     21h
   jc      OpenError
   mov     bx,ax      ;move the file handle into bx

   mov     ds,[BufferSeg]
   mov     dx,0           ;load to [BufferSeg]:0000
   mov     ah,3fh
   mov     cx,0FFFFh      ;try to read an entire segments worth
   int     21h

   mov     [cs:FileLength],ax

   mov     ah,3eh
   int     21h            ;close the file

   cld
   mov     si,0
   mov     cx,[cs:FileLength]
PrintLoop:
   mov     ah,2
   lodsb
   mov     dl,al
   int     21h        ;print a character

   dec     cx
   jne     PrintLoop
   
   pop     ds
   ret

OpenError:
   mov     ah,9
   mov     dx,offset ErrMsgOpen
   int     21h

   pop     ds
   ret
ENDP DisplayFile

;===- Main Program -===

START:
   mov     ax,cs
   mov     ds,ax
   mov     bx,ss
   add     bx,200h/10h    ;get past the end of the file
   mov     [BufferSeg],bx ;store the buffer segment

   call    DisplayFile

   mov     ax,4c00h
   int     21h
END START


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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