· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Как записать строку задом наперёд?

<< . 1 . 2 . 3 . >>

Посл.отвђт Сообщенiе


Дата: Окт 3, 2003 13:53:43

Пример от Asterix

Тут как бы уже совместное творчество :-)))
Сейчас проверю под XP...


Дата: Окт 3, 2003 14:27:13

У меня всё работает :-)

_2097080393__revstring.zip


Дата: Окт 3, 2003 14:32:17

Заодно может быть подскажешь, как подсчитать в строке количество символов? Если не трудно.
И еще:
может быть вы знаете, какие-нибудь токловые
статьи про работу со строками и использование
стандарных функций API. И ещё дурной вопрос:
а CRC32 строки подсчитать можно? И как, если да?
("Путь жизни усян обломками... строк" переделано из:
"Путь жизни усеян облоками звёзд" - Дзён.)


Дата: Окт 3, 2003 14:32:48

Спасибо за ответ.


Дата: Окт 3, 2003 14:34:53

Вообще я считаю если уж чётность проверять, то в случае нечётной
строки выходить ничего не делая (допустим показав пользователю
MessageBox), т.к. некорректно в строке с нечётным колличеством
символов что-либо тасовать ПАРАМИ!


Дата: Окт 3, 2003 14:36:16

1990
Заодно может быть подскажешь, как подсчитать в строке количество символов?
А invoke lstrlen,esi что по твоему возвращает?


Дата: Окт 3, 2003 14:37:21

invoke lstrlen,esi
     mov ecx,eax ;<- здесь в eax количество символов,
                 ;которое возвращает функция lstrlen


Дата: Окт 3, 2003 14:47:06 · Поправил: Dr.Golova

С каких пор C считается недзенским языком? Его же можно скомпилять, сунуть в IDA и получится полный дзен :)

Ну ладно, вот вам на дзенском, хотя лично я больше люблю NASM:
.386p
.model flat, stdcall
option casemap :none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc

includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
i_str           db  "1234567", 0
m_tit           db  "simple test", 0

.code
align  ;; char* __cdecl swap_str2(char* i_str);
swap_str2:
                push    edi
                mov     edx, [esp+08h]      ;; i_str
                mov     edi, edx
                or      ecx, -1
                xor     eax, eax
                repne scasb
                not     ecx
                dec     ecx
                mov     edi, edx
                shr     ecx, 1
                jz      short @@swp2_done
@@swp2_loop:
                mov     ax, word ptr [edx]
                xchg    ah, al
                mov     word ptr [edx], ax
                add     edx, 2
                dec     ecx
                jnz     short @@swp2_loop
@@swp2_done:
                mov     eax, edi
                pop     edi
                retn

align
start:
                push    offset i_str
                call    swap_str2
                push    MB_OK
                push    offset m_tit
                push    eax
                push    0
                call    MessageBox
                push    eax
                call    ExitProcess
end start


Дата: Окт 3, 2003 14:51:31

Asterix!
не сочти за грубость, но я обнаружил в твоём атаче batch вирус.
Что мне делать???


Дата: Окт 3, 2003 14:56:24

1990
> Что мне делать???

Поставить нормальный антивирус, а то барахло чем пользуешся и которое детектит несуществующие вирусы снести под корень :)


Дата: Окт 3, 2003 14:56:27

Что мне делать???
1990 Отключи свой антивырь и посмотри внутрь файла
Если это вирус, то я...(убрано цензурой)


Дата: Окт 3, 2003 14:58:01

Dr.Golova
> Поставить нормальный антивирус
У меня Dr.Web 4.30а тоже руганулся... :))


Дата: Окт 3, 2003 15:00:47

> У меня Dr.Web 4.30а тоже руганулся

А он у меня и не относится к разряду нормальных - мы тут где-то уже обсуждали его кривую эвристику ругающуюся на все попало :)


Дата: Окт 3, 2003 15:02:38

Dr.Golova
И что же по твоему нормальный, уж не AVP ли?...


Дата: Окт 3, 2003 15:15:46

Уx, напугался! ;) Я про CRC32, извиняюсь, хочу узнать???
Скажите чё нить. Спасибо Asterix!

<< . 1 . 2 . 3 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.084