我坚持使用NASM代码,我试图重现NASM中的strchr功能,我无法弄清楚两件事: - 为什么当我尝试打印结果时,即使我试图在字符串上返回一个指针,我也会在printf%s的错误格式上收到警告, - 也是为什么我一直收到SIGSEV信号,但我认为有一个问题与另一个问题有关。
这是我的代码,如果有人可以提供帮助,我们将不胜感激:
[BITS 64]
global strchr_asm
strchr_asm:
push rbp
mov rbp, rsp
mov r9, -1
mov rax, rsi
mov r8b, BYTE[rdi]
loop:
inc r9
cmp BYTE[rax+r9], 0
je endF
cmp BYTE[rax+r9], r8b
je endV
jmp loop
endF:
add rax, r9
jmp last
endV:
add rax, r9
last:
mov rsp, rbp
pop rbp
ret