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