Article View: pl.comp.lang.asm
Article #497Re: problem z przerwaniem 1ch
From: Bernard
Date: Sat, 05 Aug 2006 09:07
Date: Sat, 05 Aug 2006 09:07
112 lines
2916 bytes
2916 bytes
KRUKERSradek wrote: > Napisałem program który co jakiś czas ma wyświetlać wiadomość.Niewiem co > jest zle bo wcale tego nie robi. Po pierwsze - nie musi to działać pod Windows. > Prosze o odpowiedz (proszę w odpowiedzi wysłać poprawiony cały kod i > wyjaśnienie, jeśli można) Oczywiście. Ile płacisz? > program pisany pod asemblera tasm. Asembler. Biernik, nie dopełniacz. > .MODEL SMALL > .STACK 256 > .DATA > > OLD_ADRES DD 00000000 > LICZNIK DW 0000 > BYTE_TIMER DB 00 > MESSAGE DB 'MESSAGE','$' > > .CODE > > START: > .386 > MOV AX,@DATA > MOV DS,AX > CALL INSTALL_TIMER > > MAIN: > CALL DELAY > JMP MAIN > > > TIMER: > CLI Zbędne. IF jest już równy 0. > INC LICZNIK Procesor wykonuje w tym momencie dostęp do nieznanej komórki pamięci, o adresie LICZNIK liczonym względem bieżącego DS, który jest dość losowy. > CMP LICZNIK,10 > JE TIMER00 > JMP TIMER_RETURN Te dwa skoki są równoważme jednemu JNE. To samo dalej. > TIMER00: > MOV BYTE_TIMER,01 > MOV LICZNIK,0000 > JMP TIMER_RETURN > TIMER_RETURN: > STI Zbędne. IRET i tak zamaże IF. > IRET > > > > > DELAY PROC NEAR > DELAY_GO: > CMP BYTE_TIMER,01 > JE DELAY_RETURN > JMP DELAY_GO > DELAY_RETURN: > MOV BYTE_TIMER,00 > MOV AX,0900H > LEA DX,MESSAGE > INT 21H > RET > DELAY ENDP > INSTALL_TIMER PROC NEAR > > MOV AX,351CH > INT 21H > MOV WORD PTR OLD_ADRES,BX > MOV WORD PTR OLD_ADRES+2,ES > > MOV AX,251CH > LEA DX,TIMER > PUSH DS > PUSH CS > POP DS > INT 21H > POP DS > RET > INSTALL_TIMER ENDP > > > UNINSTALL_TIMER PROC NEAR > > PUSH DS > MOV AX,251CH > LDS DX,OLD_ADRES > INT 21H > POP DS > RET > UNINSTALL_TIMER ENDP > > END START > > >
Technical Details
Message-ID:
<44d455c1$0$22595$f69f905@mamut2.aster.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.astercity.net!news.aster.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!newsfeed.gazeta.pl!news.astercity.net!news.aster.pl!not-for-mail Date: Sat, 05 Aug 2006 11:07:18 +0200 From: Bernard <bernard@earth.net> User-Agent: Thunderbird 1.5.0.5 (Windows/20060719) MIME-Version: 1.0 Newsgroups: pl.comp.lang.asm Subject: Re: problem z przerwaniem 1ch References: <eb0iua$3dn$1@nemesis.news.tpi.pl> In-Reply-To: <eb0iua$3dn$1@nemesis.news.tpi.pl> X-Antivirus: avast! (VPS 0631-3, 2006-08-04), Outbound message X-Antivirus-Status: Clean Lines: 112 Message-ID: <44d455c1$0$22595$f69f905@mamut2.aster.pl> NNTP-Posting-Date: 05 Aug 2006 08:24:33 GMT NNTP-Posting-Host: 82.210.165.187 X-Trace: 1154766273 mamut2.aster.pl 22595 82.210.165.187:1466 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit