Article View: pl.comp.lang.asm
Article #494Re: problem z przerwaniem 1ch
From: Bogdan (bogdro)
Date: Sat, 05 Aug 2006 08:25
Date: Sat, 05 Aug 2006 08:25
54 lines
2656 bytes
2656 bytes
KRUKERSradek napisał(a): > Napisałem program który co jakiś czas ma wyświetlać wiadomość.Niewiem co > jest zle bo wcale tego nie robi. Wyjaśniam poniżej. > Prosze o odpowiedz (proszę w odpowiedzi wysłać poprawiony cały kod i > wyjaśnienie, jeśli można) Żeby można było od razu zrobić Kopiuj+Wklej? Nie ma tak łatwo :). Poza tym, pisząc samemu, człowiek się uczy. > program pisany pod asemblera tasm. [...] > MOV AX,@DATA > MOV DS,AX > CALL INSTALL_TIMER > > MAIN: > CALL DELAY > JMP MAIN > > > TIMER: > CLI > INC LICZNIK > CMP LICZNIK,10 > JE TIMER00 > JMP TIMER_RETURN > TIMER00: > MOV BYTE_TIMER,01 > MOV LICZNIK,0000 Cs:[licznik], cs:[byte_timer] (lub ustaw DS), reszta zdaje się być dobrze. Czemu i po co tak? Pamiętaj, że procedura TIMER *nie* jest uruchamiana jako część Twojego programu. Jest uruchamiana przez BIOS, z niewiadomymi DS, ES, SS. Znany jest tylko CS. Jedno co wiadomo to to, że DS na pewno już *nie* wskazuje na Twój segment danych. Wykonując: inc licznik cmp licznik, 10 oczywiście operujesz na zmiennej, której offset jest taki sam, jak offset zmiennej "licznik", ale DS już nie jest dobrze ustawiony, więc operujesz na bajtach w innym segmencie, zaś w procedurze DELAY sprawdzasz bajty o tym samym offsecie, ale w swoim segmencie (które są oczywiście nienaruszone). -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Technical Details
Message-ID:
<eb1kr4$9q2$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<eb0iua$3dn$1@nemesis.news.tpi.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@bogdan.pl> Newsgroups: pl.comp.lang.asm Subject: Re: problem z przerwaniem 1ch Date: Sat, 05 Aug 2006 10:25:48 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 54 Message-ID: <eb1kr4$9q2$1@nemesis.news.tpi.pl> References: <eb0iua$3dn$1@nemesis.news.tpi.pl> NNTP-Posting-Host: acrc176.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1154766500 10050 83.11.4.176 (5 Aug 2006 08:28:20 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Sat, 5 Aug 2006 08:28:20 +0000 (UTC) User-Agent: Thunderbird 1.5.0.5 (X11/20060719) In-Reply-To: <eb0iua$3dn$1@nemesis.news.tpi.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit