Article View: pl.comp.lang.asm
Article #2172Re: Bardzo prosta zagadka
From: Bogdan (bogdro)
Date: Wed, 07 Apr 2010 16:24
Date: Wed, 07 Apr 2010 16:24
77 lines
3089 bytes
3089 bytes
W dniu 07.04.2010 10:00, Andrzej Grażyński pisze: > Bogdan (bogdro) pisze: >> W dniu 03.04.2010 11:43, Andrzej Grażyński pisze: [...] >>> Sytuacja podobna: co należy wstawić przed REPNE SCASB, by uniknąć błedu >>> w powyższym fragmencie: >>> >>> >>> LES EDI, <adres obszaru> >>> MOV ECX, <długość obszaru> >>> CLD >>> MOV AL,13 >>> >>> REPNE SCASB >>> JNE @@NotFound >>> >>> ; znaleziono znak końca wiersza, jego adres jest w ES:[EDI-1] >>> >>> >>> >>> .... >>> >>> @@NotFound: >> >> Wszyscy znają odpowiedź, ale ja przełamię milczenie: zapewne chodzi o >> sytuację odwrotną, czyli o kod, który wyzeruje flagę ZF, zwłaszcza gdy >> ECX=0. Wtedy, jeśli ECX=0, to JNE poprawnie skoczy do @@NotFound. Ale >> bardziej chciałem zapytać (z ciekawości, długo nad tym nie myślałem), >> czy rozwiążesz tę zagadkę na samym ECX tuż przed REPNE i bez >> niszczenia ECX (tzn. ustawiając tylko flagi)? Bo taki kod: >> >> LES EDI, <adres obszaru> >> MOV ECX, <długość obszaru> >> CLD >> MOV AL,13 >> >> test al, al >> REPNE SCASB >> JNE @@NotFound [...] > Po co komplikować życie? We fragmencie szukającym #13 wystarczy wstawić > > OR AL,AL > > przed REPNE SCASB. > > Proste, prawda? Czyli mój powyższy przykład z "test al, al" też zapewne by sobie poradził :) To drugie było pomyłką. > To teraz trochę trudniejsze - co tutaj trzeba wstawić przed REPNE SCASB? > Oczywiście tylko jedna instrukcja. > > Szukamy zerowego ogranicznika stringa ASCIIZ: > > > XOR AL,AL > MOV ECX,długość obszaru > LES DI,adres obszaru > > REPNE SCASB > JE @@Found > > ; nie znaleziono ogranicznika JECXZ @@NotFound -- 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
Technical Details
Message-ID:
<hpibjh$f92$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<hp2ss9$12j$1@news.onet.pl> <hp3al9$4cc$1@news.onet.pl> <hp4d7v$7ik$1@news.onet.pl> <hp5701$jvj$1@news.onet.pl> <6dph87-n3j.ln1@lilith.rlyeh.org> <hp72m0$bon$1@news.onet.pl> <hpfo6b$clk$1@inews.gazeta.pl> <hphe2i$3bm$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Bardzo prosta zagadka Date: Wed, 07 Apr 2010 18:24:16 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 77 Message-ID: <hpibjh$f92$1@inews.gazeta.pl> References: <hp2ss9$12j$1@news.onet.pl> <hp3al9$4cc$1@news.onet.pl> <hp4d7v$7ik$1@news.onet.pl> <hp5701$jvj$1@news.onet.pl> <6dph87-n3j.ln1@lilith.rlyeh.org> <hp72m0$bon$1@news.onet.pl> <hpfo6b$clk$1@inews.gazeta.pl> <hphe2i$3bm$1@news.onet.pl> NNTP-Posting-Host: rudy.mif.pg.gda.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1270657461 15650 153.19.42.16 (7 Apr 2010 16:24:21 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Wed, 7 Apr 2010 16:24:21 +0000 (UTC) X-User: bog.d In-Reply-To: <hphe2i$3bm$1@news.onet.pl> User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit