JIT 汇编中 r12 寄存器的作用

来源:11-6 实现BrainfuckJIT

律吕

2022-12-05

在解析 PUTCHAR 代码时,我们有:

; mov r12, rcx
; mov rdi, [rcx]
; mov rax, QWORD putchar as _
; sub rsp, BYTE 0x28
; call rax
; add rsp, BYTE 0x28
; mov rcx, r12

上图代码中的 r12 功能是什么,为什么需要让他暂存 rcx 的值,感觉 putchar 函数并不会改变 rcx 的值?

写回答

1回答

叶枭

2022-12-05

rcx 是 caller saved register, https://en.wikipedia.org/wiki/X86_calling_conventions

0
1
律吕
非常感谢!
2023-01-06
共1条回复

轻松实现Rust系统入门,实战编译器开发

入门者的平缓学习曲线,聚焦Rust核心重难点,获得实际应用能力

442 学习 · 45 问题

查看课程