https://github.com/akkartik/mu/blob/master/subx/apps/hex.subx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 == code
16
17
18
19
20
21
22
23
24
25
26
27 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
28
29
30 81 7/subop/compare 1/mod/*+disp8 5/rm32/EBP . . . . 0/disp8 1/imm32
31 7e/jump-if-lesser-or-equal $run-main/disp8
32
33
34 68/push "test"/imm32
35 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
36
37 e8/call kernel-string-equal?/disp32
38
39 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
40
41 3d/compare-EAX 1/imm32
42 75/jump-if-not-equal $run-main/disp8
43
44 e8/call run-tests/disp32
45 8b/copy 0/mod/indirect 5/rm32/.disp32 . . 3/r32/EBX Num-test-failures/disp32
46 eb/jump $main:end/disp8
47 $run-main:
48
49
50 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
51 89/copy 3/mod/direct 0/rm32/EAX . . . 4/r32/ESP . .
52
53
54 c7 0/subop/copy 0/mod/direct 0/rm32/EAX . . . . . 0/imm32
55
56
57 50/push-EAX/ed
58 68/push Stderr/imm32
59 68/push Stdout/imm32
60 68/push Stdin/imm32
61
62 e8/call convert/disp32
63
64 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0x10/imm32
65
66 bb/copy-to-EBX 0/imm32
67 $main:end:
68 b8/copy-to-EAX 1/imm32/exit
69 cd/syscall 0x80/imm8
70
71
72 convert:
73
74
75
76
77
78
79
80
81 55/push-EBP
82 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
83
84 50/push-EAX
85 $convert:loop:
86
87
88 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x14/disp8 .
89 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x10/disp8 .
90 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
91
92 e8/call convert-next-octet/disp32
93
94 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
95
96 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0xffffffff/imm32
97 74/jump-if-equal $convert:loop-end/disp8
98
99
100 50/push-EAX
101 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 .
102
103 e8/call write-byte/disp32
104
105 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
106
107 eb/jump $convert:loop/disp8
108 $convert:loop-end:
109
110
111 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 .
112
113 e8/call flush/disp32
114
115 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
116 $convert:end:
117
118 58/pop-to-EAX
119
120 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
121 5d/pop-to-EBP
122 c3/return
123
124
125
126
127
128
129
130 convert-next-octet:
131
132
133
134
135
136
137
138
139
140
141
142 55/push-EBP
143 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
144
145 51/push-ECX
146
147
148 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x10/disp8 .
149 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 .
150 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
151
152 e8/call scan-next-byte/disp32
153
154 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
155
156 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0xffffffff/imm32
157 74/jump-if-equal $convert-next-octet:end/disp8
158
159 e8/call from-hex-char/disp32
160
161 89/copy 3/mod/direct 1/rm32/ECX . . . 0/r32/EAX . .
162
163
164 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x10/disp8 .
165 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 .
166 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
167
168 e8/call scan-next-byte/disp32
169
170 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
171
172 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0xffffffff/imm32
173 75/jump-if-not-equal $convert-next-octet:convert/disp8
174
175
176 68/push 0x2e/imm32/period/dummy
177 68/push "convert-next-octet: partial byte found"/imm32
178 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 .
179 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x10/disp8 .
180
181 e8/call error-byte/disp32
182 $convert-next-octet:convert:
183
184 e8/call from-hex-char/disp32
185
186
187 c1/shift 4/subop/left 3/mod/direct 1/rm32/ECX . . . . . 4/imm8
188
189 09/or 3/mod/direct 0/rm32/EAX . . . 1/r32/ECX . .
190 $convert-next-octet:end:
191
192 59/pop-to-ECX
193
194 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
195 5d/pop-to-EBP
196 c3/return
197
198 test-convert-next-octet:
199
200
201 55/push-EBP
202 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
203
204
205
206 68/push _test-stream/imm32
207
208 e8/call clear-stream/disp32
209
210 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
211
212
213 b8/copy-to-EAX _test-buffered-file/imm32
214 05/add-to-EAX 4/imm32
215 50/push-EAX
216
217 e8/call clear-stream/disp32
218
219 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
220
221
222 68/push _test-error-stream/imm32
223
224 e8/call clear-stream/disp32
225
226 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
227
228
229 b8/copy-to-EAX _test-error-buffered-file/imm32
230 05/add-to-EAX 4/imm32
231 50/push-EAX
232
233 e8/call clear-stream/disp32
234
235 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
236
237
238
239 68/push "abc"/imm32
240 68/push _test-stream/imm32
241
242 e8/call write/disp32
243
244 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
245
246
247 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
248 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
249
250
251 68/push 0xc/imm32/nbytes-of-args-for-convert-next-octet
252 51/push-ECX/ed
253
254 e8/call tailor-exit-descriptor/disp32
255
256 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
257
258
259 51/push-ECX/ed
260 68/push _test-error-buffered-file/imm32
261 68/push _test-buffered-file/imm32
262
263 e8/call convert-next-octet/disp32
264
265
266
267 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
268
269 59/pop-to-ECX
270
271
272
273 68/push "F - test-convert-next-octet: unexpected abort"/imm32
274 68/push 0/imm32
275
276 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
277
278 e8/call check-ints-equal/disp32
279
280 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
281
282 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
283 75/jump-if-not-equal $test-convert-next-octet:end/disp8
284
285
286 68/push "F - test-convert-next-octet"/imm32
287 68/push 0xab/imm32/ab
288 50/push-EAX
289
290 e8/call check-ints-equal/disp32
291
292 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
293 $test-convert-next-octet:end:
294
295
296 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
297 5d/pop-to-EBP
298 c3/return
299
300 test-convert-next-octet-handles-eof:
301
302
303 55/push-EBP
304 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
305
306
307
308 68/push _test-stream/imm32
309
310 e8/call clear-stream/disp32
311
312 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
313
314
315 b8/copy-to-EAX _test-buffered-file/imm32
316 05/add-to-EAX 4/imm32
317 50/push-EAX
318
319 e8/call clear-stream/disp32
320
321 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
322
323
324 68/push _test-error-stream/imm32
325
326 e8/call clear-stream/disp32
327
328 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
329
330
331 b8/copy-to-EAX _test-error-buffered-file/imm32
332 05/add-to-EAX 4/imm32
333 50/push-EAX
334
335 e8/call clear-stream/disp32
336
337 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
338
339
340
341 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
342 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
343
344
345 68/push 0xc/imm32/nbytes-of-args-for-convert-next-octet
346 51/push-ECX/ed
347
348 e8/call tailor-exit-descriptor/disp32
349
350 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
351
352
353 51/push-ECX/ed
354 68/push _test-error-buffered-file/imm32
355 68/push _test-buffered-file/imm32
356
357 e8/call convert-next-octet/disp32
358
359
360
361 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
362
363 59/pop-to-ECX
364
365
366
367 68/push "F - test-convert-next-octet: unexpected abort"/imm32
368 68/push 0/imm32
369
370 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
371
372 e8/call check-ints-equal/disp32
373
374 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
375
376 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
377 75/jump-if-not-equal $test-convert-next-octet-handles-eof:end/disp8
378
379
380 68/push "F - test-convert-next-octet-handles-eof"/imm32
381 68/push 0xffffffff/imm32/eof
382 50/push-EAX
383
384 e8/call check-ints-equal/disp32
385
386 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
387 $test-convert-next-octet-handles-eof:end:
388
389
390 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
391 5d/pop-to-EBP
392 c3/return
393
394 test-convert-next-octet-aborts-on-single-hex-byte:
395
396
397 55/push-EBP
398 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
399
400
401
402 68/push _test-stream/imm32
403
404 e8/call clear-stream/disp32
405
406 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
407
408
409 b8/copy-to-EAX _test-buffered-file/imm32
410 05/add-to-EAX 4/imm32
411 50/push-EAX
412
413 e8/call clear-stream/disp32
414
415 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
416
417
418 68/push _test-error-stream/imm32
419
420 e8/call clear-stream/disp32
421
422 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
423
424
425 b8/copy-to-EAX _test-error-buffered-file/imm32
426 05/add-to-EAX 4/imm32
427 50/push-EAX
428
429 e8/call clear-stream/disp32
430
431 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
432
433
434
435 68/push "a"/imm32
436 68/push _test-stream/imm32
437
438 e8/call write/disp32
439
440 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
441
442
443 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
444 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
445
446
447 68/push 0xc/imm32/nbytes-of-args-for-convert-next-octet
448 51/push-ECX/ed
449
450 e8/call tailor-exit-descriptor/disp32
451
452 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
453
454
455 51/push-ECX/ed
456 68/push _test-error-buffered-file/imm32
457 68/push _test-buffered-file/imm32
458
459 e8/call convert-next-octet/disp32
460
461
462
463 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
464
465 59/pop-to-ECX
466
467
468
469 68/push "F - test-convert-next-octet-aborts-on-single-hex-byte: unexpected abort"/imm32
470 68/push 2/imm32
471
472 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
473
474 e8/call check-ints-equal/disp32
475
476 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
477 $test-convert-next-octet-aborts-on-single-hex-byte:end:
478
479
480 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
481 5d/pop-to-EBP
482 c3/return
483
484
485
486
487
488 scan-next-byte:
489
490
491
492
493
494
495
496
497
498
499 55/push-EBP
500 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
501
502 $scan-next-byte:loop:
503
504
505 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
506
507 e8/call read-byte/disp32
508
509 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
510
511 3d/compare-with-EAX 0xffffffff/imm32
512 74/jump-if-equal $scan-next-byte:end/disp8
513
514
515 50/push-EAX
516
517
518 50/push-EAX
519
520 e8/call is-hex-digit?/disp32
521
522 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
523
524 3d/compare-with-EAX 0/imm32
525
526 58/pop-to-EAX
527
528 75/jump-if-not-equal $scan-next-byte:end/disp8
529 $scan-next-byte:check1:
530
531 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0x20/imm32
532 74/jump-if-equal $scan-next-byte:loop/disp8
533
534 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0x9/imm32
535 74/jump-if-equal $scan-next-byte:loop/disp8
536
537 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0xa/imm32
538 74/jump-if-equal $scan-next-byte:loop/disp8
539 $scan-next-byte:check2:
540
541 3d/compare-with-EAX 0x23/imm32
542 75/jump-if-not-equal $scan-next-byte:check3/disp8
543
544
545 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
546
547 e8/call skip-until-newline/disp32
548
549 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
550 eb/jump $scan-next-byte:loop/disp8
551 $scan-next-byte:check3:
552
553
554 50/push-EAX
555 68/push "scan-next-byte: invalid byte"/imm32
556 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0xc/disp8 .
557 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 0x10/disp8 .
558
559 e8/call error-byte/disp32
560 $scan-next-byte:end:
561
562
563 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
564 5d/pop-to-EBP
565 c3/return
566
567 test-scan-next-byte:
568
569
570 55/push-EBP
571 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
572
573
574
575 68/push _test-stream/imm32
576
577 e8/call clear-stream/disp32
578
579 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
580
581
582 b8/copy-to-EAX _test-buffered-file/imm32
583 05/add-to-EAX 4/imm32
584 50/push-EAX
585
586 e8/call clear-stream/disp32
587
588 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
589
590
591 68/push _test-error-stream/imm32
592
593 e8/call clear-stream/disp32
594
595 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
596
597
598 b8/copy-to-EAX _test-error-buffered-file/imm32
599 05/add-to-EAX 4/imm32
600 50/push-EAX
601
602 e8/call clear-stream/disp32
603
604 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
605
606
607
608 68/push "abc"/imm32
609 68/push _test-stream/imm32
610
611 e8/call write/disp32
612
613 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
614
615
616 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
617 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
618
619
620 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
621 51/push-ECX/ed
622
623 e8/call tailor-exit-descriptor/disp32
624
625 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
626
627
628 51/push-ECX/ed
629 68/push _test-error-buffered-file/imm32
630 68/push _test-buffered-file/imm32
631
632 e8/call scan-next-byte/disp32
633
634
635
636 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
637
638 59/pop-to-ECX
639
640
641
642 68/push "F - test-scan-next-byte: unexpected abort"/imm32
643 68/push 0/imm32
644
645 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
646
647 e8/call check-ints-equal/disp32
648
649 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
650
651 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
652 75/jump-if-not-equal $test-scan-next-byte:end/disp8
653
654
655 68/push "F - test-scan-next-byte"/imm32
656 68/push 0x61/imm32/a
657 50/push-EAX
658
659 e8/call check-ints-equal/disp32
660
661 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
662 $test-scan-next-byte:end:
663
664
665 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
666 5d/pop-to-EBP
667 c3/return
668
669 test-scan-next-byte-skips-whitespace:
670
671
672 55/push-EBP
673 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
674
675
676
677 68/push _test-stream/imm32
678
679 e8/call clear-stream/disp32
680
681 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
682
683
684 b8/copy-to-EAX _test-buffered-file/imm32
685 05/add-to-EAX 4/imm32
686 50/push-EAX
687
688 e8/call clear-stream/disp32
689
690 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
691
692
693 68/push _test-error-stream/imm32
694
695 e8/call clear-stream/disp32
696
697 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
698
699
700 b8/copy-to-EAX _test-error-buffered-file/imm32
701 05/add-to-EAX 4/imm32
702 50/push-EAX
703
704 e8/call clear-stream/disp32
705
706 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
707
708
709
710 68/push " abc"/imm32
711 68/push _test-stream/imm32
712
713 e8/call write/disp32
714
715 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
716
717
718 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
719 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
720
721
722 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
723 51/push-ECX/ed
724
725 e8/call tailor-exit-descriptor/disp32
726
727 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
728
729
730 51/push-ECX/ed
731 68/push _test-error-buffered-file/imm32
732 68/push _test-buffered-file/imm32
733
734 e8/call scan-next-byte/disp32
735
736
737
738 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
739
740 59/pop-to-ECX
741
742
743
744 68/push "F - test-scan-next-byte-skips-whitespace: unexpected abort"/imm32
745 68/push 0/imm32
746
747 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
748
749 e8/call check-ints-equal/disp32
750
751 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
752
753 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
754 75/jump-if-not-equal $test-scan-next-byte-skips-whitespace:end/disp8
755
756
757 68/push "F - test-scan-next-byte-skips-whitespace"/imm32
758 68/push 0x61/imm32/a
759 50/push-EAX
760
761 e8/call check-ints-equal/disp32
762
763 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
764 $test-scan-next-byte-skips-whitespace:end:
765
766
767 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
768 5d/pop-to-EBP
769 c3/return
770
771 test-scan-next-byte-skips-comment:
772
773
774 55/push-EBP
775 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
776
777
778
779 68/push _test-stream/imm32
780
781 e8/call clear-stream/disp32
782
783 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
784
785
786 b8/copy-to-EAX _test-buffered-file/imm32
787 05/add-to-EAX 4/imm32
788 50/push-EAX
789
790 e8/call clear-stream/disp32
791
792 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
793
794
795 68/push _test-error-stream/imm32
796
797 e8/call clear-stream/disp32
798
799 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
800
801
802 b8/copy-to-EAX _test-error-buffered-file/imm32
803 05/add-to-EAX 4/imm32
804 50/push-EAX
805
806 e8/call clear-stream/disp32
807
808 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
809
810
811
812 68/push "#x"/imm32
813 68/push _test-stream/imm32
814
815 e8/call write/disp32
816
817 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
818
819
820 68/push Newline/imm32
821 68/push _test-stream/imm32
822
823 e8/call write/disp32
824
825 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
826
827
828 68/push "ab"/imm32
829 68/push _test-stream/imm32
830
831 e8/call write/disp32
832
833 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
834
835
836 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
837 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
838
839
840 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
841 51/push-ECX/ed
842
843 e8/call tailor-exit-descriptor/disp32
844
845 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
846
847
848 51/push-ECX/ed
849 68/push _test-error-buffered-file/imm32
850 68/push _test-buffered-file/imm32
851
852 e8/call scan-next-byte/disp32
853
854
855
856 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
857
858 59/pop-to-ECX
859
860
861
862 68/push "F - test-scan-next-byte-skips-comment: unexpected abort"/imm32
863 68/push 0/imm32
864
865 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
866
867 e8/call check-ints-equal/disp32
868
869 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
870
871 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
872 75/jump-if-not-equal $test-scan-next-byte-skips-comment:end/disp8
873
874
875 68/push "F - test-scan-next-byte-skips-comment"/imm32
876 68/push 0x61/imm32/a
877 50/push-EAX
878
879 e8/call check-ints-equal/disp32
880
881 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
882 $test-scan-next-byte-skips-comment:end:
883
884
885 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
886 5d/pop-to-EBP
887 c3/return
888
889 test-scan-next-byte-skips-comment-and-whitespace:
890
891
892 55/push-EBP
893 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
894
895
896
897 68/push _test-stream/imm32
898
899 e8/call clear-stream/disp32
900
901 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
902
903
904 b8/copy-to-EAX _test-buffered-file/imm32
905 05/add-to-EAX 4/imm32
906 50/push-EAX
907
908 e8/call clear-stream/disp32
909
910 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
911
912
913 68/push _test-error-stream/imm32
914
915 e8/call clear-stream/disp32
916
917 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
918
919
920 b8/copy-to-EAX _test-error-buffered-file/imm32
921 05/add-to-EAX 4/imm32
922 50/push-EAX
923
924 e8/call clear-stream/disp32
925
926 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
927
928
929
930 68/push "#x"/imm32
931 68/push _test-stream/imm32
932
933 e8/call write/disp32
934
935 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
936
937
938 68/push Newline/imm32
939 68/push _test-stream/imm32
940
941 e8/call write/disp32
942
943 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
944
945
946 68/push " ab"/imm32
947 68/push _test-stream/imm32
948
949 e8/call write/disp32
950
951 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
952
953
954 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
955 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
956
957
958 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
959 51/push-ECX/ed
960
961 e8/call tailor-exit-descriptor/disp32
962
963 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
964
965
966 51/push-ECX/ed
967 68/push _test-error-buffered-file/imm32
968 68/push _test-buffered-file/imm32
969
970 e8/call scan-next-byte/disp32
971
972
973
974 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
975
976 59/pop-to-ECX
977
978
979
980 68/push "F - test-scan-next-byte-skips-comment-and-whitespace: unexpected abort"/imm32
981 68/push 0/imm32
982
983 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
984
985 e8/call check-ints-equal/disp32
986
987 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
988
989 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
990 75/jump-if-not-equal $test-scan-next-byte-skips-comment-and-whitespace:end/disp8
991
992
993 68/push "F - test-scan-next-byte-skips-comment-and-whitespace"/imm32
994 68/push 0x61/imm32/a
995 50/push-EAX
996
997 e8/call check-ints-equal/disp32
998
999 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1000 $test-scan-next-byte-skips-comment-and-whitespace:end:
1001
1002
1003 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1004 5d/pop-to-EBP
1005 c3/return
1006
1007 test-scan-next-byte-skips-whitespace-and-comment:
1008
1009
1010 55/push-EBP
1011 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
1012
1013
1014
1015 68/push _test-stream/imm32
1016
1017 e8/call clear-stream/disp32
1018
1019 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1020
1021
1022 b8/copy-to-EAX _test-buffered-file/imm32
1023 05/add-to-EAX 4/imm32
1024 50/push-EAX
1025
1026 e8/call clear-stream/disp32
1027
1028 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1029
1030
1031 68/push _test-error-stream/imm32
1032
1033 e8/call clear-stream/disp32
1034
1035 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1036
1037
1038 b8/copy-to-EAX _test-error-buffered-file/imm32
1039 05/add-to-EAX 4/imm32
1040 50/push-EAX
1041
1042 e8/call clear-stream/disp32
1043
1044 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1045
1046
1047
1048 68/push " #x"/imm32
1049 68/push _test-stream/imm32
1050
1051 e8/call write/disp32
1052
1053 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1054
1055
1056 68/push Newline/imm32
1057 68/push _test-stream/imm32
1058
1059 e8/call write/disp32
1060
1061 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1062
1063
1064 68/push "ab"/imm32
1065 68/push _test-stream/imm32
1066
1067 e8/call write/disp32
1068
1069 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1070
1071
1072 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1073 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
1074
1075
1076 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
1077 51/push-ECX/ed
1078
1079 e8/call tailor-exit-descriptor/disp32
1080
1081 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1082
1083
1084 51/push-ECX/ed
1085 68/push _test-error-buffered-file/imm32
1086 68/push _test-buffered-file/imm32
1087
1088 e8/call scan-next-byte/disp32
1089
1090
1091
1092 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1093
1094 59/pop-to-ECX
1095
1096
1097
1098 68/push "F - test-scan-next-byte-skips-whitespace-and-comment: unexpected abort"/imm32
1099 68/push 0/imm32
1100
1101 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
1102
1103 e8/call check-ints-equal/disp32
1104
1105 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1106
1107 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
1108 75/jump-if-not-equal $test-scan-next-byte-skips-whitespace-and-comment:end/disp8
1109
1110
1111 68/push "F - test-scan-next-byte-skips-whitespace-and-comment"/imm32
1112 68/push 0x61/imm32/a
1113 50/push-EAX
1114
1115 e8/call check-ints-equal/disp32
1116
1117 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1118 $test-scan-next-byte-skips-whitespace-and-comment:end:
1119
1120
1121 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1122 5d/pop-to-EBP
1123 c3/return
1124
1125 test-scan-next-byte-reads-final-byte:
1126
1127
1128 55/push-EBP
1129 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
1130
1131
1132
1133 68/push _test-stream/imm32
1134
1135 e8/call clear-stream/disp32
1136
1137 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1138
1139
1140 b8/copy-to-EAX _test-buffered-file/imm32
1141 05/add-to-EAX 4/imm32
1142 50/push-EAX
1143
1144 e8/call clear-stream/disp32
1145
1146 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1147
1148
1149 68/push _test-error-stream/imm32
1150
1151 e8/call clear-stream/disp32
1152
1153 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1154
1155
1156 b8/copy-to-EAX _test-error-buffered-file/imm32
1157 05/add-to-EAX 4/imm32
1158 50/push-EAX
1159
1160 e8/call clear-stream/disp32
1161
1162 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1163
1164
1165
1166 68/push "a"/imm32
1167 68/push _test-stream/imm32
1168
1169 e8/call write/disp32
1170
1171 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1172
1173
1174 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1175 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
1176
1177
1178 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
1179 51/push-ECX/ed
1180
1181 e8/call tailor-exit-descriptor/disp32
1182
1183 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1184
1185
1186 51/push-ECX/ed
1187 68/push _test-error-buffered-file/imm32
1188 68/push _test-buffered-file/imm32
1189
1190 e8/call scan-next-byte/disp32
1191
1192
1193
1194 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1195
1196 59/pop-to-ECX
1197
1198
1199
1200 68/push "F - test-scan-next-byte-reads-final-byte: unexpected abort"/imm32
1201 68/push 0/imm32
1202
1203 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
1204
1205 e8/call check-ints-equal/disp32
1206
1207 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1208
1209 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
1210 75/jump-if-not-equal $test-scan-next-byte-reads-final-byte:end/disp8
1211
1212
1213 68/push "F - test-scan-next-byte-reads-final-byte"/imm32
1214 68/push 0x61/imm32/a
1215 50/push-EAX
1216
1217 e8/call check-ints-equal/disp32
1218
1219 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1220 $test-scan-next-byte-reads-final-byte:end:
1221
1222
1223 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1224 5d/pop-to-EBP
1225 c3/return
1226
1227 test-scan-next-byte-handles-eof:
1228
1229
1230 55/push-EBP
1231 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
1232
1233
1234
1235 68/push _test-stream/imm32
1236
1237 e8/call clear-stream/disp32
1238
1239 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1240
1241
1242 b8/copy-to-EAX _test-buffered-file/imm32
1243 05/add-to-EAX 4/imm32
1244 50/push-EAX
1245
1246 e8/call clear-stream/disp32
1247
1248 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1249
1250
1251 68/push _test-error-stream/imm32
1252
1253 e8/call clear-stream/disp32
1254
1255 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1256
1257
1258 b8/copy-to-EAX _test-error-buffered-file/imm32
1259 05/add-to-EAX 4/imm32
1260 50/push-EAX
1261
1262 e8/call clear-stream/disp32
1263
1264 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1265
1266
1267
1268 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1269 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
1270
1271
1272 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
1273 51/push-ECX/ed
1274
1275 e8/call tailor-exit-descriptor/disp32
1276
1277 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1278
1279
1280 51/push-ECX/ed
1281 68/push _test-error-buffered-file/imm32
1282 68/push _test-buffered-file/imm32
1283
1284 e8/call scan-next-byte/disp32
1285
1286
1287
1288 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1289
1290 59/pop-to-ECX
1291
1292
1293
1294 68/push "F - test-scan-next-byte-handles-eof: unexpected abort"/imm32
1295 68/push 0/imm32
1296
1297 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
1298
1299 e8/call check-ints-equal/disp32
1300
1301 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1302
1303 81 7/subop/compare 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 0/imm32
1304 75/jump-if-not-equal $test-scan-next-byte-handles-eof:end/disp8
1305
1306
1307 68/push "F - test-scan-next-byte-handles-eof"/imm32
1308 68/push 0xffffffff/imm32/eof
1309 50/push-EAX
1310
1311 e8/call check-ints-equal/disp32
1312
1313 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1314 $test-scan-next-byte-handles-eof:end:
1315
1316
1317 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1318 5d/pop-to-EBP
1319 c3/return
1320
1321 test-scan-next-byte-aborts-on-invalid-byte:
1322
1323
1324 55/push-EBP
1325 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
1326
1327
1328
1329 68/push _test-stream/imm32
1330
1331 e8/call clear-stream/disp32
1332
1333 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1334
1335
1336 b8/copy-to-EAX _test-buffered-file/imm32
1337 05/add-to-EAX 4/imm32
1338 50/push-EAX
1339
1340 e8/call clear-stream/disp32
1341
1342 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1343
1344
1345 68/push _test-error-stream/imm32
1346
1347 e8/call clear-stream/disp32
1348
1349 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1350
1351
1352 b8/copy-to-EAX _test-error-buffered-file/imm32
1353 05/add-to-EAX 4/imm32
1354 50/push-EAX
1355
1356 e8/call clear-stream/disp32
1357
1358 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1359
1360
1361
1362 68/push "x"/imm32
1363 68/push _test-stream/imm32
1364
1365 e8/call write/disp32
1366
1367 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1368
1369
1370 81 5/subop/subtract 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1371 89/copy 3/mod/direct 1/rm32/ECX . . . 4/r32/ESP . .
1372
1373
1374 68/push 0xc/imm32/nbytes-of-args-for-scan-next-byte
1375 51/push-ECX/ed
1376
1377 e8/call tailor-exit-descriptor/disp32
1378
1379 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1380
1381
1382 51/push-ECX/ed
1383 68/push _test-error-buffered-file/imm32
1384 68/push _test-buffered-file/imm32
1385
1386 e8/call scan-next-byte/disp32
1387
1388
1389
1390 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1391
1392 59/pop-to-ECX
1393
1394
1395
1396 68/push "F - test-scan-next-byte-aborts-on-invalid-byte"/imm32
1397 68/push 2/imm32
1398
1399 ff 6/subop/push 1/mod/*+disp8 1/rm32/ECX . . . . 4/disp8 .
1400
1401 e8/call check-ints-equal/disp32
1402
1403 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1404 $test-scan-next-byte-aborts-on-invalid-byte:end:
1405
1406
1407 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1408 5d/pop-to-EBP
1409 c3/return
1410
1411 skip-until-newline:
1412
1413
1414
1415
1416
1417
1418
1419
1420 55/push-EBP
1421 89/copy 3/mod/direct 5/rm32/EBP . . . 4/r32/ESP . .
1422
1423 50/push-EAX
1424 $skip-until-newline:loop:
1425
1426
1427 ff 6/subop/push 1/mod/*+disp8 5/rm32/EBP . . . . 8/disp8 .
1428
1429 e8/call read-byte/disp32
1430
1431 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1432
1433 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0xffffffff/imm32
1434 74/jump-if-equal $skip-until-newline:end/disp8
1435
1436 81 7/subop/compare 3/mod/direct 0/rm32/EAX . . . . . 0xa/imm32
1437 75/jump-if-not-equal $skip-until-newline:loop/disp8
1438 $skip-until-newline:end:
1439
1440 58/pop-to-EAX
1441
1442 89/copy 3/mod/direct 4/rm32/ESP . . . 5/r32/EBP . .
1443 5d/pop-to-EBP
1444 c3/return
1445
1446 test-skip-until-newline:
1447
1448
1449
1450
1451 68/push _test-stream/imm32
1452
1453 e8/call clear-stream/disp32
1454
1455 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1456
1457
1458 b8/copy-to-EAX _test-buffered-file/imm32
1459 05/add-to-EAX 4/imm32
1460 50/push-EAX
1461
1462 e8/call clear-stream/disp32
1463
1464 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1465
1466
1467
1468 68/push "abc"/imm32
1469 68/push _test-stream/imm32
1470
1471 e8/call write/disp32
1472
1473 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1474
1475
1476 68/push Newline/imm32
1477 68/push _test-stream/imm32
1478
1479 e8/call write/disp32
1480
1481 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1482
1483
1484 68/push "de"/imm32
1485 68/push _test-stream/imm32
1486
1487 e8/call write/disp32
1488
1489 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 8/imm32
1490
1491
1492 68/push _test-buffered-file/imm32
1493
1494 e8/call skip-until-newline/disp32
1495
1496 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 4/imm32
1497
1498
1499 68/push "F - test-skip-until-newline"/imm32
1500 68/push 4/imm32
1501 b8/copy-to-EAX _test-buffered-file/imm32
1502 ff 6/subop/push 1/mod/*+disp8 0/rm32/EAX . . . . 8/disp8 .
1503
1504 e8/call check-ints-equal/disp32
1505
1506 81 0/subop/add 3/mod/direct 4/rm32/ESP . . . . . 0xc/imm32
1507
1508 c3/return
1509
1510 == data
1511
1512 _test-error-stream:
1513
1514 00 00 00 00
1515
1516 00 00 00 00
1517
1518 08 00 00 00
1519
1520 00 00 00 00 00 00 00 00
1521
1522
1523 _test-error-buffered-file:
1524
1525 _test-error-stream/imm32
1526
1527 00 00 00 00
1528
1529 00 00 00 00
1530
1531 06 00 00 00
1532
1533 00 00 00 00 00 00
1534
1535