github.com/zxy12/go_duplicate_112_new@v0.0.0-20200807091221-747231827200/markdown/asm.md (about) 1 # asm 命令到底干了什么 2 3 lexer: 4 5 parser: 6 7 ctxt 8 9 ## 依赖的包介绍 10 11 ### cmd/asm/internal/arch 12 arch.go: 13 14 定义伪寄存器 RFP = -(iota + 1) RSB、RSP、RPC 15 asm.internal.arch -> obj.LinkArch -> sys.Arch 16 设置指令集 x86.Anames 17 寄存器 x86.Register 18 architecture(Arch).linkarch x86.Linkamd64 19 ctxt: Link 20 Arch.Init -> cmd.internal.obj.x86.asm6.instinit 21 Plist: 包含Curfn, Prog 一条机器指令 22 As: Opcode 23 For example, MOVL R1, R2 encodes using only As=MOVL, From=R1, To=R2. 24 Addr: 25 LSym: 26 27 ### cmd/internal/sys/ 28 arch.go: 29 30 ArchFamily: byte 环境,指针长度、寄存器长度、大小端 31 32 33