Article View: pl.comp.lang.asm
Article #866Re: string reverse
From: Bernard
Date: Tue, 05 Dec 2006 12:44
Date: Tue, 05 Dec 2006 12:44
77 lines
3047 bytes
3047 bytes
mikezum wrote: >> Przecierz w asemblerze nie ma rzutowania, >> wydaje mi sie ze to taki 'skrot myslowy'. >> Poczekajmy az OP doprecyzuje czy chodzi mu >> o zmiane kolejnosci bajtow, czy cos z pogranicza >> endianowosci, czy tez jeszcze cos innego. > Panowie, a czy ktos powiedzial, ze ja pisze tylko w czystym assemblerze ? > To po pierwsze :) > Rzutowanie, czyli traktowanie liczby zapisanej w postaci intelowskiej na > postac "zwykla" cokolwiek mialoby to oznaczac Możesz zdefiniować pojęcia "postać intelowska" i "postać zwykła"? > Z tym sobie juz powradzilem poradzilem > procedure ValueToValueIntel(var BufferIn;var BufferOut;const > BufferLen:integer); Czemu var w parametrach? > var > pBufferIn:pByte; > pBufferOut:pByte; > begin > If BufferLen =0 then exit; > pBufferIn:=@BufferIn; > pBufferOut:=@BufferOut; > Inc(pBufferOut,BufferLen-1); > asm > PUSH EAX > PUSH EBX > PUSH ECX > MOV ECX,BufferLen > LEA EBX,pBufferIn > MOV EBX,[EBX] > LEA EDX,pBufferOut > MOV EDX,[EDX] > @@Loop: > > MOV EAX,[EBX] > MOV [EDX-3],EAX > inc EBX > inc EBX > inc EBX > inc EBX > DEC EDX > DEC EDX > DEC EDX > DEC EDX > DEC ECX > DEC ECX > DEC ECX > DEC ECX > JNZ @@Loop > POP ECX > POP EBX > POP EAX > end; > end; > Oczywiscie dla uproszczenia liczby przesylane beda 8 bajtowe czyli int64 Oczywiście Twój kod nie działa tak, jak sobie wyobrażasz, tzn. nie zmienia kolejności bajtów i w dodatku zamazuje inne dane. > Nie wiem tylko czy lepiej dac cztery razy inc czy raz add ( coi bedzie > szybsze) ? Dodawanie i odejmowanie. Jedna instrukcja będzie tutaj szybsza niż cztery. > Druga sprawa, czy ktos wie dlaczego dwie instrukcje czyli bsr i bsf zwracaj > a ten sam wynik ??? > MOV EAX, 1 > bsr EBX,EAX // EBX =7 przeciez to jest Bit Scan Reverse ???!! > > MOV EAX, 1 > bsf EBX,EAX // EBX =7 przeciez to jest Bit Scan Forward ???!! Pewnie dlatego, że tak powinno być zgodnie z definicją tych instrukcji.
Technical Details
Message-ID:
<el3pd5$2vn$1@achot.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!not-for-mailReferences:
<8j3qqhx2oh2t.16ahj7wfz15t2$.dlg@40tude.net> <ekrivu$srf$1@news.onet.pl> <ekrl05$9tt$1@inews.gazeta.pl> <1fa3760oiybh8.7xk0unla13io.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news2.icm.edu.pl!not-for-mail From: Bernard <bernard@earth.net> Newsgroups: pl.comp.lang.asm Subject: Re: string reverse Date: Tue, 05 Dec 2006 13:44:09 +0100 Organization: http://news.icm.edu.pl/ Lines: 77 Message-ID: <el3pd5$2vn$1@achot.icm.edu.pl> References: <8j3qqhx2oh2t.16ahj7wfz15t2$.dlg@40tude.net> <ekrivu$srf$1@news.onet.pl> <ekrl05$9tt$1@inews.gazeta.pl> <1fa3760oiybh8.7xk0unla13io.dlg@40tude.net> NNTP-Posting-Host: p310-gbm.ii.pw.edu.pl Mime-Version: 1.0 X-Trace: achot.icm.edu.pl 1165322469 3063 194.29.168.171 (5 Dec 2006 12:41:09 GMT) X-Complaints-To: abuse@icm.edu.pl NNTP-Posting-Date: Tue, 5 Dec 2006 12:41:09 +0000 (UTC) In-Reply-To: <1fa3760oiybh8.7xk0unla13io.dlg@40tude.net> User-Agent: Thunderbird 1.5.0.8 (Windows/20061025) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit