https://github.com/akkartik/mu/blob/master/074write-stream-data.subx
1 == code
2
3
4
5
6
7
8
9
10
11 write-stream-data:
12
13 55/push-ebp
14 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
15
16 50/push-eax
17 51/push-ecx
18 56/push-esi
19
20 8b/copy 1/mod/*+disp8 5/rm32/ebp . . . 6/r32/esi 0xc/disp8 .
21
22
23 8b/copy 0/mod/indirect 6/rm32/esi . . . 0/r32/eax . .
24 8d/copy-address 1/mod/*+disp8 4/rm32/sib 6/base/esi 0/index/eax . 0/r32/eax 0xc/disp8 .
25 50/push-eax
26
27 8d/copy-address 1/mod/*+disp8 6/rm32/esi . . . 0/r32/eax 0xc/disp8 .
28 50/push-eax
29
30 89/copy 3/mod/direct 1/rm32/ecx . . . 4/r32/esp . .
31
32
33 51/push-ecx
34 ff 6/subop/push 1/mod/*+disp8 5/rm32/ebp . . . . 8/disp8 .
35
36 e8/call write-slice-buffered/disp32
37
38 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
39 $write-stream-data:end:
40
41 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
42
43 5e/pop-to-esi
44 59/pop-to-ecx
45 58/pop-to-eax
46
47 89/copy 3/mod/direct 4/rm32/esp . . . 5/r32/ebp . .
48 5d/pop-to-ebp
49 c3/return
50
51 test-write-stream-data:
52
53 55/push-ebp
54 89/copy 3/mod/direct 5/rm32/ebp . . . 4/r32/esp . .
55
56
57
58 68/push _test-output-stream/imm32
59
60 e8/call clear-stream/disp32
61
62 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
63
64
65 b8/copy-to-eax _test-output-buffered-file/imm32
66 05/add-to-eax 4/imm32
67 50/push-eax
68
69 e8/call clear-stream/disp32
70
71 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
72
73
74 68/push _test-input-stream/imm32
75
76 e8/call clear-stream/disp32
77
78 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
79
80
81
82 68/push "abcd"/imm32
83 68/push _test-input-stream/imm32
84
85 e8/call write/disp32
86
87 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
88
89
90 68/push _test-input-stream/imm32
91 68/push _test-output-buffered-file/imm32
92
93 e8/call write-stream-data/disp32
94
95 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 8/imm32
96
97
98
99 68/push _test-output-buffered-file/imm32
100
101 e8/call flush/disp32
102
103 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 4/imm32
104
105
106 68/push "F - test-write-stream-data"/imm32
107 68/push "abcd"/imm32
108 68/push _test-output-stream/imm32
109
110 e8/call check-stream-equal/disp32
111
112 81 0/subop/add 3/mod/direct 4/rm32/esp . . . . . 0xc/imm32
113
114 89/copy 3/mod/direct 4/rm32/esp . . . 5/r32/ebp . .
115 5d/pop-to-ebp
116 c3/return