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

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Как соеденить две строки?

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


Дата: Окт 30, 2003 16:30:15

Ребята, подскажите, как соеденить две строки(вторую дописать в конец к первой) и все это на NASM для FreeBSD?

Заранее благодарен!


Дата: Окт 30, 2003 17:12:18

strcat:
                push    edi
                mov     edi, [esp+08h]
                mov     edx, [esp+0Ch]
                push    edi
                mov     ecx, -1
                xor     eax, eax
                repnz scasb
                dec     edi
.c_cpy:
                mov     al, [edx]
                inc     edx
                mov     [edi], al
                inc     edi
                test    al, al
                jnz     short .c_cpy
                pop     eax
                pop     edi
                retn


Ну а юзать соответсно:
                push    str1
                push    str2
                call    strcat
                add     esp, 8
;; eax == str1+str2

str1  db "string1",0
str2  db "string2",0


Дата: Окт 30, 2003 17:25:18

Dr.Golova

Это во FreeBSD будет работать? У меня просто нет возможности проверить...


Дата: Окт 30, 2003 17:36:36

Dr.Golova

Извиняюсь за еще один глупый вопрос, а как от сюда я могу узнать длину выходной строки?


Дата: Окт 30, 2003 18:42:38

Это во FreeBSD будет работать?

Шикарный вопрос. Ответ - нет.


Дата: Окт 30, 2003 18:48:21

volodya

Печально...


Дата: Окт 30, 2003 19:27:43

volodya
Вай? там процессор другой? -)
или формат С строк там отличается? -)


Дата: Окт 30, 2003 20:19:56

rst

Если проц - х86 - проблем нет. Строки те же (имеются в виду сишные строки). Но синтаксис-то другой. Как ты это планируешь компилировать? Кросс-комилятором? И что потом? Зачем себе на свою задницу проблемы изобретать? Есть же strcat.


Дата: Окт 30, 2003 22:59:09

volodya
Но синтаксис-то другой
Why?It's NASM.


Дата: Окт 30, 2003 23:12:52 · Поправил: van

Zaratustra
Эхх, если бы ты на полгодика позже спросил...
Я бы к тому времени уже кой-чего бы нарыл...

попробуй поискать здесь- и самое логичное:
http://sourceforge.net/forum/?group_id=6208


Дата: Окт 30, 2003 23:29:02

volodya
под FreeBSD есть ассемблеры как с AT&T так и с INTEL синтаксисом...
gas\as и nasm соотвественно


Дата: Ноя 3, 2003 10:26:24

Dr.Golova

А вы уверены, что на выходе будет str1+str2, а не str2+str1?

Заранее благодарен


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