Cha*_*lle 2 assembly gnu x86-64
在调查崩溃时,我遇到了以下代码片段,并立即发现该mov指令实际上应该是movq为了获得正确的64位寄存器操作.
#elif defined(__x86_64__)
unsigned long rbp;
__asm__ volatile ("mov %%rbp, %0" : "=r" (rbp));
sp = (void **) rbp;
#else
Run Code Online (Sandbox Code Playgroud)
除此之外,我还发现文档声称rbpx86-64 的寄存器是通用的,不包含当前帧的地址.我还发现了声称rbp包含当前帧地址的文档.有人可以澄清吗?
| 归档时间: |
|
| 查看次数: |
1737 次 |
| 最近记录: |