0

我被 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
4

0 回答 0