Rizin
unix-like reverse engineering framework and cli tools
windows-x86.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: 2015 pancake <pancake@nopcode.org>
2 // SPDX-License-Identifier: LGPL-3.0-only
3 
4 return strdup(
5  "=PC eip\n"
6  "=SP esp\n"
7  "=BP ebp\n"
8  "=A0 eax\n"
9  "=A1 ebx\n"
10  "=A2 ecx\n"
11  "=A3 edi\n"
12  "drx@gpr dr0 .32 4 0\n"
13  "drx@gpr dr1 .32 8 0\n"
14  "drx@gpr dr2 .32 12 0\n"
15  "drx@gpr dr3 .32 16 0\n"
16  "drx@gpr dr6 .32 20 0\n"
17  "drx@gpr dr7 .32 24 0\n"
18  /* floating save area 4+4+4+4+4+4+4+80+4 = 112 */
19  "fpu@gpr ctw .32 28 0\n"
20  "fpu@gpr stw .32 32 0\n"
21  "fpu@gpr tag .32 36 0\n"
22  "fpu@gpr ero .32 40 0\n"
23  "fpu@gpr ers .32 44 0\n"
24  "fpu@gpr dao .32 48 0\n"
25  "fpu@gpr das .32 52 0\n"
26  "fpu@gpr st0 .80 56 0\n"
27  "fpu@gpr st1 .80 66 0\n"
28  "fpu@gpr st2 .80 76 0\n"
29  "fpu@gpr st3 .80 86 0\n"
30  "fpu@gpr st4 .80 96 0\n"
31  "fpu@gpr st5 .80 106 0\n"
32  "fpu@gpr st6 .80 116 0\n"
33  "fpu@gpr st7 .80 126 0\n"
34  "fpu@gpr spare .32 136 0\n"
35  "mmx@gpr mm0 .64 56 0\n"
36  "mmx@gpr mm1 .64 66 0\n"
37  "mmx@gpr mm2 .64 76 0\n"
38  "mmx@gpr mm3 .64 86 0\n"
39  "mmx@gpr mm4 .64 96 0\n"
40  "mmx@gpr mm5 .64 106 0\n"
41  "mmx@gpr mm6 .64 116 0\n"
42  "mmx@gpr mm7 .64 126 0\n"
43  /* end floating area. */
44  "gpr@gpr edi .32 156 0\n"
45  "gpr@gpr esi .32 160 0\n"
46  "gpr@gpr ebx .32 164 0\n"
47  "gpr@gpr edx .32 168 0\n"
48  "gpr@gpr ecx .32 172 0\n"
49  "gpr@gpr eax .32 176 0\n"
50  "gpr@gpr ebp .32 180 0\n"
51  "gpr@gpr eip .32 184 0\n"
52  "gpr@gpr eflags .32 192 0 c1p.a.zstido.n.rv\n" // XXX must be flg
53  "gpr@gpr esp .32 196 0\n"
54  "seg@gpr gs .32 140 0\n"
55  "seg@gpr fs .32 144 0\n"
56  "seg@gpr es .32 148 0\n"
57  "seg@gpr ds .32 152 0\n"
58  "seg@gpr cs .32 188 0\n"
59  "seg@gpr ss .32 200 0\n"
60  "gpr@gpr cf .1 .1536 0 carry\n"
61  "gpr@gpr pf .1 .1538 0 parity\n"
62  "gpr@gpr af .1 .1540 0 adjust\n"
63  "gpr@gpr zf .1 .1542 0 zero\n"
64  "gpr@gpr sf .1 .1543 0 sign\n"
65  "gpr@gpr tf .1 .1544 0 trap\n"
66  "gpr@gpr if .1 .1545 0 interrupt\n"
67  "gpr@gpr df .1 .1546 0 direction\n"
68  "gpr@gpr of .1 .1547 0 overflow\n"
69  /* +512 bytes for maximum supoprted extension extended registers */
70  "xmm@gpr xmm0 .128 364 0\n"
71  "xmm@gpr xmm1 .128 380 0\n"
72  "xmm@gpr xmm2 .128 396 0\n"
73  "xmm@gpr xmm3 .128 412 0\n"
74  "xmm@gpr xmm4 .128 428 0\n"
75  "xmm@gpr xmm5 .128 444 0\n"
76  "xmm@gpr xmm6 .128 460 0\n"
77  "xmm@gpr xmm7 .128 476 0\n"
78  /* this last register is needed to fit the arena into WINDOWS CONTEXT */
79  //"xmm@gpr endext .32 712 0\n"
80  /* end extended registers */
81 );
return strdup("=PC eip\n" "=SP esp\n" "=BP ebp\n" "=A0 eax\n" "=A1 ebx\n" "=A2 ecx\n" "=A3 edi\n" "drx@gpr dr0 .32 4 0\n" "drx@gpr dr1 .32 8 0\n" "drx@gpr dr2 .32 12 0\n" "drx@gpr dr3 .32 16 0\n" "drx@gpr dr6 .32 20 0\n" "drx@gpr dr7 .32 24 0\n" "fpu@gpr ctw .32 28 0\n" "fpu@gpr stw .32 32 0\n" "fpu@gpr tag .32 36 0\n" "fpu@gpr ero .32 40 0\n" "fpu@gpr ers .32 44 0\n" "fpu@gpr dao .32 48 0\n" "fpu@gpr das .32 52 0\n" "fpu@gpr st0 .80 56 0\n" "fpu@gpr st1 .80 66 0\n" "fpu@gpr st2 .80 76 0\n" "fpu@gpr st3 .80 86 0\n" "fpu@gpr st4 .80 96 0\n" "fpu@gpr st5 .80 106 0\n" "fpu@gpr st6 .80 116 0\n" "fpu@gpr st7 .80 126 0\n" "fpu@gpr spare .32 136 0\n" "mmx@gpr mm0 .64 56 0\n" "mmx@gpr mm1 .64 66 0\n" "mmx@gpr mm2 .64 76 0\n" "mmx@gpr mm3 .64 86 0\n" "mmx@gpr mm4 .64 96 0\n" "mmx@gpr mm5 .64 106 0\n" "mmx@gpr mm6 .64 116 0\n" "mmx@gpr mm7 .64 126 0\n" "gpr@gpr edi .32 156 0\n" "gpr@gpr esi .32 160 0\n" "gpr@gpr ebx .32 164 0\n" "gpr@gpr edx .32 168 0\n" "gpr@gpr ecx .32 172 0\n" "gpr@gpr eax .32 176 0\n" "gpr@gpr ebp .32 180 0\n" "gpr@gpr eip .32 184 0\n" "gpr@gpr eflags .32 192 0 c1p.a.zstido.n.rv\n" "gpr@gpr esp .32 196 0\n" "seg@gpr gs .32 140 0\n" "seg@gpr fs .32 144 0\n" "seg@gpr es .32 148 0\n" "seg@gpr ds .32 152 0\n" "seg@gpr cs .32 188 0\n" "seg@gpr ss .32 200 0\n" "gpr@gpr cf .1 .1536 0 carry\n" "gpr@gpr pf .1 .1538 0 parity\n" "gpr@gpr af .1 .1540 0 adjust\n" "gpr@gpr zf .1 .1542 0 zero\n" "gpr@gpr sf .1 .1543 0 sign\n" "gpr@gpr tf .1 .1544 0 trap\n" "gpr@gpr if .1 .1545 0 interrupt\n" "gpr@gpr df .1 .1546 0 direction\n" "gpr@gpr of .1 .1547 0 overflow\n" "xmm@gpr xmm0 .128 364 0\n" "xmm@gpr xmm1 .128 380 0\n" "xmm@gpr xmm2 .128 396 0\n" "xmm@gpr xmm3 .128 412 0\n" "xmm@gpr xmm4 .128 428 0\n" "xmm@gpr xmm5 .128 444 0\n" "xmm@gpr xmm6 .128 460 0\n" "xmm@gpr xmm7 .128 476 0\n")