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