Thread View: pl.comp.lang.asm
5 messages
5 total messages
Started by Remek
Thu, 27 Nov 2008 15:42
Operacje plikowe
Author: Remek
Date: Thu, 27 Nov 2008 15:42
Date: Thu, 27 Nov 2008 15:42
39 lines
1993 bytes
1993 bytes
Witam
Na stronie:
http://rudy.mif.pg.gda.pl/~bogdro/dos/a_kurs11.htm
są opisane funkcje plikowe pod DOS. Jeden z przykładów:
=========================================
mov ah, 3ch ; numer funkcji - utworzenie
mov dx, nazwa ; adres nazwy pliku
xor cx, cx ; atrybuty. Zero oznacza normalny plik.
int 21h ; utworzenie pliku
jc blad ; sprawdzamy, czy nie ma błędu.
mov [uchwyt], ax
mov bx, ax ; zapisujemy uchwyt
mov ah, 3fh ; numer funkcji - odczyt
; BX = uchwyt do pliku
mov cx, 1024 ; ilość bajtów do odczytania
mov dx, bufor ; adres bufora, do którego czytamy
int 21h ; czytamy z pliku
jc blad ; sprawdzamy, czy nie ma błędu.
mov ah, 3eh ; numer funkcji - zamknięcie pliku
; BX = uchwyt do pliku
int 21h ; zamykamy plik
jc blad ; sprawdzamy, czy nie ma błędu.
==========================================-
Pytanie brzmi: Co można wczytać z nowo utworzonego, lub wyczyszczonego
(funkcją 3Ch przerwania 21h) pliku, skoro wcześniej autor pisze:
"AH = 3Ch - utworzenie pliku (wymazanie, gdy już istnieje)."
Pozdrawiam Remek
Re: Operacje plikowe
Author: Bogdan (bogdro)
Date: Fri, 28 Nov 2008 18:17
Date: Fri, 28 Nov 2008 18:17
54 lines
2860 bytes
2860 bytes
Remek pisze: > Witam > > Na stronie: > > http://rudy.mif.pg.gda.pl/~bogdro/dos/a_kurs11.htm > > są opisane funkcje plikowe pod DOS. Jeden z przykładów: > > ========================================= > > mov ah, 3ch ; numer funkcji - utworzenie > mov dx, nazwa ; adres nazwy pliku > xor cx, cx ; atrybuty. Zero oznacza normalny plik. > int 21h ; utworzenie pliku > jc blad ; sprawdzamy, czy nie ma błędu. > > mov [uchwyt], ax > mov bx, ax ; zapisujemy uchwyt > > mov ah, 3fh ; numer funkcji - odczyt > ; BX = uchwyt do pliku > mov cx, 1024 ; ilość bajtów do odczytania > mov dx, bufor ; adres bufora, do którego czytamy > int 21h ; czytamy z pliku > jc blad ; sprawdzamy, czy nie ma błędu. > > mov ah, 3eh ; numer funkcji - zamknięcie pliku > ; BX = uchwyt do pliku > int 21h ; zamykamy plik > jc blad ; sprawdzamy, czy nie ma błędu. > > ==========================================- > > Pytanie brzmi: Co można wczytać z nowo utworzonego, lub wyczyszczonego > (funkcją 3Ch przerwania 21h) pliku, skoro wcześniej autor pisze: Nie nic można wczytać. Liczba odczytanych bajtów będzie wynosić zero, a flaga CF będzie ustawiona. > "AH = 3Ch - utworzenie pliku (wymazanie, gdy już istnieje)." To prawda. Ale nie ten kod był główną ideą. Ten kod to raczej zbitka trzech osobnych kodów - jednego tworzącego plik, jednego czytającego i jednego zamykającego. Kod ten ma służyć jako przykład użycia tych funkcji, a nie jako coś, co można uruchomić i zrobić coś ciekawego. Ale uwaga słuszna - albo rozbiję ten programik na trzy (lub dołożę więcej), albo zmienię na coś trochę bardziej użytecznego. -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Re: Operacje plikowe
Author: Remek
Date: Sat, 29 Nov 2008 14:52
Date: Sat, 29 Nov 2008 14:52
26 lines
1773 bytes
1773 bytes
Użytkownik "Bogdan (bogdro)" napisał: > To prawda. Ale nie ten kod był główną ideą. Ten kod to raczej zbitka > trzech osobnych kodów - jednego tworzącego plik, jednego czytającego i > jednego zamykającego. Kod ten ma służyć jako przykład użycia tych > funkcji, a nie jako coś, co można uruchomić i zrobić coś ciekawego. > Ale uwaga słuszna - albo rozbiję ten programik na trzy (lub dołożę > więcej), albo zmienię na coś trochę bardziej użytecznego. Jeśli mogę coś zaproponować, to moim zdaniem przydatne były by dwa przykłady: 1. - Utworzenie (otwarcie z wymazaniem) pliku. - Zapis do tego utworzonego pliku. 2. - Otwarcie istniejącego pliku w trybie umożliwiającym odczyt i zapis. - Czytanie z pliku. - ........ (jakieś operacje użytkownika, tu oczywiście bez konkretów). - Zapis do pliku. Pozdrawiam Remek
Re: Operacje plikowe
Author: Bogdan (bogdro)
Date: Mon, 01 Dec 2008 18:04
Date: Mon, 01 Dec 2008 18:04
33 lines
2163 bytes
2163 bytes
Remek pisze: > Użytkownik "Bogdan (bogdro)" napisał: > >> To prawda. Ale nie ten kod był główną ideą. Ten kod to raczej zbitka >> trzech osobnych kodów - jednego tworzącego plik, jednego czytającego i >> jednego zamykającego. Kod ten ma służyć jako przykład użycia tych >> funkcji, a nie jako coś, co można uruchomić i zrobić coś ciekawego. >> Ale uwaga słuszna - albo rozbiję ten programik na trzy (lub dołożę >> więcej), albo zmienię na coś trochę bardziej użytecznego. > > Jeśli mogę coś zaproponować, to moim zdaniem przydatne były by dwa > przykłady: > > 1. > > - Utworzenie (otwarcie z wymazaniem) pliku. > - Zapis do tego utworzonego pliku. > > 2. > > - Otwarcie istniejącego pliku w trybie umożliwiającym odczyt i zapis. > - Czytanie z pliku. > - ........ (jakieś operacje użytkownika, tu oczywiście bez konkretów). > - Zapis do pliku. Tak też właśnie zostało uczynione, wraz z dodaniem większej liczby szczegółów odnośnie parametrów funkcji. -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Re: Operacje plikowe
Author: Remek
Date: Thu, 04 Dec 2008 12:27
Date: Thu, 04 Dec 2008 12:27
17 lines
1900 bytes
1900 bytes
Użytkownik "Bogdan (bogdro)" napisał: > Tak też właśnie zostało uczynione, wraz z dodaniem większej liczby > szczegółów odnośnie parametrów funkcji. Wielkie dzięki! Przepraszam za zwłokę, ale mam cykliczne problemy z łączem. A wracając do meritum. Problem pojawił się przy próbie napisania programu do sortowania bąbelkowego, działającego w konsoli. Prosty wydawało by się programik wymaga jednak sporo zachodu. Znajomość samego algorytmu jest dalece niewystarczająca. Trzeba obejść parę pułapek. Wykrywać moment zakończenia sortowania (to oczywiste), ale jeśli np. czytamy z pliku to co jeśli oprócz cyfr/liczb pojawiają się inne znaki? Co jeśli dane są w pliku w postaci wielu wierszy? Inna sprawa, że algorytm jest mocno nieefektywny i powyżej 1 kB danych czas sortowania wyraźnie się wydłuża , do zawieszenia programu włącznie. Pozdrawiam Remek
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads