URL details: go.xargin.com/docs/assembly/assembly/
URL title:
Plan9 汇编解析 | Go 语言笔记
URL description:
plan9 assembly 完全解析 # 众所周知,Go 使用了 Unix 老古董(误 们发明的 plan9 汇编。就算你对 x86 汇编有所了解,在 plan9 里还是有些许区别。说不定你在看代码的时候,偶然发现代码里的 SP 看起来是 SP,但它实际上不是 SP 的时候就抓狂了哈哈哈。 本文将对 plan9 汇编进行全面的介绍,同时解答你在接触 plan9 汇编时可能遇到的大部分问题。 本文所使用的平台是 linux amd64,因为不同的平台指令集和寄存器都不一样,所以没有办法共同探讨。这也是由汇编本身的性质决定的。 基本指令 # 栈调整 # intel 或 AT&T 汇编提供了 push 和 pop 指令族,plan9 中没有 push 和 pop,plan9 中虽然有 push 和 pop 指令,但一般生成的代码中是没有的,我们看到的栈的调整大多是通过对硬件 SP 寄存器进行运算来实现的,例如: SUBQ $0x18, SP // 对 SP 做减法,为函数分配函数栈帧 ... // 省略无用代码 ADDQ $0x18, SP // 对 SP 做加法,清除函数栈帧 通用的指令和 X64 平台差
URL last crawled:
2022-06-29
URL speed:
0.192 MB/s,
downloaded in 0.600 seconds
We found no external links pointing to this url.