🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Bardzo prosta zagadka

#2172
From: Bogdan (bogdro)
Date: Wed, 07 Apr 2010 16:24
77 lines
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-mail
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>

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