1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 == code
17
18
19
20
21
22
23
24 68/push Error_integer/imm32
25
26 e8/call abort/disp32
27
28 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
29
30 bb/copy . . . . . . . 0/imm32
31 b8/copy . . . . . . . 1/imm32/exit
32 cd/syscall 0x80/imm8
33
34
35
36 abort:
37
38
39 ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 4/base/ESP 4/index/none . . 4/disp8 .
40
41 e8/call error/disp32
42
43 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
44
45 bb/copy . . . . . . . 1/imm32
46 b8/copy . . . . . . . 1/imm32/exit
47 cd/syscall 0x80/imm8
48
49
50 error:
51
52
53 68/push Error/imm32
54
55 e8/call write_stderr/disp32
56
57 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
58
59
60 ff 6/subop/push 1/mod/*+disp8 4/rm32/sib 4/base/ESP 4/index/none . . 4/disp8 .
61
62 e8/call write_stderr/disp32
63
64 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
65
66
67 68/push Expected_suffix/imm32
68
69 e8/call write_stderr/disp32
70
71 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
72
73
74 68/push Newline/imm32
75
76 e8/call write_stderr/disp32
77
78 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
79
80 c3/return
81
82 write_stderr:
83
84
85 bb/copy . . . . . . . 2/imm32
86
87 8b/copy 1/mod/*+disp8 4/rm32/SIB 4/base/ESP 4/index/none . 1/r32/ECX 4/disp8 .
88 81 0/subop/add 3/mod/direct 1/rm32/ECX . . . . . 4/imm32
89
90 8b/copy 1/mod/*+disp8 4/rm32/SIB 4/base/ESP 4/index/none . 2/r32/EDX 4/disp8 .
91 8b/copy 0/mod/indirect 2/rm32/EDX . . . 2/r32/EDX . .
92
93 b8/copy . . . . . . . 4/imm32/write
94 cd/syscall 0x80/imm8
95
96 c3/return
97
98 write_stdout:
99
100
101 bb/copy . . . . . . . 1/imm32
102
103 8b/copy 1/mod/*+disp8 4/rm32/SIB 4/base/ESP 4/index/none . 1/r32/ECX 4/disp8 .
104 81 0/subop/add 3/mod/direct 1/rm32/ECX . . . . . 4/imm32
105
106 8b/copy 1/mod/*+disp8 4/rm32/SIB 4/base/ESP 4/index/none . 2/r32/EDX 4/disp8 .
107 8b/copy 0/mod/indirect 2/rm32/EDX . . . 2/r32/EDX . .
108
109 b8/copy . . . . . . . 4/imm32/write
110 cd/syscall 0x80/imm8
111
112 c3/return
113
114 == data
115 Newline:
116
117 01 00 00 00
118
119 0a/newline
120 Error:
121
122 07 00 00 00
123
124 45/E 72/r 72/r 6f/o 72/r 3a/: 20/space
125 Expected_suffix:
126
127 09 00 00 00
128
129 20/space 65/e 78/x 70/p 65/e 63/c 74/t 65/e 64/d
130 Error_integer:
131
132 07 00 00 00
133
134 49/I 6e/n 74/t 65/e 67/g 65/e 72/r