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