1
0
mirror of https://github.com/chai2010/advanced-go-programming-book.git synced 2025-05-23 20:02:22 +00:00
advanced-go-programming-book/images/ch3-3-arch-amd64-02.ditaa.txt
2018-12-14 21:50:29 +08:00

30 lines
1.9 KiB
Plaintext

Go's Assembler pseudo registers
+----------+ +---------+ +--------------------+
| cYEL | | FLAGS | | MOV/LEA |
| heap | +---------+ +---------+ +--------------------+
| | | PC cBLU+-----+ IP cBLU| | CMP/TEST/JMP/J[CC] |
+----------+ +---------+ +---------+ +--------------------+
| cRED | | PUSH/POP |
| stack | +---------+ +--------------------+
+----------+ | AX | | CALL/RET |
| cRED | a+0(FP)+---------+ +---------+ +--------------------+
| frame | <-=----+ FP cRED| | BX |
+----------+ +---------+ +---------+ +--------------------+
| cRED | <-=----+ SP cRED| | CX | | ADD/SUB/MUL/DIV |
| local | t-8(SP)+---------+ +---------+ +--------------------+
| | | | DX | | AND/OR/XOR/NOT |
| : | +---------+ +--------------------+
| v | <-=--------+ | SI | | SHL/SHR |
+----------+ +0(SP) | +---------+ +--------------------+
| cGRE | | | DI |
| data | | +---------+ +--------------------+
+----------+ | | BP | | |
| cGRE | | +---------+ | |
| rodata | +-=---------+ SP cPNK| | ...more ins... |
+----------+ +---------+ +---------+ | |
| cBLU | +--+ SB cBLU| | R8~R15 | | |
| text | | +---------+ +---------+ +--------------------+
+----------+ <-=-+
Memory Pseudo Registers Real Register Instructions