Показать сообщение отдельно
Непрочитано 28.08.2016, 00:38   #13
Аватар для Sojang
Пользователь

Автор темы (Топик Стартер) Re: [Asm] Прочитать параметры

Цитата:
Сообщение от 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
вот такой код не работает
__________________
Лучше взять и изобрести завтрашний день, чем переживать о том, что вчерашний был так себе.
Sojang вне форума Ответить с цитированием