Intel x86_64 asm:将指针4移动4

时间:2014-03-29 08:41:43

标签: assembly nasm

我和asm玩得很开心,但有些东西我不明白,我正在重新编码memset函数,当我发现我必须将我的内存指针指针4增加4时为了使它工作。为什么会这样?

谢谢!

编辑:哦,如果你碰巧对寄存器的重叠有解释,我真的很感激你能分享它!我总是将少于64位的参数移动到[rax - eax - a * ...]来分割这些参数。 : - (

(我的代码:)

memset:
    push rbp
    mov rbp, rsp

    mov rax, rsi
    mov r11, rdi
loop:
    cmp rdx, 0
    jz end
    mov byte [rdi], al
    dec rdx
    add rdi, 4    <------ here the 4 increment
    jmp loop
end:
    mov rax, r11
    mov rsp, rbp
    pop rbp
    ret

0 个答案:

没有答案