1
2
3 == code
4
5
6
7
8
9
10
11 68/push "error in check-ints-equal"/imm32
12 68/push 35/imm32
13 68/push 34/imm32
14 e8/call check-ints-equal/disp32
15 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/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 8b/copy 1/mod/*+disp8 4/rm32/sib 5/base/EBP 4/index/none . 1/r32/ECX 0x10/disp8 .
49
50
51 51/push-ECX
52 68/push 2/imm32/stderr
53
54 e8/call _write/disp32
55
56 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
57
58
59 68/push Newline/imm32
60 68/push 2/imm32/stderr
61
62 e8/call _write/disp32
63
64 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
65
66 ff 0/subop/increment 0/mod/indirect 5/rm32/.disp32 . . . Num-test-failures/disp32
67 $check-ints-equal:end:
68
69 5b/pop-to-EBX
70 59/pop-to-ECX
71
72 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
73 5d/pop-to-EBP
74 c3/return
75
76 == data
77
78 Newline:
79
80 01 00 00 00
81
82 0a/newline
83
84 Num-test-failures:
85 00 00 00 00
86
87