Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Строки: копиривание из одной в другую


Автор: netzoner 1.10.2006, 01:20
Как скопировать total символов начиная с символа first в другую строку? Просто копирование - работает. Трудность возникает как отсчитать требуемое количество не копируя, а потом скопировать требуемое количество символов.

Автор: dumb 1.10.2006, 02:02
Код

mov esi, offset first
mov edi, esi
xor eax, eax
mov ecx, total
mov edx, ecx
repnz scasb
sub edx, ecx
mov ecx, edx
shr ecx, 2
mov edi, offset dest
rep movsd
mov ecx, edx
and ecx, 3
rep movsb
stosb


вопрос не понял.

Автор: rsm 1.10.2006, 08:41
Код

; build with FASM 1.64

    mov esi,src
    add esi,[start]
    mov edi,dst
    mov ecx,[count]
    rep movsb
;    xor al,al
;    stosb

; ----
    
    src db 'Hello, World! :)',0    ; откуда копировать
    dst rb 20h    ; куда копировать
    start dd 3    ; с какой позиции начать
    count dd 7    ; сколько байт скопировать

Тоже не понял вопрос smile

Автор: netzoner 1.10.2006, 10:46
Что именно в вопросе не понятно?  smile 

Автор: rsm 1.10.2006, 18:34
Цитата(netzoner @  1.10.2006,  03:20 Найти цитируемый пост)
начиная с символа
Цитата(netzoner @  1.10.2006,  03:20 Найти цитируемый пост)
отсчитать требуемое количество
Нужно начать с какого-то конкретного символа, @ например, или просто с некоторой позиции?

Цитата(netzoner @  1.10.2006,  03:20 Найти цитируемый пост)
в другую строку?

В существующую строку или просто в область памяти для строки?

Автор: Akina 1.10.2006, 19:15
Цитата(netzoner @  1.10.2006,  11:46 Найти цитируемый пост)
Что именно в вопросе не понятно?

Ничего не понятно... пока понятно, что существуют строки String1 и String2, заданы позиция first и количество total.
Неясно, куда именно копировать - с начала целевой строки или с какой-то позиции? надо ли обрабатывать возможный выход за конец строки - как исходной, так и целевой? и вообще - с какими строками мы имеем дело - Паскалевского типа, PCHAR или ASCIIZ?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)