Цитата:
Сообщение от Akumu
Я на самом деле 64х ассемблером не увлекался никогда... В rsi указатель на исходную строку, в rdi буффер куда будет скопирована строка.
Код:
global strcpy
section .text
strcpy:
push rbp
mov rbp, rsp
xor rcx, rcx
loop:
cmp BYTE [rsi + rcx], 0
je end
mov al, [rsi + rcx]
mov [rdi + rcx], al
inc rcx
jmp loop
end:
mov BYTE [rdi + rcx], 0
mov rax, rdi
mov rsp, rbp
pop rbp
ret
|
спасибо, однако что то пошло не так
.const
Init dq 140019EA8h
Printf dq 140009148h
.data
msg db 32
.code
onLog proc
mov rsi, [rcx]
mov rdi, [offset msg]
call strcpy
xor ecx, ecx
call Init
mov rcx, rax
lea rdx, msg
call Printf
ret
onLog endp
; test
strcpy proc
push rbp
mov rbp, rsp
xor rcx, rcx
strcpy endp
loopfunc proc
cmp BYTE ptr [rsi + rcx], 0
je endfunc
mov al, [rsi + rcx]
mov [rdi + rcx], al
inc rcx
jmp loopfunc
loopfunc endp
endfunc proc
mov BYTE ptr [rdi + rcx], 0
mov rax, rdi
mov rsp, rbp
pop rbp
ret
endfunc endp
end
Code: ASM
вот такой код не работает