forked from withlin/advanced-go-programming-book
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathch3-3-arch-amd64-02.ditaa.txt
29 lines (28 loc) · 1.9 KB
/
ch3-3-arch-amd64-02.ditaa.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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