🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.asm
Article #632

Re: Problem z przesunięciem ekranu

#632
From: Matuzalem
Date: Wed, 13 Sep 2006 13:43
80 lines
4092 bytes
Johnny napisał(a):
> Matuzalem napisał(a):
> >    mov ah, 2              ; ustawienie położenia wskaźnika
> >    mov dh, 10            ; wiersz
> >    mov dl, 20             ; kolumna
> >    mov bh, 0              ; stronica
> >    int 10h                  ; wywołanie BIOS
>
> Dlaczego mam ustawiać tu wskaźnik skoro tego nie chcę?

Bo miałeś problem z jego ustawieniem, podałem to jako przykład :]

Bernard napisał(a):
> Masz problem z czytaniem dokumentacji. Wywołujesz funkcje nie podając
> wartości parametrów, które w tej sytuacji są dość losowe, bo nie
> wiadomo, co siedziało w rejestrze przed wywołaniem. Zwróć uwagę na
> podanie WSZYSTKICH argumentów, w tym rejestró2 bl i bh dla funkcji
> pisania znaków

a Ty na to:

Johnny napisał(a):
> Sądziłem, że taka jest praktyka by nie podawać argumentów, których
> wartość znajduje się w rejestrach, stąd nagminne opuszczanie ustawień
> stronicy itp.

Bernard ma racje, w przykładowych kodach które Ci podałem,
pozjadałeś dość istotne dane których nie iniciowałeś, choćby
stronice np.:

mov ah,3h
int 10h

W dokumentcji jest wspomniane o bh, a u Ciebie, gdzie ono jest ?
(http://www.bookcase.com/library/dos/ints/int10.html#03)
Co jeśli w bh znajdzie się coś "nie oczekiwanego"? mogą powstać
komplikacje, pomyśl o tym jak o "ostateczności", czemu?
W tym w/w przykładzie to jeszcze pewnie nic strasznego by się nie
stało (nie sprawdzałem, może z ciekawości to zrobie :P ) ale co by
było gdyby to były funkcje obsługujące np. dysk i zapomniałbyś
zainicjować jakąś zmienną i zostawił ją taką jaka jest?
mógłyś pożegnać się z danymi w najgorszym wypadku z dyskiem (to
już nie są żarty :P )

asm, to nie HLL, gdzie domyślne argumenty "same się" uzupełnią jak
np tu:

int Fun(int arg = 0);

int main()
{
 Fun();
 return 0;
}

Gdybyś skompilował to i zdeasemblował, zobaczyłbyś coś takiego
(mniej więcej i pod warunkiem, że kompilator nie zastosuje konwencji
wywołań przez rejestr [Register]):

 push 0            ; widzisz, nawet jeśi w C/C++ jest
                       ; domyślny zero to i tak musi zostać
odłożony na stos
 call 00401012  ; jakiś tam adres


Pojęcie "domyślny argument" w języku asm jest abstrakcyjne, nie ma
czegoś takiego (przynajmniej w tym konekście).
asm to język niskiego poziomu (wręcz kod maszynowy) to bardzo prosty
i logiczny język, dla tego nie należy interpretować go tak jak HLL.

Johnny napisał(a):
> Dzięki za przykład z oczyszczaniem całego ekranu ale go znam. Mój
> problem dotyczy dokładnie tego co opisałem w pierwszym e-mailu oraz w
> odpowiedzi do Bogdana.

Może napisz słownie co chcesz osiągnąć...


Pozdrawiam
Technical Details
Message-ID: <1158155027.343301.36140@i3g2000cwc.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.gamma.ru!Gamma.RU!postnews.google.com!i3g2000cwc.googlegroups.com!not-for-mail
References: <ee8g03$ia2$1@nemesis.news.tpi.pl> <1158144422.515053.10400@d34g2000cwd.googlegroups.com> <ee8tms$skg$2@atlantis.news.tpi.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!newsfeed.gamma.ru!Gamma.RU!postnews.google.com!i3g2000cwc.googlegroups.com!not-for-mail
From: "Matuzalem" <codemaster_@op.pl>
Newsgroups: pl.comp.lang.asm
Subject: Re: Problem z przesunięciem ekranu
Date: 13 Sep 2006 06:43:47 -0700
Organization: http://groups.google.com
Lines: 85
Message-ID: <1158155027.343301.36140@i3g2000cwc.googlegroups.com>
References: <ee8g03$ia2$1@nemesis.news.tpi.pl>   <1158144422.515053.10400@d34g2000cwd.googlegroups.com>   <ee8tms$skg$2@atlantis.news.tpi.pl>
NNTP-Posting-Host: 212.244.115.33
Mime-Version: 1.0
X-Trace: posting.google.com 1158155032 10233 127.0.0.1 (13 Sep 2006 13:43:52 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 13 Sep 2006 13:43:52 +0000 (UTC)
In-Reply-To: <ee8tms$skg$2@atlantis.news.tpi.pl>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6,gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: i3g2000cwc.googlegroups.com; posting-host=212.244.115.33;   posting-account=HFFdEQ0AAACI08bdAnMScVqwVEj2ucOg
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit