Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Title Форма
- include C:\masm32\include\irvine32.inc
- includelib c:\masm32\lib\user32.lib
- includelib c:\masm32\lib\kernel32.lib
- includelib c:\masm32\lib\Irvine32.lib
- str_copyn PROTO,
- source:ptr byte,
- target:ptr byte,
- count:dword
- Str_concat PROTO,
- source:ptr byte,
- target:ptr byte
- .data
- targetstr byte "ABCDE",10 dup(0)
- sourcestr byte "FGH",0
- ;________________
- .code
- ;mov ax,@data
- ;mov ds,ax
- main PROC
- start:
- invoke str_concat, addr sourcestr, addr targetstr
- call QUIT
- main ENDP
- Str_concat PROC USES ecx esi edi, ;Соединняет строки, из 1 дописывает в 2
- source:ptr byte, ;Адрес исходной (1)
- target:ptr byte ;Адрес выходной строки(сюда дописывает)
- mov edi, target ; ищем символ 0 в конечной строке
- mov al,0 ; //
- mov ecx, lengthof target ; счетчик
- cld
- repne scasb
- ;jnz
- dec edi ;в EDI адрес искомого символа(0) в строке target (получатель)
- ;cld
- mov ecx,lengthof source ;счетчик, КОличество символов в копируемой, исходная
- mov esi,source ;Здесь копируемая строка, источик
- rep movsb
- ret
- Str_concat ENDP
- str_copyN proc uses eax ecx esi edi, ; N символов копирует из 1 в 2 ?
- source:ptr byte,
- target:ptr byte,
- count:dword
- invoke str_length,source
- mov ecx,count
- ; inc ecx
- mov esi,source
- mov edi,target
- cld
- rep movsb
- ret
- str_copyN endp
- ;***********************************
- ;********* выход из проги ***
- quit PROC
- call dumpregs
- call waitmsg
- exit
- quit ENDP
- ;*****************************
- end main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement