|
|
| Посл.отвђт | Сообщен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 |