1
2
3 == code
4
5
6
7
8
9
10
11 68/push "error in check-ints-equal"/imm32
12 68/push 34/imm32
13 68/push 34/imm32
14 e8/call check-ints-equal/disp32
15 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
16
17 bb/copy-to-EBX 0/imm32
18 b8/copy-to-EAX 1/imm32
19 cd/syscall 0x80/imm8
20
21
22 check-ints-equal:
23
24 55/push-EBP
25 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
26
27 51/push-ECX
28 53/push-EBX
29
30 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 0/r32/EAX 0x8/disp8 .
31 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 3/r32/EBX 0xc/disp8 .
32
33 39/compare 3/mod/direct 0/rm32/EAX . . . 3/r32/EBX . .
34 75/jump-if-unequal $check-ints-equal:else/disp8
35
36
37 68/push "."/imm32
38 68/push 2/imm32/stderr
39
40 e8/call _write/disp32
41
42 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
43
44 eb/jump $check-ints-equal:end/disp8
45
46 $check-ints-equal:else:
47
48
49 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 1/r32/ECX 0x10/disp8 .
50 51/push-ECX
51 68/push 2/imm32/stderr
52
53 e8/call _write/disp32
54
55 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
56
57
58 68/push Newline/imm32
59 68/push 2/imm32/stderr
60
61 e8/call _write/disp32
62
63 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
64
65 ff 0/subop/increment 0/mod/indirect 5/rm32/.disp32 . . . Num-test-failures/disp32
66 $check-ints-equal:end:
67
68 5b/pop-to-EBX
69 59/pop-to-ECX
70
71 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
72 5d/pop-to-EBP
73 c3/return
74
75 == data
76
77 Newline:
78
79 01 00 00 00
80
81 0a/newline
82
83 Num-test-failures:
84 00 00 00 00
85
86