about summary refs log blame commit diff stats
path: root/html/apps/sigils.subx.html
blob: 6d3f9f23eb33ed3ecb7fd4eda030c34126813ff5 (plain) (tree)
1
2
3
4
5
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924



                                                                                          
                                    






















































                                                                                                      
                                                                                                                                     
                         



                                                                                                                                                     
                                                                                                                                                                               



                                                                                                                         
                                                                                                                            


                                                                                           
                                                                                                                            


                                                                                           
                                                                                                                                


                                                                                                    
                                                                                                                                  


                                                                                                                  
                                                                                                                                    


                                                                                                                           
                                                                                                                                             

                                                                                                                           
                                                                               
                                                                                                                            



                                                                                                                                                                     















                                                                                                                                                                                                                              
                                                                                             




                                                                                                                                                                                                                                                                                                                                                                                              

                                                                                                                                                                                                                                                                                                                                                                                                                  
                                                                                           
                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                   
                                                                                                                                                                                                                                                                                                                                                               
                                                                                                   
                                                                                                                                                       




                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                                        

                                                                                                                                                                                                                                                                                                                                                                                         

                                                                                                                       
                                                                                               

                                                                                            
                                                                                                                  
                                                                                                                                                                                                                                                                                                                                                                                                 

                                                                                                      
                                                                                                            
                                                                                                           
                                                                                                

                                                                                                                                                 
                                                                                           
                                                                                                             

                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                 
                                                                      
                                                                                               




                                                                                                                                                             
                                                                                                                                                                                 
                                                                                             
                                                                                                               

























                                                                                                                                                          
                                                                                              






                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                 




                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                           


                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                



                                                                                                    
                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                             
                                                                                                                            

                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                             

                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                                                       
                                                                                                




                                                                                                                           
                                                                                                                           

                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                             




                                                                                                                     
                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                                                          

                                                                                                             
                                                                                              
                                                                                                        







                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                         
                                                                                                            

                                                                                                                                                     
                                                                                                        
                                                                                                  
                                                                                                                                                                                                                                                                












                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                           







                                                                                                                                                                                                                                                                                                                                                                                          

                                                                                                                          
                                                                                             












































                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                      


                                                                                                                                                   
                                                                                      





                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                                            











































































































                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   










                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                 
                                                                                                                   
                                                                                                                             





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      
                                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                





                                                                                                                                                              
                                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   










                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    







                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                             





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      
                                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                





                                                                                                                                                                                  
                                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   




                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                 
                                                                                                                               
                                                                                            
                                                                                                                    

                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    







                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                             
                                                                                            
                                                                                                            
                                                                                                    

                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                 
                                                                                                                                      
                                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      









                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   










                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    







                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                             





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      
                                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                





                                                                                                                                                                                    
                                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   










                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                 
                                                                                                                   
                                                                                                                             





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      
                                                                                                                                    
                                                                                            
                                                                                                              
                                                                                                    



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      









                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                 












                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                 
                                                                                                                             
                                                                                            
                                                                                                                    

                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   










                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    







                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                             





                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      
                                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                      



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                                                





                                                                                                                                                                           
                                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                         
                                                                                                 
                                                                                                   










                                                                                                                                                                                                                                                                                                                                                                                          
                                                                                                                                          
                                                                                                 
                                                                                                    







                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              
                                                                                             
                                                                                                             
                                                                                                     

                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                  
                                                                                                                                       
                                                                                                                                     





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                  
                                                                                                                                       
                                                                                             
                                                                                                                  

                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                                     
                                                                                                                                  














                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                          
                                                                                                  
                                                                                                    




                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                  




                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                           
                                                                                                  
                                                                                                     







                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       
                                                                                                                                     






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                                                                
                                                                                                                                  













                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                          
                                                                                                  
                                                                                                    










                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                           
                                                                                                  
                                                                                                     
                                                                                             
                                                                                                                     
                                                                                                     




                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       
                                                                                                                                     
                                                                                             
                                                                                                               
                                                                                                     



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                 
                                                                                                  



                                                                                                                                                                                                            
                                                                                                                                  













                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                          
                                                                                                  
                                                                                                    










                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                           
                                                                                                  
                                                                                                     







                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       
                                                                                                                                     






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                                               
                                                                                                                                  






                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                       




                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                          





















                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                         
                                                                                             
                                                                                                                  














                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                 



























                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                             
                                                                                                                     
                                                                                                     
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                           
                                                                                                  
                                                                                                     













                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                  
                                                           
                                                                                                                                       
                                                                                             
                                                                                                                     
                                                                                                     


                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                         
                                                                                                                                  


















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     















                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                       
                                                                                             
                                                                                                                  
                                                                                                     
                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                         
                                                                                                                                  












                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                      



















































                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                      












                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                  




                                                                                                                  
                                                                                                                          






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                          


                                                                                                                                                                                                                                                                                                                               
                                                                                                   

                                                                                                                                                 
                                                                                                          




                                                                                                               
                                                                                                                                     


                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                             

                                                                                                                  
                                                                                                    




































                                                                                                                                                                                                                                                                                                                                                                                                   

                                                                                                  







































































                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              







                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                     











                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      











                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              
                                                                                             
                                                                                                                            
                                                                                                     




                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                     











                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      











                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                       






                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



























                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                  



                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      

                                                                                             
                                                                                                                       

                                                                                                                                                                                                                                                                                                                                                                                           






                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              
                                                                                             
                                                                                                                            
                                                                                                     


                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                  



                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      

                                                                                             
                                                                                                                       

                                                                                                                                                                                                                                                                                                                                                                                           






                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                                                                                                      
















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                              






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                              
                                                                                             
                                                                                                                            
                                                                                                     


                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                  



                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      

                                                                                             
                                                                                                                       

                                                                                                                                                                                                                                                                                                                                                                                           






                                                                                                                                                                                                                                                                                                                                                                         
                                                                                                                                                                                                                                                                                                                                                                                                                                                      

















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                                                  









































                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                          

















                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                
















                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                         
                                                                                             
                                                                                                                  











                                                                                                                                                                                                                                                                                                                                                                                                                           

                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                             
                                                                                                                                                     















                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                  


                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                     







                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                    

                                                                                                                                       
                                                                                                             

                                                                                                                                 
                                                                                                        








                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                     





















                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                         
                                                                                             
                                                                                                                         
                                                                                                     






                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                             
















                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                     







                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                    


                                                                                                                                        
                                                                                                                    






                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                        







                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                          









                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                     







                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                


                                                                                                                                         
                                                                                                         
                                                                                    
                                                                                                         

















                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                     







                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                        



























                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                 





































                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                 





































                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                 





































                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                 
























                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                    







                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                              











                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                         
                                                                                             
                                                                                                                  
                                                                                                     














































                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                             
                                                                                                                       
                                                                                                     


















































































































































































































































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                             





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                


                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                


                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                          














                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 














                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 














                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 














                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 













                                                                                                                                                                                                                                                                                                                                                                                              
                                                                                                     














                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 














                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 

























                                                                                                                                                                                                                                                                                                                                                                                               
                                                                                                                                 



























                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                  
                                                                                                                                  












                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                  
                                                                                                                                
                                                                                             
                                                                                                                     

                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                  
                                                                                                                                  


















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                           
                                                                                                                                  


















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                            
                                                                                                                                  


















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 
                                                                                                                                                                                                    
                                                                                                  



                                                                                                                                                                                                      
                                                                                                                                  


















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 




                                                                                                                                                                                                          
                                                                                             
                                                                                                                                  
                                                                                                     

















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                           
                                                                                                  
                                                                                                     









                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                       



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                                                                                                                                                                 





                                                                                                                                                                                                          
                                                                                                                                  






                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                       





                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                          










                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                       














                                                                                                                                                                                                                                                                                                                                                                                                                      
                                                                                                                                                         
                                                                                            
                                                                                                                         



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                        















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                                           




                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                          


















                                                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                                             






















                                                                                                                                                                                                                                                                                                                                                                                                
                                                                                                                                                                 
























                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                           





                                                                                                                               
                                                                                                  









                                                                                                                                                                          
                                                                                                  

                                                           
                                                                                             
                                                                                                                                                     

                                                                                                                                                                                                                                                                                                                                                                                           








                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                     




                                                                                                                                                                                                                                                                                                                                                                                                     
                                                                                             



                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                     




                                                                                                                                                                                                                                                                                                                                                                                                     
                                                                                                                             






                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                          

                                                                                                                                                                                                                                                                                                                                                                                           

                                                                                                              
                                                                                                                     



                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                          



                                                                                                                                                                                                                                                                                                                                                                                                         
                                                                


                                                                                                               

                                                                                                                                                                                                                                                                                                                                                                                            
                                                                                     























                                                                                                                                                                                                                                                                                                                                                                                                                       
                                                                                                               
































                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                                               
























































































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                 
                                                                                                                                                                          


























                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                              




                                                                                                                                                                                                                                                                                                                                                                                                     
                                                                                                      



                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                              




                                                                                                                                                                                                                                                                                                                                                                                                     
                                                                                                      






                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                          



                                                                                                                                                                                                                                                                                                                                                                                           
                                                                                              



                                                                                                                                                                                                                                                                                                                                                                                                        
                                                                                                                          

































































































































































































                                                                                                                                                                                                                                                                                                                                                                                                         



                                     
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Mu - apps/sigils.subx</title>
<meta name="Generator" content="Vim/8.1">
<meta name="plugin-version" content="vim8.1_v1">
<meta name="syntax" content="none">
<meta name="settings" content="number_lines,use_css,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
<meta name="colorscheme" content="minimal-light">
<style type="text/css">
<!--
pre { font-family: monospace; color: #000000; background-color: #c6c6c6; }
body { font-size:12pt; font-family: monospace; color: #000000; background-color: #c6c6c6; }
a { color:inherit; }
* { font-size:12pt; font-size: 1em; }
.subxComment { color: #005faf; }
.subxS2Comment { color: #8a8a8a; }
.subxFunction { color: #af5f00; text-decoration: underline; }
.LineNr { }
.subxS1Comment { color: #0000af; }
.subxTest { color: #5f8700; }
.SpecialChar { color: #d70000; }
.Normal { color: #000000; background-color: #c6c6c6; padding-bottom: 1px; }
.Folded { color: #080808; background-color: #949494; }
.Constant { color: #008787; }
.subxH1Comment { color: #005faf; text-decoration: underline; }
-->
</style>

<script type='text/javascript'>
<!--

/* function to open any folds containing a jumped-to line before jumping to it */
function JumpToLine()
{
  var lineNum;
  lineNum = window.location.hash;
  lineNum = lineNum.substr(1); /* strip off '#' */

  if (lineNum.indexOf('L') == -1) {
    lineNum = 'L'+lineNum;
  }
  var lineElem = document.getElementById(lineNum);
  /* Always jump to new location even if the line was hidden inside a fold, or
   * we corrected the raw number to a line ID.
   */
  if (lineElem) {
    lineElem.scrollIntoView(true);
  }
  return true;
}
if ('onhashchange' in window) {
  window.onhashchange = JumpToLine;
}

-->
</script>
</head>
<body onload='JumpToLine();'>
<a href='https://github.com/akkartik/mu/blob/master/apps/sigils.subx'>https://github.com/akkartik/mu/blob/master/apps/sigils.subx</a>
<pre id='vimCodeElement'>
<span id="L1" class="LineNr">   1 </span><span class="subxComment"># Experimental syntax sugar for addressing modes that expand into /rm32 and</span>
<span id="L2" class="LineNr">   2 </span><span class="subxComment"># other related arguments.</span>
<span id="L3" class="LineNr">   3 </span><span class="subxComment">#</span>
<span id="L4" class="LineNr">   4 </span><span class="subxComment"># To run:</span>
<span id="L5" class="LineNr">   5 </span><span class="subxComment">#   $ ./bootstrap translate init.linux 0*.subx apps/subx-params.subx apps/sigils.subx  -o apps/sigils</span>
<span id="L6" class="LineNr">   6 </span><span class="subxComment">#</span>
<span id="L7" class="LineNr">   7 </span><span class="subxComment"># We currently support the following notations:</span>
<span id="L8" class="LineNr">   8 </span><span class="subxComment">#</span>
<span id="L9" class="LineNr">   9 </span><span class="subxComment"># 1.</span>
<span id="L10" class="LineNr">  10 </span><span class="subxComment">#   $ echo '%eax'  |  ./bootstrap run apps/sigils</span>
<span id="L11" class="LineNr">  11 </span><span class="subxComment">#   3/mod 0/rm32</span>
<span id="L12" class="LineNr">  12 </span><span class="subxComment">#</span>
<span id="L13" class="LineNr">  13 </span><span class="subxComment"># 2.</span>
<span id="L14" class="LineNr">  14 </span><span class="subxComment">#   $ echo '*eax'  |  ./bootstrap run apps/sigils</span>
<span id="L15" class="LineNr">  15 </span><span class="subxComment">#   0/mod 0/rm32</span>
<span id="L16" class="LineNr">  16 </span><span class="subxComment">#</span>
<span id="L17" class="LineNr">  17 </span><span class="subxComment"># 3.</span>
<span id="L18" class="LineNr">  18 </span><span class="subxComment">#   $ echo '*(eax+4)'  |  ./bootstrap run apps/sigils</span>
<span id="L19" class="LineNr">  19 </span><span class="subxComment">#   2/mod 0/rm32 4/disp32</span>
<span id="L20" class="LineNr">  20 </span><span class="subxComment">#</span>
<span id="L21" class="LineNr">  21 </span><span class="subxComment"># 4.</span>
<span id="L22" class="LineNr">  22 </span><span class="subxComment">#   $ echo '*(eax+ecx)'  |  ./bootstrap run apps/sigils</span>
<span id="L23" class="LineNr">  23 </span><span class="subxComment">#   0/mod 4/rm32 0/base 1/index 0/scale</span>
<span id="L24" class="LineNr">  24 </span><span class="subxComment">#</span>
<span id="L25" class="LineNr">  25 </span><span class="subxComment"># 5.</span>
<span id="L26" class="LineNr">  26 </span><span class="subxComment">#   $ echo '*(eax+ecx+4)'  |  ./bootstrap run apps/sigils</span>
<span id="L27" class="LineNr">  27 </span><span class="subxComment">#   2/mod 4/rm32 0/base 1/index 0/scale 4/disp32</span>
<span id="L28" class="LineNr">  28 </span><span class="subxComment">#</span>
<span id="L29" class="LineNr">  29 </span><span class="subxComment"># 6.</span>
<span id="L30" class="LineNr">  30 </span><span class="subxComment">#   $ echo '*(eax+ecx&lt;&lt;2+4)'  |  ./bootstrap run apps/sigils</span>
<span id="L31" class="LineNr">  31 </span><span class="subxComment">#   2/mod 4/rm32 0/base 1/index 2/scale 4/disp32</span>
<span id="L32" class="LineNr">  32 </span><span class="subxComment">#</span>
<span id="L33" class="LineNr">  33 </span><span class="subxComment"># 7.</span>
<span id="L34" class="LineNr">  34 </span><span class="subxComment">#   $ echo '*Foo'  |  ./bootstrap run apps/sigils</span>
<span id="L35" class="LineNr">  35 </span><span class="subxComment">#   0/mod 5/rm32/.disp32 Foo/disp32</span>
<span id="L36" class="LineNr">  36 </span><span class="subxComment">#</span>
<span id="L37" class="LineNr">  37 </span><span class="subxComment"># Addition isn't commutative here. Template must always be (base+index&lt;&lt;scale+disp),</span>
<span id="L38" class="LineNr">  38 </span><span class="subxComment"># though some components are optional as described above.</span>
<span id="L39" class="LineNr">  39 </span><span class="subxComment"># In particular, global variables like 'Foo' above don't support displacement</span>
<span id="L40" class="LineNr">  40 </span><span class="subxComment"># or index or scale.</span>
<span id="L41" class="LineNr">  41 </span><span class="subxComment">#</span>
<span id="L42" class="LineNr">  42 </span><span class="subxComment"># No metadata allowed inside '*(...)'.</span>
<span id="L43" class="LineNr">  43 </span><span class="subxComment"># Whitespace inside '*(...)' is ok. But not immediately after the '*' or '%'.</span>
<span id="L44" class="LineNr">  44 </span><span class="subxComment">#</span>
<span id="L45" class="LineNr">  45 </span><span class="subxComment"># The code generated is sub-optimal:</span>
<span id="L46" class="LineNr">  46 </span><span class="subxComment">#   - displacements are always disp32, even when disp8 will do</span>
<span id="L47" class="LineNr">  47 </span><span class="subxComment">#   - *(...esp...) always uses SIB arguments even when redundant</span>
<span id="L48" class="LineNr">  48 </span>
<span id="L49" class="LineNr">  49 </span>== code
<span id="L50" class="LineNr">  50 </span><span class="subxComment">#   instruction                     effective address                                                   register    displacement    immediate</span>
<span id="L51" class="LineNr">  51 </span><span class="subxS1Comment"># . op          subop               mod             rm32          base        index         scale       r32</span>
<span id="L52" class="LineNr">  52 </span><span class="subxS1Comment"># . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes</span>
<span id="L53" class="LineNr">  53 </span>
<span id="L54" class="LineNr">  54 </span><span class="SpecialChar">Entry</span>:  <span class="subxComment"># run tests if necessary, convert stdin if not</span>
<span id="L55" class="LineNr">  55 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L56" class="LineNr">  56 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L57" class="LineNr">  57 </span>
<span id="L58" class="LineNr">  58 </span>    <span class="subxComment"># initialize heap</span>
<span id="L59" class="LineNr">  59 </span>    <span class="subxS1Comment"># . Heap = new-segment(Heap-size)</span>
<span id="L60" class="LineNr">  60 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L61" class="LineNr">  61 </span>    68/push  <span class="SpecialChar"><a href='../069allocate.subx.html#L22'>Heap</a></span>/imm32
<span id="L62" class="LineNr">  62 </span>    ff          6/subop/push        0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          <span class="SpecialChar"><a href='../069allocate.subx.html#L29'>Heap-size</a></span>/disp32                  <span class="subxComment"># push *Heap-size</span>
<span id="L63" class="LineNr">  63 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L64" class="LineNr">  64 </span>    e8/call  <a href='../053new-segment.subx.html#L41'>new-segment</a>/disp32
<span id="L65" class="LineNr">  65 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L66" class="LineNr">  66 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L67" class="LineNr">  67 </span>
<span id="L68" class="LineNr">  68 </span>    <span class="subxH1Comment"># - if argc &gt; 1 and argv[1] == &quot;test&quot;, then return run_tests()</span>
<span id="L69" class="LineNr">  69 </span>    <span class="subxComment"># if (argc &lt;= 1) goto interactive</span>
<span id="L70" class="LineNr">  70 </span>    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0/disp8         1/imm32           <span class="subxComment"># compare *ebp</span>
<span id="L71" class="LineNr">  71 </span>    7e/jump-if-&lt;=  $subx-sigils-main:interactive/disp8
<span id="L72" class="LineNr">  72 </span>    <span class="subxComment"># if (!kernel-string-equal?(argv[1], &quot;test&quot;)) goto interactive</span>
<span id="L73" class="LineNr">  73 </span>    <span class="subxS1Comment"># . eax = kernel-string-equal?(argv[1], &quot;test&quot;)</span>
<span id="L74" class="LineNr">  74 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L75" class="LineNr">  75 </span>    68/push  <span class="Constant">&quot;test&quot;</span>/imm32
<span id="L76" class="LineNr">  76 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L77" class="LineNr">  77 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L78" class="LineNr">  78 </span>    e8/call  <a href='../052kernel-string-equal.subx.html#L33'>kernel-string-equal?</a>/disp32
<span id="L79" class="LineNr">  79 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L80" class="LineNr">  80 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L81" class="LineNr">  81 </span>    <span class="subxS1Comment"># . if (eax == false) goto interactive</span>
<span id="L82" class="LineNr">  82 </span>    3d/compare-eax-and  0/imm32/false
<span id="L83" class="LineNr">  83 </span>    74/jump-if-=  $subx-sigils-main:interactive/disp8
<span id="L84" class="LineNr">  84 </span>    <span class="subxComment"># run-tests()</span>
<span id="L85" class="LineNr">  85 </span>    e8/call  run-tests/disp32
<span id="L86" class="LineNr">  86 </span>    <span class="subxComment"># syscall(exit, *Num-test-failures)</span>
<span id="L87" class="LineNr">  87 </span>    8b/copy                         0/mod/indirect  5/rm32/.disp32           <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx   <span class="SpecialChar"><a href='../051test.subx.html#L90'>Num-test-failures</a></span>/disp32          <span class="subxComment"># copy *Num-test-failures to ebx</span>
<span id="L88" class="LineNr">  88 </span>    eb/jump  $subx-sigils-main:end/disp8
<span id="L89" class="LineNr">  89 </span><span class="Constant">$subx-sigils-main:interactive</span>:
<span id="L90" class="LineNr">  90 </span>    <span class="subxH1Comment"># - otherwise convert stdin</span>
<span id="L91" class="LineNr">  91 </span>    <span class="subxComment"># subx-sigils(Stdin, Stdout)</span>
<span id="L92" class="LineNr">  92 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L93" class="LineNr">  93 </span>    68/push  <span class="SpecialChar"><a href='../064write-byte.subx.html#L10'>Stdout</a></span>/imm32
<span id="L94" class="LineNr">  94 </span>    68/push  <span class="SpecialChar"><a href='../061read-byte.subx.html#L14'>Stdin</a></span>/imm32
<span id="L95" class="LineNr">  95 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L96" class="LineNr">  96 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L97" class="LineNr">  97 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L98" class="LineNr">  98 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L99" class="LineNr">  99 </span>    <span class="subxComment"># syscall(exit, 0)</span>
<span id="L100" class="LineNr"> 100 </span>    bb/copy-to-ebx  0/imm32
<span id="L101" class="LineNr"> 101 </span><span class="Constant">$subx-sigils-main:end</span>:
<span id="L102" class="LineNr"> 102 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L103" class="LineNr"> 103 </span>    cd/syscall  0x80/imm8
<span id="L104" class="LineNr"> 104 </span>
<span id="L105" class="LineNr"> 105 </span><span class="subxComment"># error messages considered:</span>
<span id="L106" class="LineNr"> 106 </span><span class="subxComment">#   *x + 34                 -&gt; error: base+disp addressing must be within '()'</span>
<span id="L107" class="LineNr"> 107 </span><span class="subxFunction">subx-sigils</span>:  <span class="subxComment"># in: (addr buffered-file), out: (addr buffered-file)</span>
<span id="L108" class="LineNr"> 108 </span>    <span class="subxComment"># pseudocode:</span>
<span id="L109" class="LineNr"> 109 </span>    <span class="subxComment">#   var line: (stream byte 512)</span>
<span id="L110" class="LineNr"> 110 </span>    <span class="subxComment">#   while true</span>
<span id="L111" class="LineNr"> 111 </span>    <span class="subxComment">#     clear-stream(line)</span>
<span id="L112" class="LineNr"> 112 </span>    <span class="subxComment">#     read-line-buffered(in, line)</span>
<span id="L113" class="LineNr"> 113 </span>    <span class="subxComment">#     if (line-&gt;write == 0) break                     # end of file</span>
<span id="L114" class="LineNr"> 114 </span>    <span class="subxComment">#     while true</span>
<span id="L115" class="LineNr"> 115 </span>    <span class="subxComment">#       var word-slice = next-word-or-expression(line)</span>
<span id="L116" class="LineNr"> 116 </span>    <span class="subxComment">#       if slice-empty?(word-slice)                   # end of line</span>
<span id="L117" class="LineNr"> 117 </span>    <span class="subxComment">#         break</span>
<span id="L118" class="LineNr"> 118 </span>    <span class="subxComment">#       if slice-starts-with?(word-slice, &quot;#&quot;)        # comment</span>
<span id="L119" class="LineNr"> 119 </span>    <span class="subxComment">#         continue</span>
<span id="L120" class="LineNr"> 120 </span>    <span class="subxComment">#       if slice-starts-with?(word-slice, '%')        # direct mode</span>
<span id="L121" class="LineNr"> 121 </span>    <span class="subxComment">#         emit-direct-mode(out, word-slice)</span>
<span id="L122" class="LineNr"> 122 </span>    <span class="subxComment">#       else if slice-starts-with?(word-slice, '*')   # indirect mode</span>
<span id="L123" class="LineNr"> 123 </span>    <span class="subxComment">#         if disp32-mode?(word-slice)</span>
<span id="L124" class="LineNr"> 124 </span>    <span class="subxComment">#           emit-indirect-disp32(out, word-slice)</span>
<span id="L125" class="LineNr"> 125 </span>    <span class="subxComment">#         else</span>
<span id="L126" class="LineNr"> 126 </span>    <span class="subxComment">#           base, index, scale, disp = parse-effective-address(word-slice)</span>
<span id="L127" class="LineNr"> 127 </span>    <span class="subxComment">#           emit-indirect-mode(out, base, index, scale, disp)</span>
<span id="L128" class="LineNr"> 128 </span>    <span class="subxComment">#       else if slice-starts-with?(word-slice, '+')</span>
<span id="L129" class="LineNr"> 129 </span>    <span class="subxComment">#         abort(&quot;'+' only permitted within '*(...)'&quot;)</span>
<span id="L130" class="LineNr"> 130 </span>    <span class="subxComment">#       else</span>
<span id="L131" class="LineNr"> 131 </span>    <span class="subxComment">#         write-slice-buffered(out, word-slice)</span>
<span id="L132" class="LineNr"> 132 </span>    <span class="subxComment">#       write(out, &quot; &quot;)</span>
<span id="L133" class="LineNr"> 133 </span>    <span class="subxComment">#     write(out, &quot;\n&quot;)</span>
<span id="L134" class="LineNr"> 134 </span>    <span class="subxComment">#   flush(out)</span>
<span id="L135" class="LineNr"> 135 </span>    <span class="subxComment">#</span>
<span id="L136" class="LineNr"> 136 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L137" class="LineNr"> 137 </span>    55/push-ebp
<span id="L138" class="LineNr"> 138 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L139" class="LineNr"> 139 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L140" class="LineNr"> 140 </span>    50/push-eax
<span id="L141" class="LineNr"> 141 </span>    51/push-ecx
<span id="L142" class="LineNr"> 142 </span>    52/push-edx
<span id="L143" class="LineNr"> 143 </span>    53/push-ebx
<span id="L144" class="LineNr"> 144 </span>    <span class="subxComment"># var line/ecx: (stream byte 512)</span>
<span id="L145" class="LineNr"> 145 </span>    81          5/subop/subtract    3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x200/imm32       <span class="subxComment"># subtract from esp</span>
<span id="L146" class="LineNr"> 146 </span>    68/push  0x200/imm32/length
<span id="L147" class="LineNr"> 147 </span>    68/push  0/imm32/read
<span id="L148" class="LineNr"> 148 </span>    68/push  0/imm32/write
<span id="L149" class="LineNr"> 149 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L150" class="LineNr"> 150 </span>    <span class="subxComment"># var word-slice/edx: slice</span>
<span id="L151" class="LineNr"> 151 </span>    68/push  0/imm32/end
<span id="L152" class="LineNr"> 152 </span>    68/push  0/imm32/start
<span id="L153" class="LineNr"> 153 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to edx</span>
<span id="L154" class="LineNr"> 154 </span><span class="Constant">$subx-sigils:line-loop</span>:
<span id="L155" class="LineNr"> 155 </span>    <span class="subxComment"># clear-stream(line)</span>
<span id="L156" class="LineNr"> 156 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L157" class="LineNr"> 157 </span>    51/push-ecx
<span id="L158" class="LineNr"> 158 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L159" class="LineNr"> 159 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L160" class="LineNr"> 160 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L161" class="LineNr"> 161 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L162" class="LineNr"> 162 </span>    <span class="subxComment"># read-line-buffered(in, line)</span>
<span id="L163" class="LineNr"> 163 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L164" class="LineNr"> 164 </span>    51/push-ecx
<span id="L165" class="LineNr"> 165 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L166" class="LineNr"> 166 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L167" class="LineNr"> 167 </span>    e8/call  <a href='../071read-line.subx.html#L9'>read-line-buffered</a>/disp32
<span id="L168" class="LineNr"> 168 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L169" class="LineNr"> 169 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L170" class="LineNr"> 170 </span><span class="Constant">$subx-sigils:check0</span>:
<span id="L171" class="LineNr"> 171 </span>    <span class="subxComment"># if (line-&gt;write == 0) break</span>
<span id="L172" class="LineNr"> 172 </span>    81          7/subop/compare     0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0/imm32           <span class="subxComment"># compare *ecx</span>
<span id="L173" class="LineNr"> 173 </span>    0f 84/jump-if-=  $subx-sigils:<span class="Constant">break</span>/disp32
<span id="L174" class="LineNr"> 174 </span><span class="Constant">$subx-sigils:word-loop</span>:
<span id="L175" class="LineNr"> 175 </span>    <span class="subxComment"># next-word-or-expression(line, word-slice)</span>
<span id="L176" class="LineNr"> 176 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L177" class="LineNr"> 177 </span>    52/push-edx
<span id="L178" class="LineNr"> 178 </span>    51/push-ecx
<span id="L179" class="LineNr"> 179 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L180" class="LineNr"> 180 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L181" class="LineNr"> 181 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L182" class="LineNr"> 182 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L183" class="LineNr"> 183 </span><span class="Constant">$subx-sigils:check1</span>:
<span id="L184" class="LineNr"> 184 </span>    <span class="subxComment"># if (slice-empty?(word-slice)) break</span>
<span id="L185" class="LineNr"> 185 </span>    <span class="subxS1Comment"># . eax = slice-empty?(word-slice)</span>
<span id="L186" class="LineNr"> 186 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L187" class="LineNr"> 187 </span>    52/push-edx
<span id="L188" class="LineNr"> 188 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L189" class="LineNr"> 189 </span>    e8/call  <a href='../072slice.subx.html#L9'>slice-empty?</a>/disp32
<span id="L190" class="LineNr"> 190 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L191" class="LineNr"> 191 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L192" class="LineNr"> 192 </span>    <span class="subxS1Comment"># . if (eax != false) break</span>
<span id="L193" class="LineNr"> 193 </span>    3d/compare-eax-and  0/imm32/false
<span id="L194" class="LineNr"> 194 </span>    0f 85/jump-if-!=  $subx-sigils:next-line/disp32
<span id="L195" class="LineNr"> 195 </span><span class="Constant">$subx-sigils:check-for-comment</span>:
<span id="L196" class="LineNr"> 196 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, &quot;#&quot;)) continue</span>
<span id="L197" class="LineNr"> 197 </span>    <span class="subxS1Comment"># . start/ebx = word-slice-&gt;start</span>
<span id="L198" class="LineNr"> 198 </span>    8b/copy                         0/mod/indirect  2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *edx to ebx</span>
<span id="L199" class="LineNr"> 199 </span>    <span class="subxS1Comment"># . c/eax = *start</span>
<span id="L200" class="LineNr"> 200 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
<span id="L201" class="LineNr"> 201 </span>    8a/copy-byte                    0/mod/indirect  3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ebx to AL</span>
<span id="L202" class="LineNr"> 202 </span>    <span class="subxS1Comment"># . if (eax == '#') continue</span>
<span id="L203" class="LineNr"> 203 </span>    3d/compare-eax-and  0x23/imm32/hash
<span id="L204" class="LineNr"> 204 </span>    74/jump-if-=  $subx-sigils:word-loop/disp8
<span id="L205" class="LineNr"> 205 </span><span class="Constant">$subx-sigils:check-for-direct-mode</span>:
<span id="L206" class="LineNr"> 206 </span>    <span class="subxComment"># if (!slice-starts-with?(word-slice, &quot;%&quot;)) goto next check</span>
<span id="L207" class="LineNr"> 207 </span>    3d/compare-eax-and  0x25/imm32/percent
<span id="L208" class="LineNr"> 208 </span>    75/jump-if-!=  $subx-sigils:check-for-indirect-mode/disp8
<span id="L209" class="LineNr"> 209 </span><span class="Constant">$subx-sigils:direct-mode</span>:
<span id="L210" class="Folded"> 210 </span><span class="Folded">+-- 40 lines: #?     # dump word-slice --------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L250" class="LineNr"> 250 </span>    <span class="subxComment"># emit-direct-mode(out, word-slice)</span>
<span id="L251" class="LineNr"> 251 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L252" class="LineNr"> 252 </span>    52/push-edx
<span id="L253" class="LineNr"> 253 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L254" class="LineNr"> 254 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L255" class="LineNr"> 255 </span>    e8/call  <a href='sigils.subx.html#L1362'>emit-direct-mode</a>/disp32
<span id="L256" class="LineNr"> 256 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L257" class="LineNr"> 257 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L258" class="LineNr"> 258 </span>    <span class="subxComment"># continue</span>
<span id="L259" class="LineNr"> 259 </span>    e9/jump  $subx-sigils:<a href='../076next-word.subx.html#L10'>next-word</a>/disp32
<span id="L260" class="LineNr"> 260 </span><span class="Constant">$subx-sigils:check-for-indirect-mode</span>:
<span id="L261" class="LineNr"> 261 </span>    <span class="subxComment"># if (!slice-starts-with?(word-slice, &quot;*&quot;)) goto next check</span>
<span id="L262" class="LineNr"> 262 </span>    3d/compare-eax-and  0x2a/imm32/asterisk
<span id="L263" class="LineNr"> 263 </span>    75/jump-if-!=  $subx-sigils:check-for-invalid-addition/disp8
<span id="L264" class="LineNr"> 264 </span>    <span class="subxComment"># if (!disp32-mode?(word-slice)) goto indirect mode</span>
<span id="L265" class="LineNr"> 265 </span>    <span class="subxS1Comment"># . eax = disp32-mode?(word-slice)</span>
<span id="L266" class="LineNr"> 266 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L267" class="LineNr"> 267 </span>    52/push-edx
<span id="L268" class="LineNr"> 268 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L269" class="LineNr"> 269 </span>    e8/call  <a href='sigils.subx.html#L3861'>disp32-mode?</a>/disp32
<span id="L270" class="LineNr"> 270 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L271" class="LineNr"> 271 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L272" class="LineNr"> 272 </span>    <span class="subxS1Comment"># . if (eax == false) goto indirect mode</span>
<span id="L273" class="LineNr"> 273 </span>    3d/compare-eax-and  0/imm32/false
<span id="L274" class="LineNr"> 274 </span>    74/jump-if-=  $subx-sigils:indirect-mode/disp8
<span id="L275" class="LineNr"> 275 </span><span class="Constant">$subx-sigils:disp32-mode</span>:
<span id="L276" class="LineNr"> 276 </span>    <span class="subxComment"># emit-indirect-mode(out, word-slice)</span>
<span id="L277" class="LineNr"> 277 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L278" class="LineNr"> 278 </span>    52/push-edx
<span id="L279" class="LineNr"> 279 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L280" class="LineNr"> 280 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L281" class="LineNr"> 281 </span>    e8/call  <a href='sigils.subx.html#L3920'>emit-indirect-disp32</a>/disp32
<span id="L282" class="LineNr"> 282 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L283" class="LineNr"> 283 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L284" class="LineNr"> 284 </span>    <span class="subxComment"># continue</span>
<span id="L285" class="LineNr"> 285 </span>    e9/jump  $subx-sigils:<a href='../076next-word.subx.html#L10'>next-word</a>/disp32
<span id="L286" class="LineNr"> 286 </span><span class="Constant">$subx-sigils:indirect-mode</span>:
<span id="L287" class="LineNr"> 287 </span>    <span class="subxComment"># spill registers</span>
<span id="L288" class="LineNr"> 288 </span>    50/push-eax
<span id="L289" class="LineNr"> 289 </span>    51/push-ecx
<span id="L290" class="LineNr"> 290 </span>    52/push-edx
<span id="L291" class="LineNr"> 291 </span>    53/push-ebx
<span id="L292" class="LineNr"> 292 </span>    <span class="subxComment"># base/eax, index/ecx, scale/edx, disp/ebx = parse-effective-address(word-slice)</span>
<span id="L293" class="LineNr"> 293 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L294" class="LineNr"> 294 </span>    52/push-edx
<span id="L295" class="LineNr"> 295 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L296" class="LineNr"> 296 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L297" class="LineNr"> 297 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L298" class="LineNr"> 298 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L299" class="LineNr"> 299 </span>    <span class="subxComment"># emit-indirect-mode(out, base, index, scale, disp)</span>
<span id="L300" class="LineNr"> 300 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L301" class="LineNr"> 301 </span>    53/push-ebx
<span id="L302" class="LineNr"> 302 </span>    52/push-edx
<span id="L303" class="LineNr"> 303 </span>    51/push-ecx
<span id="L304" class="LineNr"> 304 </span>    50/push-eax
<span id="L305" class="LineNr"> 305 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L306" class="LineNr"> 306 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L307" class="LineNr"> 307 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L308" class="LineNr"> 308 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L309" class="LineNr"> 309 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L310" class="LineNr"> 310 </span>    <span class="subxComment"># restore registers</span>
<span id="L311" class="LineNr"> 311 </span>    5b/pop-to-ebx
<span id="L312" class="LineNr"> 312 </span>    5a/pop-to-edx
<span id="L313" class="LineNr"> 313 </span>    59/pop-to-ecx
<span id="L314" class="LineNr"> 314 </span>    58/pop-to-eax
<span id="L315" class="LineNr"> 315 </span>    <span class="subxComment"># continue</span>
<span id="L316" class="LineNr"> 316 </span>    e9/jump  $subx-sigils:<a href='../076next-word.subx.html#L10'>next-word</a>/disp32
<span id="L317" class="LineNr"> 317 </span><span class="Constant">$subx-sigils:check-for-invalid-addition</span>:
<span id="L318" class="LineNr"> 318 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, &quot;+&quot;)) goto error1</span>
<span id="L319" class="LineNr"> 319 </span>    3d/compare-eax-and  0x2b/imm32/plus
<span id="L320" class="LineNr"> 320 </span>    74/jump-if-=  $subx-sigils:error1/disp8
<span id="L321" class="LineNr"> 321 </span><span class="Constant">$subx-sigils:check-for-invalid-left-shift</span>:
<span id="L322" class="LineNr"> 322 </span>    <span class="subxComment"># if (slice-starts-with?(word-slice, &quot;&lt;&quot;)) goto error1</span>
<span id="L323" class="LineNr"> 323 </span>    3d/compare-eax-and  0x3c/imm32/less-than
<span id="L324" class="LineNr"> 324 </span>    74/jump-if-=  $subx-sigils:error1/disp8
<span id="L325" class="LineNr"> 325 </span><span class="Constant">$subx-sigils:regular-word</span>:
<span id="L326" class="LineNr"> 326 </span>    <span class="subxComment"># write-slice-buffered(out, word-slice)</span>
<span id="L327" class="LineNr"> 327 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L328" class="LineNr"> 328 </span>    52/push-edx
<span id="L329" class="LineNr"> 329 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L330" class="LineNr"> 330 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L331" class="LineNr"> 331 </span>    e8/call  <a href='../072slice.subx.html#L909'>write-slice-buffered</a>/disp32
<span id="L332" class="LineNr"> 332 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L333" class="LineNr"> 333 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L334" class="LineNr"> 334 </span>    <span class="subxComment"># fall through</span>
<span id="L335" class="LineNr"> 335 </span><span class="Constant">$subx-sigils:<a href='../076next-word.subx.html#L10'>next-word</a></span>:
<span id="L336" class="LineNr"> 336 </span>    <span class="subxComment"># write-buffered(out, &quot; &quot;)</span>
<span id="L337" class="LineNr"> 337 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L338" class="LineNr"> 338 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L94'>Space</a></span>/imm32
<span id="L339" class="LineNr"> 339 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L340" class="LineNr"> 340 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L341" class="LineNr"> 341 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L342" class="LineNr"> 342 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L343" class="LineNr"> 343 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L344" class="LineNr"> 344 </span>    <span class="subxComment"># loop</span>
<span id="L345" class="LineNr"> 345 </span>    e9/jump  $subx-sigils:word-loop/disp32
<span id="L346" class="LineNr"> 346 </span><span class="Constant">$subx-sigils:next-line</span>:
<span id="L347" class="LineNr"> 347 </span>    <span class="subxComment"># write-buffered(out, &quot;\n&quot;)</span>
<span id="L348" class="LineNr"> 348 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L349" class="LineNr"> 349 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
<span id="L350" class="LineNr"> 350 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L351" class="LineNr"> 351 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L352" class="LineNr"> 352 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L353" class="LineNr"> 353 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L354" class="LineNr"> 354 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L355" class="LineNr"> 355 </span>    <span class="subxComment"># loop</span>
<span id="L356" class="LineNr"> 356 </span>    e9/jump  $subx-sigils:line-loop/disp32
<span id="L357" class="LineNr"> 357 </span><span class="Constant">$subx-sigils:break</span>:
<span id="L358" class="LineNr"> 358 </span>    <span class="subxComment"># flush(out)</span>
<span id="L359" class="LineNr"> 359 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L360" class="LineNr"> 360 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L361" class="LineNr"> 361 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L362" class="LineNr"> 362 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L363" class="LineNr"> 363 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L364" class="LineNr"> 364 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L365" class="LineNr"> 365 </span><span class="Constant">$subx-sigils:end</span>:
<span id="L366" class="LineNr"> 366 </span>    <span class="subxS1Comment"># . reclaim locals</span>
<span id="L367" class="LineNr"> 367 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x214/imm32       <span class="subxComment"># add to esp</span>
<span id="L368" class="LineNr"> 368 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L369" class="LineNr"> 369 </span>    5b/pop-to-ebx
<span id="L370" class="LineNr"> 370 </span>    5a/pop-to-edx
<span id="L371" class="LineNr"> 371 </span>    59/pop-to-ecx
<span id="L372" class="LineNr"> 372 </span>    58/pop-to-eax
<span id="L373" class="LineNr"> 373 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L374" class="LineNr"> 374 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L375" class="LineNr"> 375 </span>    5d/pop-to-ebp
<span id="L376" class="LineNr"> 376 </span>    c3/return
<span id="L377" class="LineNr"> 377 </span>
<span id="L378" class="LineNr"> 378 </span><span class="Constant">$subx-sigils:error1</span>:
<span id="L379" class="LineNr"> 379 </span>    <span class="subxComment"># print(stderr, &quot;error: '&quot; eax &quot;' only permitted within '*(...)' in '&quot; line &quot;'&quot;)</span>
<span id="L380" class="LineNr"> 380 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: '&quot;)</span>
<span id="L381" class="LineNr"> 381 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L382" class="LineNr"> 382 </span>    68/push  <span class="Constant">&quot;error: '&quot;</span>/imm32
<span id="L383" class="LineNr"> 383 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L384" class="LineNr"> 384 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L385" class="LineNr"> 385 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L386" class="LineNr"> 386 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L387" class="LineNr"> 387 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L388" class="LineNr"> 388 </span>    <span class="subxS1Comment"># . write-byte-buffered(Stderr, eax)</span>
<span id="L389" class="LineNr"> 389 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L390" class="LineNr"> 390 </span>    50/push-eax
<span id="L391" class="LineNr"> 391 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L392" class="LineNr"> 392 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L393" class="LineNr"> 393 </span>    e8/call  <a href='../064write-byte.subx.html#L33'>write-byte-buffered</a>/disp32
<span id="L394" class="LineNr"> 394 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L395" class="LineNr"> 395 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L396" class="LineNr"> 396 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;' only permitted within '*(...)' in '&quot;)</span>
<span id="L397" class="LineNr"> 397 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L398" class="LineNr"> 398 </span>    68/push  <span class="Constant">&quot;' only permitted within '*(...)' in '&quot;</span>/imm32
<span id="L399" class="LineNr"> 399 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L400" class="LineNr"> 400 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L401" class="LineNr"> 401 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L402" class="LineNr"> 402 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L403" class="LineNr"> 403 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L404" class="LineNr"> 404 </span>    <span class="subxS1Comment"># . write-stream-data(Stderr, line)</span>
<span id="L405" class="LineNr"> 405 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L406" class="LineNr"> 406 </span>    51/push-ecx
<span id="L407" class="LineNr"> 407 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L408" class="LineNr"> 408 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L409" class="LineNr"> 409 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
<span id="L410" class="LineNr"> 410 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L411" class="LineNr"> 411 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L412" class="LineNr"> 412 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;'&quot;)</span>
<span id="L413" class="LineNr"> 413 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L414" class="LineNr"> 414 </span>    68/push  <span class="Constant">&quot;'&quot;</span>/imm32
<span id="L415" class="LineNr"> 415 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L416" class="LineNr"> 416 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L417" class="LineNr"> 417 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L418" class="LineNr"> 418 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L419" class="LineNr"> 419 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L420" class="LineNr"> 420 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L421" class="LineNr"> 421 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L422" class="LineNr"> 422 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L423" class="LineNr"> 423 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L424" class="LineNr"> 424 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L425" class="LineNr"> 425 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L426" class="LineNr"> 426 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L427" class="LineNr"> 427 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L428" class="LineNr"> 428 </span>    bb/copy-to-ebx  1/imm32
<span id="L429" class="LineNr"> 429 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L430" class="LineNr"> 430 </span>    cd/syscall  0x80/imm8
<span id="L431" class="LineNr"> 431 </span>    <span class="subxComment"># never gets here</span>
<span id="L432" class="LineNr"> 432 </span>
<span id="L433" class="LineNr"> 433 </span><span class="subxTest">test-subx-sigils-passes-most-words-through</span>:
<span id="L434" class="LineNr"> 434 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L435" class="LineNr"> 435 </span>    55/push-ebp
<span id="L436" class="LineNr"> 436 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L437" class="LineNr"> 437 </span>    <span class="subxComment"># setup</span>
<span id="L438" class="LineNr"> 438 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L439" class="LineNr"> 439 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L440" class="LineNr"> 440 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L441" class="LineNr"> 441 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L442" class="LineNr"> 442 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L443" class="LineNr"> 443 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L444" class="LineNr"> 444 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L445" class="LineNr"> 445 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L446" class="LineNr"> 446 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L447" class="LineNr"> 447 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L448" class="LineNr"> 448 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L449" class="LineNr"> 449 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L450" class="LineNr"> 450 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L451" class="LineNr"> 451 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L452" class="LineNr"> 452 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L453" class="LineNr"> 453 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L454" class="LineNr"> 454 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L455" class="LineNr"> 455 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L456" class="LineNr"> 456 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L457" class="LineNr"> 457 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L458" class="LineNr"> 458 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L459" class="LineNr"> 459 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L460" class="LineNr"> 460 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L461" class="LineNr"> 461 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L462" class="LineNr"> 462 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L463" class="LineNr"> 463 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L464" class="LineNr"> 464 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L465" class="LineNr"> 465 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L466" class="LineNr"> 466 </span>    <span class="subxComment"># initialize input</span>
<span id="L467" class="LineNr"> 467 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;== abcd 0x1&quot;)</span>
<span id="L468" class="LineNr"> 468 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L469" class="LineNr"> 469 </span>    68/push  <span class="Constant">&quot;== abcd 0x1&quot;</span>/imm32
<span id="L470" class="LineNr"> 470 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L471" class="LineNr"> 471 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L472" class="LineNr"> 472 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L473" class="LineNr"> 473 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L474" class="LineNr"> 474 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L475" class="LineNr"> 475 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L476" class="LineNr"> 476 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L477" class="LineNr"> 477 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L478" class="LineNr"> 478 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L479" class="LineNr"> 479 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L480" class="LineNr"> 480 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L481" class="LineNr"> 481 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L482" class="LineNr"> 482 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L483" class="LineNr"> 483 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L484" class="LineNr"> 484 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L485" class="LineNr"> 485 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L486" class="LineNr"> 486 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L487" class="LineNr"> 487 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L488" class="LineNr"> 488 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L489" class="LineNr"> 489 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L490" class="LineNr"> 490 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L491" class="Folded"> 491 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L517" class="LineNr"> 517 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;== abcd 0x1 \n&quot;, msg)</span>
<span id="L518" class="LineNr"> 518 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L519" class="LineNr"> 519 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-passes-most-words-through&quot;</span>/imm32
<span id="L520" class="LineNr"> 520 </span>    68/push  <span class="Constant">&quot;== abcd 0x1 \n&quot;</span>/imm32
<span id="L521" class="LineNr"> 521 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L522" class="LineNr"> 522 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L523" class="LineNr"> 523 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L524" class="LineNr"> 524 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L525" class="LineNr"> 525 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L526" class="LineNr"> 526 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L527" class="LineNr"> 527 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L528" class="LineNr"> 528 </span>    5d/pop-to-ebp
<span id="L529" class="LineNr"> 529 </span>    c3/return
<span id="L530" class="LineNr"> 530 </span>
<span id="L531" class="LineNr"> 531 </span><span class="subxTest">test-subx-sigils-direct-mode</span>:
<span id="L532" class="LineNr"> 532 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L533" class="LineNr"> 533 </span>    55/push-ebp
<span id="L534" class="LineNr"> 534 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L535" class="LineNr"> 535 </span>    <span class="subxComment"># setup</span>
<span id="L536" class="LineNr"> 536 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L537" class="LineNr"> 537 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L538" class="LineNr"> 538 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L539" class="LineNr"> 539 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L540" class="LineNr"> 540 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L541" class="LineNr"> 541 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L542" class="LineNr"> 542 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L543" class="LineNr"> 543 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L544" class="LineNr"> 544 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L545" class="LineNr"> 545 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L546" class="LineNr"> 546 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L547" class="LineNr"> 547 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L548" class="LineNr"> 548 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L549" class="LineNr"> 549 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L550" class="LineNr"> 550 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L551" class="LineNr"> 551 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L552" class="LineNr"> 552 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L553" class="LineNr"> 553 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L554" class="LineNr"> 554 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L555" class="LineNr"> 555 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L556" class="LineNr"> 556 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L557" class="LineNr"> 557 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L558" class="LineNr"> 558 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L559" class="LineNr"> 559 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L560" class="LineNr"> 560 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L561" class="LineNr"> 561 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L562" class="LineNr"> 562 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L563" class="LineNr"> 563 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L564" class="LineNr"> 564 </span>    <span class="subxComment"># initialize input</span>
<span id="L565" class="LineNr"> 565 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab %ecx&quot;)</span>
<span id="L566" class="LineNr"> 566 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L567" class="LineNr"> 567 </span>    68/push  <span class="Constant">&quot;ab %ecx&quot;</span>/imm32
<span id="L568" class="LineNr"> 568 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L569" class="LineNr"> 569 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L570" class="LineNr"> 570 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L571" class="LineNr"> 571 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L572" class="LineNr"> 572 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L573" class="LineNr"> 573 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L574" class="LineNr"> 574 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L575" class="LineNr"> 575 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L576" class="LineNr"> 576 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L577" class="LineNr"> 577 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L578" class="LineNr"> 578 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L579" class="LineNr"> 579 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L580" class="LineNr"> 580 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L581" class="LineNr"> 581 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L582" class="LineNr"> 582 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L583" class="LineNr"> 583 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L584" class="LineNr"> 584 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L585" class="LineNr"> 585 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L586" class="LineNr"> 586 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L587" class="LineNr"> 587 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L588" class="LineNr"> 588 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L589" class="Folded"> 589 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L615" class="LineNr"> 615 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 3/mod/direct 0x00000001/rm32 \n&quot;, msg)</span>
<span id="L616" class="LineNr"> 616 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L617" class="LineNr"> 617 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-direct-mode&quot;</span>/imm32
<span id="L618" class="LineNr"> 618 </span>    68/push  <span class="Constant">&quot;ab 3/mod/direct 0x00000001/rm32 \n&quot;</span>/imm32
<span id="L619" class="LineNr"> 619 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L620" class="LineNr"> 620 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L621" class="LineNr"> 621 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L622" class="LineNr"> 622 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L623" class="LineNr"> 623 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L624" class="LineNr"> 624 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L625" class="LineNr"> 625 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L626" class="LineNr"> 626 </span>    5d/pop-to-ebp
<span id="L627" class="LineNr"> 627 </span>    c3/return
<span id="L628" class="LineNr"> 628 </span>
<span id="L629" class="LineNr"> 629 </span><span class="subxTest">test-subx-sigils-direct-mode-with-metadata</span>:
<span id="L630" class="LineNr"> 630 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L631" class="LineNr"> 631 </span>    55/push-ebp
<span id="L632" class="LineNr"> 632 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L633" class="LineNr"> 633 </span>    <span class="subxComment"># setup</span>
<span id="L634" class="LineNr"> 634 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L635" class="LineNr"> 635 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L636" class="LineNr"> 636 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L637" class="LineNr"> 637 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L638" class="LineNr"> 638 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L639" class="LineNr"> 639 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L640" class="LineNr"> 640 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L641" class="LineNr"> 641 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L642" class="LineNr"> 642 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L643" class="LineNr"> 643 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L644" class="LineNr"> 644 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L645" class="LineNr"> 645 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L646" class="LineNr"> 646 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L647" class="LineNr"> 647 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L648" class="LineNr"> 648 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L649" class="LineNr"> 649 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L650" class="LineNr"> 650 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L651" class="LineNr"> 651 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L652" class="LineNr"> 652 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L653" class="LineNr"> 653 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L654" class="LineNr"> 654 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L655" class="LineNr"> 655 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L656" class="LineNr"> 656 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L657" class="LineNr"> 657 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L658" class="LineNr"> 658 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L659" class="LineNr"> 659 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L660" class="LineNr"> 660 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L661" class="LineNr"> 661 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L662" class="LineNr"> 662 </span>    <span class="subxComment"># initialize input</span>
<span id="L663" class="LineNr"> 663 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab %ecx/foo&quot;)</span>
<span id="L664" class="LineNr"> 664 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L665" class="LineNr"> 665 </span>    68/push  <span class="Constant">&quot;ab %ecx/foo&quot;</span>/imm32
<span id="L666" class="LineNr"> 666 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L667" class="LineNr"> 667 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L668" class="LineNr"> 668 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L669" class="LineNr"> 669 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L670" class="LineNr"> 670 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L671" class="LineNr"> 671 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L672" class="LineNr"> 672 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L673" class="LineNr"> 673 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L674" class="LineNr"> 674 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L675" class="LineNr"> 675 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L676" class="LineNr"> 676 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L677" class="LineNr"> 677 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L678" class="LineNr"> 678 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L679" class="LineNr"> 679 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L680" class="LineNr"> 680 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L681" class="LineNr"> 681 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L682" class="LineNr"> 682 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L683" class="LineNr"> 683 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L684" class="LineNr"> 684 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L685" class="LineNr"> 685 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L686" class="LineNr"> 686 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L687" class="LineNr"> 687 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 3/mod/direct 0x00000001/rm32 \n&quot;, msg)</span>
<span id="L688" class="LineNr"> 688 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L689" class="LineNr"> 689 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-direct-mode-with-metadata&quot;</span>/imm32
<span id="L690" class="LineNr"> 690 </span>    68/push  <span class="Constant">&quot;ab 3/mod/direct 0x00000001/rm32 \n&quot;</span>/imm32
<span id="L691" class="LineNr"> 691 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L692" class="LineNr"> 692 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L693" class="LineNr"> 693 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L694" class="LineNr"> 694 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L695" class="LineNr"> 695 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L696" class="LineNr"> 696 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L697" class="LineNr"> 697 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L698" class="LineNr"> 698 </span>    5d/pop-to-ebp
<span id="L699" class="LineNr"> 699 </span>    c3/return
<span id="L700" class="LineNr"> 700 </span>
<span id="L701" class="LineNr"> 701 </span><span class="subxTest">test-subx-sigils-register-indirect-mode</span>:
<span id="L702" class="LineNr"> 702 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L703" class="LineNr"> 703 </span>    55/push-ebp
<span id="L704" class="LineNr"> 704 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L705" class="LineNr"> 705 </span>    <span class="subxComment"># setup</span>
<span id="L706" class="LineNr"> 706 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L707" class="LineNr"> 707 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L708" class="LineNr"> 708 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L709" class="LineNr"> 709 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L710" class="LineNr"> 710 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L711" class="LineNr"> 711 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L712" class="LineNr"> 712 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L713" class="LineNr"> 713 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L714" class="LineNr"> 714 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L715" class="LineNr"> 715 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L716" class="LineNr"> 716 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L717" class="LineNr"> 717 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L718" class="LineNr"> 718 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L719" class="LineNr"> 719 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L720" class="LineNr"> 720 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L721" class="LineNr"> 721 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L722" class="LineNr"> 722 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L723" class="LineNr"> 723 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L724" class="LineNr"> 724 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L725" class="LineNr"> 725 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L726" class="LineNr"> 726 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L727" class="LineNr"> 727 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L728" class="LineNr"> 728 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L729" class="LineNr"> 729 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L730" class="LineNr"> 730 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L731" class="LineNr"> 731 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L732" class="LineNr"> 732 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L733" class="LineNr"> 733 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L734" class="LineNr"> 734 </span>    <span class="subxComment"># initialize input</span>
<span id="L735" class="LineNr"> 735 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *ecx&quot;)</span>
<span id="L736" class="LineNr"> 736 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L737" class="LineNr"> 737 </span>    68/push  <span class="Constant">&quot;ab *ecx&quot;</span>/imm32
<span id="L738" class="LineNr"> 738 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L739" class="LineNr"> 739 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L740" class="LineNr"> 740 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L741" class="LineNr"> 741 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L742" class="LineNr"> 742 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L743" class="LineNr"> 743 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L744" class="LineNr"> 744 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L745" class="LineNr"> 745 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L746" class="LineNr"> 746 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L747" class="LineNr"> 747 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L748" class="LineNr"> 748 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L749" class="LineNr"> 749 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L750" class="LineNr"> 750 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L751" class="LineNr"> 751 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L752" class="LineNr"> 752 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L753" class="LineNr"> 753 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L754" class="LineNr"> 754 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L755" class="LineNr"> 755 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L756" class="LineNr"> 756 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L757" class="LineNr"> 757 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L758" class="LineNr"> 758 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L759" class="Folded"> 759 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L785" class="LineNr"> 785 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 0/mod/indirect 0x00000001/rm32 \n&quot;, msg)</span>
<span id="L786" class="LineNr"> 786 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L787" class="LineNr"> 787 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-register-indirect-mode&quot;</span>/imm32
<span id="L788" class="LineNr"> 788 </span>    68/push  <span class="Constant">&quot;ab 0/mod/indirect 0x00000001/rm32 \n&quot;</span>/imm32
<span id="L789" class="LineNr"> 789 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L790" class="LineNr"> 790 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L791" class="LineNr"> 791 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L792" class="LineNr"> 792 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L793" class="LineNr"> 793 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L794" class="LineNr"> 794 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L795" class="LineNr"> 795 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L796" class="LineNr"> 796 </span>    5d/pop-to-ebp
<span id="L797" class="LineNr"> 797 </span>    c3/return
<span id="L798" class="LineNr"> 798 </span>
<span id="L799" class="LineNr"> 799 </span><span class="subxTest">test-subx-sigils-register-indirect-mode-with-metadata</span>:
<span id="L800" class="LineNr"> 800 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L801" class="LineNr"> 801 </span>    55/push-ebp
<span id="L802" class="LineNr"> 802 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L803" class="LineNr"> 803 </span>    <span class="subxComment"># setup</span>
<span id="L804" class="LineNr"> 804 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L805" class="LineNr"> 805 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L806" class="LineNr"> 806 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L807" class="LineNr"> 807 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L808" class="LineNr"> 808 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L809" class="LineNr"> 809 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L810" class="LineNr"> 810 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L811" class="LineNr"> 811 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L812" class="LineNr"> 812 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L813" class="LineNr"> 813 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L814" class="LineNr"> 814 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L815" class="LineNr"> 815 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L816" class="LineNr"> 816 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L817" class="LineNr"> 817 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L818" class="LineNr"> 818 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L819" class="LineNr"> 819 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L820" class="LineNr"> 820 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L821" class="LineNr"> 821 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L822" class="LineNr"> 822 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L823" class="LineNr"> 823 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L824" class="LineNr"> 824 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L825" class="LineNr"> 825 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L826" class="LineNr"> 826 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L827" class="LineNr"> 827 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L828" class="LineNr"> 828 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L829" class="LineNr"> 829 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L830" class="LineNr"> 830 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L831" class="LineNr"> 831 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L832" class="LineNr"> 832 </span>    <span class="subxComment"># initialize input</span>
<span id="L833" class="LineNr"> 833 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *ecx/foo&quot;)</span>
<span id="L834" class="LineNr"> 834 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L835" class="LineNr"> 835 </span>    68/push  <span class="Constant">&quot;ab *ecx/foo&quot;</span>/imm32
<span id="L836" class="LineNr"> 836 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L837" class="LineNr"> 837 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L838" class="LineNr"> 838 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L839" class="LineNr"> 839 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L840" class="LineNr"> 840 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L841" class="LineNr"> 841 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L842" class="LineNr"> 842 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L843" class="LineNr"> 843 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L844" class="LineNr"> 844 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L845" class="LineNr"> 845 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L846" class="LineNr"> 846 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L847" class="LineNr"> 847 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L848" class="LineNr"> 848 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L849" class="LineNr"> 849 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L850" class="LineNr"> 850 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L851" class="LineNr"> 851 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L852" class="LineNr"> 852 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L853" class="LineNr"> 853 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L854" class="LineNr"> 854 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L855" class="LineNr"> 855 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L856" class="LineNr"> 856 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L857" class="LineNr"> 857 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 0/mod/indirect 0x00000001/rm32 \n&quot;, msg)</span>
<span id="L858" class="LineNr"> 858 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L859" class="LineNr"> 859 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-register-indirect-mode-with-metadata&quot;</span>/imm32
<span id="L860" class="LineNr"> 860 </span>    68/push  <span class="Constant">&quot;ab 0/mod/indirect 0x00000001/rm32 \n&quot;</span>/imm32
<span id="L861" class="LineNr"> 861 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L862" class="LineNr"> 862 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L863" class="LineNr"> 863 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L864" class="LineNr"> 864 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L865" class="LineNr"> 865 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L866" class="LineNr"> 866 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L867" class="LineNr"> 867 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L868" class="LineNr"> 868 </span>    5d/pop-to-ebp
<span id="L869" class="LineNr"> 869 </span>    c3/return
<span id="L870" class="LineNr"> 870 </span>
<span id="L871" class="LineNr"> 871 </span><span class="subxTest">test-subx-sigils-register-indirect-mode-without-displacement</span>:
<span id="L872" class="LineNr"> 872 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L873" class="LineNr"> 873 </span>    55/push-ebp
<span id="L874" class="LineNr"> 874 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L875" class="LineNr"> 875 </span>    <span class="subxComment"># setup</span>
<span id="L876" class="LineNr"> 876 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L877" class="LineNr"> 877 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L878" class="LineNr"> 878 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L879" class="LineNr"> 879 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L880" class="LineNr"> 880 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L881" class="LineNr"> 881 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L882" class="LineNr"> 882 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L883" class="LineNr"> 883 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L884" class="LineNr"> 884 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L885" class="LineNr"> 885 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L886" class="LineNr"> 886 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L887" class="LineNr"> 887 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L888" class="LineNr"> 888 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L889" class="LineNr"> 889 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L890" class="LineNr"> 890 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L891" class="LineNr"> 891 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L892" class="LineNr"> 892 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L893" class="LineNr"> 893 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L894" class="LineNr"> 894 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L895" class="LineNr"> 895 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L896" class="LineNr"> 896 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L897" class="LineNr"> 897 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L898" class="LineNr"> 898 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L899" class="LineNr"> 899 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L900" class="LineNr"> 900 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L901" class="LineNr"> 901 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L902" class="LineNr"> 902 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L903" class="LineNr"> 903 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L904" class="LineNr"> 904 </span>    <span class="subxComment"># initialize input</span>
<span id="L905" class="LineNr"> 905 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *(ecx)&quot;)</span>
<span id="L906" class="LineNr"> 906 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L907" class="LineNr"> 907 </span>    68/push  <span class="Constant">&quot;ab *(ecx)&quot;</span>/imm32
<span id="L908" class="LineNr"> 908 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L909" class="LineNr"> 909 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L910" class="LineNr"> 910 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L911" class="LineNr"> 911 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L912" class="LineNr"> 912 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L913" class="LineNr"> 913 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L914" class="LineNr"> 914 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L915" class="LineNr"> 915 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L916" class="LineNr"> 916 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L917" class="LineNr"> 917 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L918" class="LineNr"> 918 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L919" class="LineNr"> 919 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L920" class="LineNr"> 920 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L921" class="LineNr"> 921 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L922" class="LineNr"> 922 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L923" class="LineNr"> 923 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L924" class="LineNr"> 924 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L925" class="LineNr"> 925 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L926" class="LineNr"> 926 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L927" class="LineNr"> 927 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L928" class="LineNr"> 928 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L929" class="Folded"> 929 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L955" class="LineNr"> 955 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 0/mod/indirect 1/rm32 \n&quot;, msg)</span>
<span id="L956" class="LineNr"> 956 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L957" class="LineNr"> 957 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-register-indirect-mode-without-displacement&quot;</span>/imm32
<span id="L958" class="LineNr"> 958 </span>    68/push  <span class="Constant">&quot;ab 0/mod/indirect 0x00000001/rm32 \n&quot;</span>/imm32
<span id="L959" class="LineNr"> 959 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L960" class="LineNr"> 960 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L961" class="LineNr"> 961 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L962" class="LineNr"> 962 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L963" class="LineNr"> 963 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L964" class="LineNr"> 964 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L965" class="LineNr"> 965 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L966" class="LineNr"> 966 </span>    5d/pop-to-ebp
<span id="L967" class="LineNr"> 967 </span>    c3/return
<span id="L968" class="LineNr"> 968 </span>
<span id="L969" class="LineNr"> 969 </span><span class="subxTest">test-subx-sigils-register-indirect-mode-with-displacement</span>:
<span id="L970" class="LineNr"> 970 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L971" class="LineNr"> 971 </span>    55/push-ebp
<span id="L972" class="LineNr"> 972 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L973" class="LineNr"> 973 </span>    <span class="subxComment"># setup</span>
<span id="L974" class="LineNr"> 974 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L975" class="LineNr"> 975 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L976" class="LineNr"> 976 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L977" class="LineNr"> 977 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L978" class="LineNr"> 978 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L979" class="LineNr"> 979 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L980" class="LineNr"> 980 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L981" class="LineNr"> 981 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L982" class="LineNr"> 982 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L983" class="LineNr"> 983 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L984" class="LineNr"> 984 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L985" class="LineNr"> 985 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L986" class="LineNr"> 986 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L987" class="LineNr"> 987 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L988" class="LineNr"> 988 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L989" class="LineNr"> 989 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L990" class="LineNr"> 990 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L991" class="LineNr"> 991 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L992" class="LineNr"> 992 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L993" class="LineNr"> 993 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L994" class="LineNr"> 994 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L995" class="LineNr"> 995 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L996" class="LineNr"> 996 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L997" class="LineNr"> 997 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L998" class="LineNr"> 998 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L999" class="LineNr"> 999 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1000" class="LineNr">1000 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1001" class="LineNr">1001 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1002" class="LineNr">1002 </span>    <span class="subxComment"># initialize input</span>
<span id="L1003" class="LineNr">1003 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *(ecx+4)&quot;)</span>
<span id="L1004" class="LineNr">1004 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1005" class="LineNr">1005 </span>    68/push  <span class="Constant">&quot;ab *(ecx+4)&quot;</span>/imm32
<span id="L1006" class="LineNr">1006 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1007" class="LineNr">1007 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1008" class="LineNr">1008 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L1009" class="LineNr">1009 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1010" class="LineNr">1010 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1011" class="LineNr">1011 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L1012" class="LineNr">1012 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1013" class="LineNr">1013 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1014" class="LineNr">1014 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L1015" class="LineNr">1015 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1016" class="LineNr">1016 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L1017" class="LineNr">1017 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1018" class="LineNr">1018 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1019" class="LineNr">1019 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L1020" class="LineNr">1020 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L1021" class="LineNr">1021 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1022" class="LineNr">1022 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1023" class="LineNr">1023 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1024" class="LineNr">1024 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1025" class="LineNr">1025 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1026" class="LineNr">1026 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1027" class="Folded">1027 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L1053" class="LineNr">1053 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 2/mod/*+disp32 1/rm32 4/disp32 \n&quot;, msg)</span>
<span id="L1054" class="LineNr">1054 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1055" class="LineNr">1055 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-register-indirect-mode-with-displacement&quot;</span>/imm32
<span id="L1056" class="LineNr">1056 </span>    68/push  <span class="Constant">&quot;ab 2/mod/*+disp32 0x00000001/rm32 0x00000004/disp32 \n&quot;</span>/imm32
<span id="L1057" class="LineNr">1057 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1058" class="LineNr">1058 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1059" class="LineNr">1059 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L1060" class="LineNr">1060 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1061" class="LineNr">1061 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1062" class="LineNr">1062 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1063" class="LineNr">1063 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1064" class="LineNr">1064 </span>    5d/pop-to-ebp
<span id="L1065" class="LineNr">1065 </span>    c3/return
<span id="L1066" class="LineNr">1066 </span>
<span id="L1067" class="LineNr">1067 </span><span class="subxComment"># boss level</span>
<span id="L1068" class="LineNr">1068 </span><span class="subxTest">test-subx-sigils-register-indirect-mode-with-sib-byte</span>:
<span id="L1069" class="LineNr">1069 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1070" class="LineNr">1070 </span>    55/push-ebp
<span id="L1071" class="LineNr">1071 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1072" class="LineNr">1072 </span>    <span class="subxComment"># setup</span>
<span id="L1073" class="LineNr">1073 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L1074" class="LineNr">1074 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1075" class="LineNr">1075 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1076" class="LineNr">1076 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1077" class="LineNr">1077 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1078" class="LineNr">1078 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1079" class="LineNr">1079 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1080" class="LineNr">1080 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L1081" class="LineNr">1081 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1082" class="LineNr">1082 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L1083" class="LineNr">1083 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1084" class="LineNr">1084 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1085" class="LineNr">1085 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1086" class="LineNr">1086 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1087" class="LineNr">1087 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L1088" class="LineNr">1088 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1089" class="LineNr">1089 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1090" class="LineNr">1090 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1091" class="LineNr">1091 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1092" class="LineNr">1092 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1093" class="LineNr">1093 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1094" class="LineNr">1094 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L1095" class="LineNr">1095 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1096" class="LineNr">1096 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L1097" class="LineNr">1097 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1098" class="LineNr">1098 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1099" class="LineNr">1099 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1100" class="LineNr">1100 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1101" class="LineNr">1101 </span>    <span class="subxComment"># initialize input</span>
<span id="L1102" class="LineNr">1102 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *(ecx + edx&lt;&lt;3 + 4)&quot;)</span>
<span id="L1103" class="LineNr">1103 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1104" class="LineNr">1104 </span>    68/push  <span class="Constant">&quot;ab *(ecx + edx&lt;&lt;3 + 4)&quot;</span>/imm32
<span id="L1105" class="LineNr">1105 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1106" class="LineNr">1106 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1107" class="LineNr">1107 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L1108" class="LineNr">1108 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1109" class="LineNr">1109 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1110" class="LineNr">1110 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L1111" class="LineNr">1111 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1112" class="LineNr">1112 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1113" class="LineNr">1113 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L1114" class="LineNr">1114 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1115" class="LineNr">1115 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L1116" class="LineNr">1116 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1117" class="LineNr">1117 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1118" class="LineNr">1118 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L1119" class="LineNr">1119 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L1120" class="LineNr">1120 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1121" class="LineNr">1121 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1122" class="LineNr">1122 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1123" class="LineNr">1123 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1124" class="LineNr">1124 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1125" class="LineNr">1125 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1126" class="Folded">1126 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L1152" class="LineNr">1152 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale 4/disp32 \n&quot;, msg)</span>
<span id="L1153" class="LineNr">1153 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1154" class="LineNr">1154 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-register-indirect-mode-with-sib-byte&quot;</span>/imm32
<span id="L1155" class="LineNr">1155 </span>    68/push  <span class="Constant">&quot;ab 2/mod/*+disp32 4/rm32/sib 0x00000001/base 0x00000002/index 0x00000003/scale 0x00000004/disp32 \n&quot;</span>/imm32
<span id="L1156" class="LineNr">1156 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1157" class="LineNr">1157 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1158" class="LineNr">1158 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L1159" class="LineNr">1159 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1160" class="LineNr">1160 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1161" class="LineNr">1161 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1162" class="LineNr">1162 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1163" class="LineNr">1163 </span>    5d/pop-to-ebp
<span id="L1164" class="LineNr">1164 </span>    c3/return
<span id="L1165" class="LineNr">1165 </span>
<span id="L1166" class="LineNr">1166 </span><span class="subxTest">test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement</span>:
<span id="L1167" class="LineNr">1167 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1168" class="LineNr">1168 </span>    55/push-ebp
<span id="L1169" class="LineNr">1169 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1170" class="LineNr">1170 </span>    <span class="subxComment"># setup</span>
<span id="L1171" class="LineNr">1171 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L1172" class="LineNr">1172 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1173" class="LineNr">1173 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1174" class="LineNr">1174 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1175" class="LineNr">1175 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1176" class="LineNr">1176 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1177" class="LineNr">1177 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1178" class="LineNr">1178 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L1179" class="LineNr">1179 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1180" class="LineNr">1180 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L1181" class="LineNr">1181 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1182" class="LineNr">1182 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1183" class="LineNr">1183 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1184" class="LineNr">1184 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1185" class="LineNr">1185 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L1186" class="LineNr">1186 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1187" class="LineNr">1187 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1188" class="LineNr">1188 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1189" class="LineNr">1189 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1190" class="LineNr">1190 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1191" class="LineNr">1191 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1192" class="LineNr">1192 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L1193" class="LineNr">1193 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1194" class="LineNr">1194 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L1195" class="LineNr">1195 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1196" class="LineNr">1196 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1197" class="LineNr">1197 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1198" class="LineNr">1198 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1199" class="LineNr">1199 </span>    <span class="subxComment"># initialize input</span>
<span id="L1200" class="LineNr">1200 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *(ecx + edx&lt;&lt;3 - 4)&quot;)</span>
<span id="L1201" class="LineNr">1201 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1202" class="LineNr">1202 </span>    68/push  <span class="Constant">&quot;ab *(ecx + edx&lt;&lt;3 - 4)&quot;</span>/imm32
<span id="L1203" class="LineNr">1203 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1204" class="LineNr">1204 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1205" class="LineNr">1205 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L1206" class="LineNr">1206 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1207" class="LineNr">1207 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1208" class="LineNr">1208 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L1209" class="LineNr">1209 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1210" class="LineNr">1210 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1211" class="LineNr">1211 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L1212" class="LineNr">1212 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1213" class="LineNr">1213 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L1214" class="LineNr">1214 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1215" class="LineNr">1215 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1216" class="LineNr">1216 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L1217" class="LineNr">1217 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L1218" class="LineNr">1218 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1219" class="LineNr">1219 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1220" class="LineNr">1220 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1221" class="LineNr">1221 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1222" class="LineNr">1222 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1223" class="LineNr">1223 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1224" class="Folded">1224 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L1250" class="LineNr">1250 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 2/mod/*+disp32 4/rm32/sib 1/base 2/index 3/scale -4/disp32 \n&quot;, msg)</span>
<span id="L1251" class="LineNr">1251 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1252" class="LineNr">1252 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-register-indirect-mode-with-sib-byte-negative-displacement&quot;</span>/imm32
<span id="L1253" class="LineNr">1253 </span>    68/push  <span class="Constant">&quot;ab 2/mod/*+disp32 4/rm32/sib 0x00000001/base 0x00000002/index 0x00000003/scale 0xfffffffc/disp32 \n&quot;</span>/imm32
<span id="L1254" class="LineNr">1254 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1255" class="LineNr">1255 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1256" class="LineNr">1256 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L1257" class="LineNr">1257 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1258" class="LineNr">1258 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1259" class="LineNr">1259 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1260" class="LineNr">1260 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1261" class="LineNr">1261 </span>    5d/pop-to-ebp
<span id="L1262" class="LineNr">1262 </span>    c3/return
<span id="L1263" class="LineNr">1263 </span>
<span id="L1264" class="LineNr">1264 </span><span class="subxTest">test-subx-sigils-indirect-mode-without-register</span>:
<span id="L1265" class="LineNr">1265 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1266" class="LineNr">1266 </span>    55/push-ebp
<span id="L1267" class="LineNr">1267 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1268" class="LineNr">1268 </span>    <span class="subxComment"># setup</span>
<span id="L1269" class="LineNr">1269 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L1270" class="LineNr">1270 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1271" class="LineNr">1271 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1272" class="LineNr">1272 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1273" class="LineNr">1273 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1274" class="LineNr">1274 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1275" class="LineNr">1275 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1276" class="LineNr">1276 </span>    <span class="subxS1Comment"># . clear-stream($_test-input-buffered-file-&gt;buffer)</span>
<span id="L1277" class="LineNr">1277 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1278" class="LineNr">1278 </span>    68/push  $_test-input-buffered-file-&gt;buffer/imm32
<span id="L1279" class="LineNr">1279 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1280" class="LineNr">1280 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1281" class="LineNr">1281 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1282" class="LineNr">1282 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1283" class="LineNr">1283 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L1284" class="LineNr">1284 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1285" class="LineNr">1285 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1286" class="LineNr">1286 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1287" class="LineNr">1287 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1288" class="LineNr">1288 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1289" class="LineNr">1289 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1290" class="LineNr">1290 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L1291" class="LineNr">1291 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1292" class="LineNr">1292 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L1293" class="LineNr">1293 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1294" class="LineNr">1294 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1295" class="LineNr">1295 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1296" class="LineNr">1296 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1297" class="LineNr">1297 </span>    <span class="subxComment"># initialize input</span>
<span id="L1298" class="LineNr">1298 </span>    <span class="subxS1Comment"># . write(_test-input-stream, &quot;ab *Foo&quot;)</span>
<span id="L1299" class="LineNr">1299 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1300" class="LineNr">1300 </span>    68/push  <span class="Constant">&quot;ab *Foo&quot;</span>/imm32
<span id="L1301" class="LineNr">1301 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1302" class="LineNr">1302 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1303" class="LineNr">1303 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L1304" class="LineNr">1304 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1305" class="LineNr">1305 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1306" class="LineNr">1306 </span>    <span class="subxComment"># subx-sigils(_test-input-buffered-file, _test-output-buffered-file)</span>
<span id="L1307" class="LineNr">1307 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1308" class="LineNr">1308 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1309" class="LineNr">1309 </span>    68/push  <a href='../061read-byte.subx.html#L313'>_test-input-buffered-file</a>/imm32
<span id="L1310" class="LineNr">1310 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1311" class="LineNr">1311 </span>    e8/call  <a href='sigils.subx.html#L107'>subx-sigils</a>/disp32
<span id="L1312" class="LineNr">1312 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1313" class="LineNr">1313 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1314" class="LineNr">1314 </span>    <span class="subxComment"># check that the line just passed through</span>
<span id="L1315" class="LineNr">1315 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L1316" class="LineNr">1316 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1317" class="LineNr">1317 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1318" class="LineNr">1318 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1319" class="LineNr">1319 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1320" class="LineNr">1320 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1321" class="LineNr">1321 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1322" class="Folded">1322 </span><span class="Folded">+-- 26 lines: #?     # dump _test-output-stream -----------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L1348" class="LineNr">1348 </span>    <span class="subxS1Comment"># . check-stream-equal(_test-output-stream, &quot;ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n&quot;, msg)</span>
<span id="L1349" class="LineNr">1349 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1350" class="LineNr">1350 </span>    68/push  <span class="Constant">&quot;F - test-subx-sigils-indirect-mode-without-register&quot;</span>/imm32
<span id="L1351" class="LineNr">1351 </span>    68/push  <span class="Constant">&quot;ab 0/mod/indirect 5/rm32/.disp32 Foo/disp32 \n&quot;</span>/imm32
<span id="L1352" class="LineNr">1352 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1353" class="LineNr">1353 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1354" class="LineNr">1354 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L1355" class="LineNr">1355 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1356" class="LineNr">1356 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1357" class="LineNr">1357 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1358" class="LineNr">1358 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1359" class="LineNr">1359 </span>    5d/pop-to-ebp
<span id="L1360" class="LineNr">1360 </span>    c3/return
<span id="L1361" class="LineNr">1361 </span>
<span id="L1362" class="LineNr">1362 </span><span class="subxFunction">emit-direct-mode</span>:  <span class="subxComment"># out: (addr buffered-file), word-slice: (addr slice)</span>
<span id="L1363" class="LineNr">1363 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1364" class="LineNr">1364 </span>    55/push-ebp
<span id="L1365" class="LineNr">1365 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1366" class="LineNr">1366 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L1367" class="LineNr">1367 </span>    50/push-eax
<span id="L1368" class="LineNr">1368 </span>    <span class="subxComment"># var local-slice/eax: slice = {word-slice-&gt;start, word-slice-&gt;end}</span>
<span id="L1369" class="LineNr">1369 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to eax</span>
<span id="L1370" class="LineNr">1370 </span>    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(eax+4)</span>
<span id="L1371" class="LineNr">1371 </span>    ff          6/subop/push        0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *eax</span>
<span id="L1372" class="LineNr">1372 </span>    89/copy                         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to eax</span>
<span id="L1373" class="LineNr">1373 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '%'</span>
<span id="L1374" class="LineNr">1374 </span>    <span class="subxS1Comment"># . ++(*eax)</span>
<span id="L1375" class="LineNr">1375 </span>    ff          0/subop/increment   0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *eax</span>
<span id="L1376" class="LineNr">1376 </span>    <span class="subxComment"># local-slice = next-token-from-slice(local-slice-&gt;start, local-slice-&gt;end, &quot;/&quot;)</span>
<span id="L1377" class="LineNr">1377 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1378" class="LineNr">1378 </span>    50/push-eax
<span id="L1379" class="LineNr">1379 </span>    68/push  0x2f/imm32/slash
<span id="L1380" class="LineNr">1380 </span>    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(eax+4)</span>
<span id="L1381" class="LineNr">1381 </span>    ff          6/subop/push        0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *eax</span>
<span id="L1382" class="LineNr">1382 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1383" class="LineNr">1383 </span>    e8/call  <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32
<span id="L1384" class="LineNr">1384 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1385" class="LineNr">1385 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to esp</span>
<span id="L1386" class="LineNr">1386 </span>    <span class="subxComment"># reg-num/eax = get-slice(Registers, local-slice, row-size=8)</span>
<span id="L1387" class="LineNr">1387 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1388" class="LineNr">1388 </span>    68/push  <span class="Constant">&quot;Registers&quot;</span>/imm32
<span id="L1389" class="LineNr">1389 </span>    68/push  8/imm32/row-size
<span id="L1390" class="LineNr">1390 </span>    50/push-eax
<span id="L1391" class="LineNr">1391 </span>    68/push  <span class="SpecialChar"><a href='../090register-names.subx.html#L2'>Registers</a></span>/imm32
<span id="L1392" class="LineNr">1392 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1393" class="LineNr">1393 </span>    e8/call  <a href='../081table.subx.html#L201'>get-slice</a>/disp32
<span id="L1394" class="LineNr">1394 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1395" class="LineNr">1395 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to esp</span>
<span id="L1396" class="LineNr">1396 </span>    <span class="subxComment"># write-buffered(out, &quot;3/mod/direct &quot;)</span>
<span id="L1397" class="LineNr">1397 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1398" class="LineNr">1398 </span>    68/push  <span class="Constant">&quot;3/mod/direct &quot;</span>/imm32
<span id="L1399" class="LineNr">1399 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L1400" class="LineNr">1400 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1401" class="LineNr">1401 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L1402" class="LineNr">1402 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1403" class="LineNr">1403 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1404" class="LineNr">1404 </span>    <span class="subxComment"># print-int32-buffered(out, *reg-num)</span>
<span id="L1405" class="LineNr">1405 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1406" class="LineNr">1406 </span>    ff          6/subop/push        0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *eax</span>
<span id="L1407" class="LineNr">1407 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L1408" class="LineNr">1408 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1409" class="LineNr">1409 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L1410" class="LineNr">1410 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1411" class="LineNr">1411 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1412" class="LineNr">1412 </span>    <span class="subxComment"># write-buffered(out, &quot;/rm32&quot;)</span>
<span id="L1413" class="LineNr">1413 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1414" class="LineNr">1414 </span>    68/push  <span class="Constant">&quot;/rm32&quot;</span>/imm32
<span id="L1415" class="LineNr">1415 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L1416" class="LineNr">1416 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1417" class="LineNr">1417 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L1418" class="LineNr">1418 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1419" class="LineNr">1419 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1420" class="LineNr">1420 </span><span class="Constant">$emit-direct-mode:end</span>:
<span id="L1421" class="LineNr">1421 </span>    <span class="subxS1Comment"># . reclaim locals</span>
<span id="L1422" class="LineNr">1422 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1423" class="LineNr">1423 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L1424" class="LineNr">1424 </span>    58/pop-to-eax
<span id="L1425" class="LineNr">1425 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1426" class="LineNr">1426 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1427" class="LineNr">1427 </span>    5d/pop-to-ebp
<span id="L1428" class="LineNr">1428 </span>    c3/return
<span id="L1429" class="LineNr">1429 </span>
<span id="L1430" class="LineNr">1430 </span><span class="subxTest">test-emit-direct-mode</span>:
<span id="L1431" class="LineNr">1431 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1432" class="LineNr">1432 </span>    55/push-ebp
<span id="L1433" class="LineNr">1433 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1434" class="LineNr">1434 </span>    <span class="subxComment"># setup</span>
<span id="L1435" class="LineNr">1435 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L1436" class="LineNr">1436 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1437" class="LineNr">1437 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1438" class="LineNr">1438 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1439" class="LineNr">1439 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1440" class="LineNr">1440 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1441" class="LineNr">1441 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1442" class="LineNr">1442 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L1443" class="LineNr">1443 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1444" class="LineNr">1444 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L1445" class="LineNr">1445 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1446" class="LineNr">1446 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1447" class="LineNr">1447 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1448" class="LineNr">1448 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1449" class="LineNr">1449 </span>    <span class="subxComment"># var slice/ecx = &quot;%eax&quot;</span>
<span id="L1450" class="LineNr">1450 </span>    b8/copy-to-eax  <span class="Constant">&quot;%eax&quot;</span>/imm32
<span id="L1451" class="LineNr">1451 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L1452" class="LineNr">1452 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L1453" class="LineNr">1453 </span>    05/add-to-eax  4/imm32
<span id="L1454" class="LineNr">1454 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L1455" class="LineNr">1455 </span>    51/push-ecx
<span id="L1456" class="LineNr">1456 </span>    50/push-eax
<span id="L1457" class="LineNr">1457 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L1458" class="LineNr">1458 </span>    <span class="subxComment"># emit-direct-mode(_test-output-buffered-file, str)</span>
<span id="L1459" class="LineNr">1459 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1460" class="LineNr">1460 </span>    51/push-ecx
<span id="L1461" class="LineNr">1461 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1462" class="LineNr">1462 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1463" class="LineNr">1463 </span>    e8/call  <a href='sigils.subx.html#L1362'>emit-direct-mode</a>/disp32
<span id="L1464" class="LineNr">1464 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1465" class="LineNr">1465 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32         <span class="subxComment"># add to esp</span>
<span id="L1466" class="LineNr">1466 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L1467" class="LineNr">1467 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1468" class="LineNr">1468 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1469" class="LineNr">1469 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1470" class="LineNr">1470 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1471" class="LineNr">1471 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1472" class="LineNr">1472 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1473" class="Folded">1473 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L1499" class="LineNr">1499 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;3/mod/direct 0/rm32&quot;, msg)</span>
<span id="L1500" class="LineNr">1500 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1501" class="LineNr">1501 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1430'>test-emit-direct-mode</a>/0&quot;</span>/imm32
<span id="L1502" class="LineNr">1502 </span>    68/push  <span class="Constant">&quot;3/mod/direct 0x00000000/rm32&quot;</span>/imm32
<span id="L1503" class="LineNr">1503 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1504" class="LineNr">1504 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1505" class="LineNr">1505 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L1506" class="LineNr">1506 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1507" class="LineNr">1507 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1508" class="LineNr">1508 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1509" class="LineNr">1509 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1510" class="LineNr">1510 </span>    5d/pop-to-ebp
<span id="L1511" class="LineNr">1511 </span>    c3/return
<span id="L1512" class="LineNr">1512 </span>
<span id="L1513" class="LineNr">1513 </span><span class="subxTest">test-emit-direct-mode-2</span>:
<span id="L1514" class="LineNr">1514 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1515" class="LineNr">1515 </span>    55/push-ebp
<span id="L1516" class="LineNr">1516 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1517" class="LineNr">1517 </span>    <span class="subxComment"># setup</span>
<span id="L1518" class="LineNr">1518 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L1519" class="LineNr">1519 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1520" class="LineNr">1520 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1521" class="LineNr">1521 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1522" class="LineNr">1522 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1523" class="LineNr">1523 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1524" class="LineNr">1524 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1525" class="LineNr">1525 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L1526" class="LineNr">1526 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1527" class="LineNr">1527 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L1528" class="LineNr">1528 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1529" class="LineNr">1529 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1530" class="LineNr">1530 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1531" class="LineNr">1531 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1532" class="LineNr">1532 </span>    <span class="subxComment"># var slice/ecx = &quot;%edi&quot;</span>
<span id="L1533" class="LineNr">1533 </span>    b8/copy-to-eax  <span class="Constant">&quot;%edi&quot;</span>/imm32
<span id="L1534" class="LineNr">1534 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L1535" class="LineNr">1535 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L1536" class="LineNr">1536 </span>    05/add-to-eax  4/imm32
<span id="L1537" class="LineNr">1537 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L1538" class="LineNr">1538 </span>    51/push-ecx
<span id="L1539" class="LineNr">1539 </span>    50/push-eax
<span id="L1540" class="LineNr">1540 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L1541" class="LineNr">1541 </span>    <span class="subxComment"># emit-direct-mode(_test-output-buffered-file, str/ecx)</span>
<span id="L1542" class="LineNr">1542 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1543" class="LineNr">1543 </span>    51/push-ecx
<span id="L1544" class="LineNr">1544 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1545" class="LineNr">1545 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1546" class="LineNr">1546 </span>    e8/call  <a href='sigils.subx.html#L1362'>emit-direct-mode</a>/disp32
<span id="L1547" class="LineNr">1547 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1548" class="LineNr">1548 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32         <span class="subxComment"># add to esp</span>
<span id="L1549" class="LineNr">1549 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L1550" class="LineNr">1550 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1551" class="LineNr">1551 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L1552" class="LineNr">1552 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1553" class="LineNr">1553 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1554" class="LineNr">1554 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1555" class="LineNr">1555 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1556" class="Folded">1556 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L1582" class="LineNr">1582 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;3/mod/direct 7/rm32&quot;, msg)</span>
<span id="L1583" class="LineNr">1583 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1584" class="LineNr">1584 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1430'>test-emit-direct-mode</a>/1&quot;</span>/imm32
<span id="L1585" class="LineNr">1585 </span>    68/push  <span class="Constant">&quot;3/mod/direct 0x00000007/rm32&quot;</span>/imm32
<span id="L1586" class="LineNr">1586 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L1587" class="LineNr">1587 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1588" class="LineNr">1588 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L1589" class="LineNr">1589 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1590" class="LineNr">1590 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1591" class="LineNr">1591 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1592" class="LineNr">1592 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1593" class="LineNr">1593 </span>    5d/pop-to-ebp
<span id="L1594" class="LineNr">1594 </span>    c3/return
<span id="L1595" class="LineNr">1595 </span>
<span id="L1596" class="LineNr">1596 </span><span class="subxComment"># (re)compute the bounds of the next word or parenthetical expression in the line</span>
<span id="L1597" class="LineNr">1597 </span><span class="subxComment"># return empty string on reaching end of file</span>
<span id="L1598" class="LineNr">1598 </span><span class="subxComment">#</span>
<span id="L1599" class="LineNr">1599 </span><span class="subxComment"># error messages considered:</span>
<span id="L1600" class="LineNr">1600 </span><span class="subxComment">#   * ...                   -&gt; error: no space after '*'</span>
<span id="L1601" class="LineNr">1601 </span><span class="subxComment">#   *(...                   -&gt; error: *(...) expression must be all on a single line</span>
<span id="L1602" class="LineNr">1602 </span><span class="subxFunction">next-word-or-expression</span>:  <span class="subxComment"># line: (addr stream byte), out: (addr slice)</span>
<span id="L1603" class="LineNr">1603 </span>    <span class="subxComment"># pseudocode:</span>
<span id="L1604" class="LineNr">1604 </span>    <span class="subxComment">#   skip-chars-matching(line, ' ')</span>
<span id="L1605" class="LineNr">1605 </span>    <span class="subxComment">#   if line-&gt;read &gt;= line-&gt;write              # end of line</span>
<span id="L1606" class="LineNr">1606 </span>    <span class="subxComment">#     out = {0, 0}</span>
<span id="L1607" class="LineNr">1607 </span>    <span class="subxComment">#     return</span>
<span id="L1608" class="LineNr">1608 </span>    <span class="subxComment">#   out-&gt;start = &amp;line-&gt;data[line-&gt;read]</span>
<span id="L1609" class="LineNr">1609 </span>    <span class="subxComment">#   if line-&gt;data[line-&gt;read] == '#'          # comment</span>
<span id="L1610" class="LineNr">1610 </span>    <span class="subxComment">#     out.end = &amp;line-&gt;data[line-&gt;write]</span>
<span id="L1611" class="LineNr">1611 </span>    <span class="subxComment">#     return</span>
<span id="L1612" class="LineNr">1612 </span>    <span class="subxComment">#   if line-&gt;data[line-&gt;read] == '&quot;'          # string literal</span>
<span id="L1613" class="LineNr">1613 </span>    <span class="subxComment">#     skip-string(line)</span>
<span id="L1614" class="LineNr">1614 </span>    <span class="subxComment">#   else if line-&gt;data[line-&gt;read] == '*'     # expression</span>
<span id="L1615" class="LineNr">1615 </span>    <span class="subxComment">#     if line-&gt;data[line-&gt;read + 1] == ' '</span>
<span id="L1616" class="LineNr">1616 </span>    <span class="subxComment">#       abort</span>
<span id="L1617" class="LineNr">1617 </span>    <span class="subxComment">#     if line-&gt;data[line-&gt;read + 1] == '('</span>
<span id="L1618" class="LineNr">1618 </span>    <span class="subxComment">#       skip-until-close-paren(line)</span>
<span id="L1619" class="LineNr">1619 </span>    <span class="subxComment">#       if (line-&gt;data[line-&gt;read] != ')'</span>
<span id="L1620" class="LineNr">1620 </span>    <span class="subxComment">#         abort</span>
<span id="L1621" class="LineNr">1621 </span>    <span class="subxComment">#       ++line-&gt;data[line-&gt;read] to skip ')'</span>
<span id="L1622" class="LineNr">1622 </span>    <span class="subxComment">#   skip-chars-not-matching-whitespace(line)</span>
<span id="L1623" class="LineNr">1623 </span>    <span class="subxComment">#   out-&gt;end = &amp;line-&gt;data[line-&gt;read]</span>
<span id="L1624" class="LineNr">1624 </span>    <span class="subxComment">#</span>
<span id="L1625" class="LineNr">1625 </span>    <span class="subxComment"># registers:</span>
<span id="L1626" class="LineNr">1626 </span>    <span class="subxComment">#   ecx: often line-&gt;read</span>
<span id="L1627" class="LineNr">1627 </span>    <span class="subxComment">#   eax: often line-&gt;data[line-&gt;read]</span>
<span id="L1628" class="LineNr">1628 </span>    <span class="subxComment">#</span>
<span id="L1629" class="LineNr">1629 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1630" class="LineNr">1630 </span>    55/push-ebp
<span id="L1631" class="LineNr">1631 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1632" class="LineNr">1632 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L1633" class="LineNr">1633 </span>    50/push-eax
<span id="L1634" class="LineNr">1634 </span>    51/push-ecx
<span id="L1635" class="LineNr">1635 </span>    56/push-esi
<span id="L1636" class="LineNr">1636 </span>    57/push-edi
<span id="L1637" class="LineNr">1637 </span>    <span class="subxComment"># esi = line</span>
<span id="L1638" class="LineNr">1638 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
<span id="L1639" class="LineNr">1639 </span>    <span class="subxComment"># edi = out</span>
<span id="L1640" class="LineNr">1640 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to edi</span>
<span id="L1641" class="LineNr">1641 </span>    <span class="subxComment"># skip-chars-matching(line, ' ')</span>
<span id="L1642" class="LineNr">1642 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1643" class="LineNr">1643 </span>    68/push  0x20/imm32/space
<span id="L1644" class="LineNr">1644 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L1645" class="LineNr">1645 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1646" class="LineNr">1646 </span>    e8/call  <a href='../073next-token.subx.html#L341'>skip-chars-matching</a>/disp32
<span id="L1647" class="LineNr">1647 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1648" class="LineNr">1648 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1649" class="LineNr">1649 </span><span class="Constant">$next-word-or-expression:check0</span>:
<span id="L1650" class="LineNr">1650 </span>    <span class="subxComment"># if (line-&gt;read &gt;= line-&gt;write) clear out and return</span>
<span id="L1651" class="LineNr">1651 </span>    <span class="subxS1Comment"># . ecx = line-&gt;read</span>
<span id="L1652" class="LineNr">1652 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to ecx</span>
<span id="L1653" class="LineNr">1653 </span>    <span class="subxS1Comment"># . if (ecx &lt; line-&gt;write) goto next check</span>
<span id="L1654" class="LineNr">1654 </span>    3b/compare                      0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with *esi</span>
<span id="L1655" class="LineNr">1655 </span>    7c/jump-if-&lt;  $next-word-or-expression:check-for-comment/disp8
<span id="L1656" class="LineNr">1656 </span>    <span class="subxS1Comment"># . return out = {0, 0}</span>
<span id="L1657" class="LineNr">1657 </span>    c7          0/subop/copy        0/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0/imm32           <span class="subxComment"># copy to *edi</span>
<span id="L1658" class="LineNr">1658 </span>    c7          0/subop/copy        1/mod/*+disp8   7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8         0/imm32           <span class="subxComment"># copy to *(edi+4)</span>
<span id="L1659" class="LineNr">1659 </span>    e9/jump  $next-word-or-expression:end/disp32
<span id="L1660" class="LineNr">1660 </span><span class="Constant">$next-word-or-expression:check-for-comment</span>:
<span id="L1661" class="LineNr">1661 </span>    <span class="subxComment"># out-&gt;start = &amp;line-&gt;data[line-&gt;read]</span>
<span id="L1662" class="LineNr">1662 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx  <span class="Normal"> . </span>          0/r32/eax   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+ecx+12 to eax</span>
<span id="L1663" class="LineNr">1663 </span>    89/copy                         0/mod/indirect  7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *edi</span>
<span id="L1664" class="LineNr">1664 </span>    <span class="subxComment"># if (line-&gt;data[line-&gt;read] != '#') goto next check</span>
<span id="L1665" class="LineNr">1665 </span>    <span class="subxS1Comment"># . eax = line-&gt;data[line-&gt;read]</span>
<span id="L1666" class="LineNr">1666 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
<span id="L1667" class="LineNr">1667 </span>    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx  <span class="Normal"> . </span>          0/r32/AL    0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *(esi+ecx+12) to AL</span>
<span id="L1668" class="LineNr">1668 </span>    <span class="subxS1Comment"># . if (eax != '#') goto next check</span>
<span id="L1669" class="LineNr">1669 </span>    3d/compare-eax-and  0x23/imm32/pound
<span id="L1670" class="LineNr">1670 </span>    75/jump-if-!=  $next-word-or-expression:check-for-string-literal/disp8
<span id="L1671" class="LineNr">1671 </span><span class="Constant">$next-word-or-expression:comment</span>:
<span id="L1672" class="LineNr">1672 </span>    <span class="subxComment"># out-&gt;end = &amp;line-&gt;data[line-&gt;write]</span>
<span id="L1673" class="LineNr">1673 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to eax</span>
<span id="L1674" class="LineNr">1674 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  0/index/eax  <span class="Normal"> . </span>          0/r32/eax   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+eax+12 to eax</span>
<span id="L1675" class="LineNr">1675 </span>    89/copy                         1/mod/*+disp8   7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *(edi+4)</span>
<span id="L1676" class="LineNr">1676 </span>    <span class="subxComment"># line-&gt;read = line-&gt;write  # skip rest of line</span>
<span id="L1677" class="LineNr">1677 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to eax</span>
<span id="L1678" class="LineNr">1678 </span>    89/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *(esi+4)</span>
<span id="L1679" class="LineNr">1679 </span>    <span class="subxComment"># return</span>
<span id="L1680" class="LineNr">1680 </span>    eb/jump  $next-word-or-expression:end/disp8
<span id="L1681" class="LineNr">1681 </span><span class="Constant">$next-word-or-expression:check-for-string-literal</span>:
<span id="L1682" class="LineNr">1682 </span>    <span class="subxComment"># if (line-&gt;data[line-&gt;read] != '&quot;') goto next check</span>
<span id="L1683" class="LineNr">1683 </span>    3d/compare-eax-and  0x22/imm32/dquote
<span id="L1684" class="LineNr">1684 </span>    75/jump-if-!=  $next-word-or-expression:check-for-expression/disp8
<span id="L1685" class="LineNr">1685 </span><span class="Constant">$next-word-or-expression:string-literal</span>:
<span id="L1686" class="LineNr">1686 </span>    <span class="subxComment"># skip-string(line)</span>
<span id="L1687" class="LineNr">1687 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1688" class="LineNr">1688 </span>    56/push-esi
<span id="L1689" class="LineNr">1689 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1690" class="LineNr">1690 </span>    e8/call  <a href='../073next-token.subx.html#L1171'>skip-string</a>/disp32
<span id="L1691" class="LineNr">1691 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1692" class="LineNr">1692 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1693" class="LineNr">1693 </span>    <span class="subxComment"># skip rest of word</span>
<span id="L1694" class="LineNr">1694 </span>    eb/jump  $next-word-or-expression:regular-word/disp8
<span id="L1695" class="LineNr">1695 </span><span class="Constant">$next-word-or-expression:check-for-expression</span>:
<span id="L1696" class="LineNr">1696 </span>    <span class="subxComment"># if (line-&gt;data[line-&gt;read] != '*') goto next check</span>
<span id="L1697" class="LineNr">1697 </span>    3d/compare-eax-and  0x2a/imm32/asterisk
<span id="L1698" class="LineNr">1698 </span>    75/jump-if-!=  $next-word-or-expression:regular-word/disp8
<span id="L1699" class="LineNr">1699 </span>    <span class="subxComment"># if (line-&gt;data[line-&gt;read + 1] == ' ') goto error1</span>
<span id="L1700" class="LineNr">1700 </span>    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx  <span class="Normal"> . </span>          0/r32/AL    0xd/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *(esi+ecx+12+1) to AL</span>
<span id="L1701" class="LineNr">1701 </span>    3d/compare-eax-and  0x20/imm32/space
<span id="L1702" class="LineNr">1702 </span>    74/jump-if-=  $next-word-or-expression:error1/disp8
<span id="L1703" class="LineNr">1703 </span>    <span class="subxComment"># if (line-&gt;data[line-&gt;read + 1] != '(') goto regular word</span>
<span id="L1704" class="LineNr">1704 </span>    3d/compare-eax-and  0x28/imm32/open-paren
<span id="L1705" class="LineNr">1705 </span>    75/jump-if-!=  $next-word-or-expression:regular-word/disp8
<span id="L1706" class="LineNr">1706 </span><span class="Constant">$next-word-or-expression:paren</span>:
<span id="L1707" class="LineNr">1707 </span>    <span class="subxComment"># skip-until-close-paren(line)</span>
<span id="L1708" class="LineNr">1708 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1709" class="LineNr">1709 </span>    56/push-esi
<span id="L1710" class="LineNr">1710 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1711" class="LineNr">1711 </span>    e8/call  <a href='../073next-token.subx.html#L1599'>skip-until-close-paren</a>/disp32
<span id="L1712" class="LineNr">1712 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1713" class="LineNr">1713 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1714" class="LineNr">1714 </span>    <span class="subxComment"># if (line-&gt;data[line-&gt;read] != ')') goto error2</span>
<span id="L1715" class="LineNr">1715 </span>    <span class="subxS1Comment"># . eax = line-&gt;data[line-&gt;read]</span>
<span id="L1716" class="LineNr">1716 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to ecx</span>
<span id="L1717" class="LineNr">1717 </span>    8a/copy-byte                    1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx  <span class="Normal"> . </span>          0/r32/AL    0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *(esi+ecx+12) to AL</span>
<span id="L1718" class="LineNr">1718 </span>    <span class="subxS1Comment"># . if (eax != ')') goto error2</span>
<span id="L1719" class="LineNr">1719 </span>    3d/compare-eax-and  0x29/imm32/close-paren
<span id="L1720" class="LineNr">1720 </span>    75/jump-if-!=  $next-word-or-expression:error2/disp8
<span id="L1721" class="LineNr">1721 </span>    <span class="subxComment"># skip ')'</span>
<span id="L1722" class="LineNr">1722 </span>    ff          0/subop/increment   1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># increment *(esi+4)</span>
<span id="L1723" class="LineNr">1723 </span>    <span class="subxComment"># fall through</span>
<span id="L1724" class="LineNr">1724 </span><span class="Constant">$next-word-or-expression:regular-word</span>:
<span id="L1725" class="LineNr">1725 </span>    <span class="subxComment"># skip-chars-not-matching-whitespace(line)  # including trailing newline</span>
<span id="L1726" class="LineNr">1726 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1727" class="LineNr">1727 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L1728" class="LineNr">1728 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1729" class="LineNr">1729 </span>    e8/call  <a href='../073next-token.subx.html#L716'>skip-chars-not-matching-whitespace</a>/disp32
<span id="L1730" class="LineNr">1730 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1731" class="LineNr">1731 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1732" class="LineNr">1732 </span>    <span class="subxComment"># out-&gt;end = &amp;line-&gt;data[line-&gt;read]</span>
<span id="L1733" class="LineNr">1733 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to ecx</span>
<span id="L1734" class="LineNr">1734 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    6/base/esi  1/index/ecx  <span class="Normal"> . </span>          0/r32/eax   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy esi+ecx+12 to eax</span>
<span id="L1735" class="LineNr">1735 </span>    89/copy                         1/mod/*+disp8   7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *(edi+4)</span>
<span id="L1736" class="LineNr">1736 </span><span class="Constant">$next-word-or-expression:end</span>:
<span id="L1737" class="LineNr">1737 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L1738" class="LineNr">1738 </span>    5f/pop-to-edi
<span id="L1739" class="LineNr">1739 </span>    5e/pop-to-esi
<span id="L1740" class="LineNr">1740 </span>    59/pop-to-ecx
<span id="L1741" class="LineNr">1741 </span>    58/pop-to-eax
<span id="L1742" class="LineNr">1742 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1743" class="LineNr">1743 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1744" class="LineNr">1744 </span>    5d/pop-to-ebp
<span id="L1745" class="LineNr">1745 </span>    c3/return
<span id="L1746" class="LineNr">1746 </span>
<span id="L1747" class="LineNr">1747 </span><span class="Constant">$next-word-or-expression:error1</span>:
<span id="L1748" class="LineNr">1748 </span>    <span class="subxComment"># print(stderr, &quot;error: no space allowed after '*' in '&quot; line &quot;'&quot;)</span>
<span id="L1749" class="LineNr">1749 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: no space allowed after '*' in '&quot;)</span>
<span id="L1750" class="LineNr">1750 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1751" class="LineNr">1751 </span>    68/push  <span class="Constant">&quot;error: no space allowed after '*' in '&quot;</span>/imm32
<span id="L1752" class="LineNr">1752 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1753" class="LineNr">1753 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1754" class="LineNr">1754 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L1755" class="LineNr">1755 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1756" class="LineNr">1756 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1757" class="LineNr">1757 </span>    <span class="subxS1Comment"># . write-stream-data(Stderr, line)</span>
<span id="L1758" class="LineNr">1758 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1759" class="LineNr">1759 </span>    56/push-esi
<span id="L1760" class="LineNr">1760 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1761" class="LineNr">1761 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1762" class="LineNr">1762 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
<span id="L1763" class="LineNr">1763 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1764" class="LineNr">1764 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1765" class="LineNr">1765 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;'&quot;)</span>
<span id="L1766" class="LineNr">1766 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1767" class="LineNr">1767 </span>    68/push  <span class="Constant">&quot;'&quot;</span>/imm32
<span id="L1768" class="LineNr">1768 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1769" class="LineNr">1769 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1770" class="LineNr">1770 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L1771" class="LineNr">1771 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1772" class="LineNr">1772 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1773" class="LineNr">1773 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L1774" class="LineNr">1774 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1775" class="LineNr">1775 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1776" class="LineNr">1776 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1777" class="LineNr">1777 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1778" class="LineNr">1778 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1779" class="LineNr">1779 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1780" class="LineNr">1780 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L1781" class="LineNr">1781 </span>    bb/copy-to-ebx  1/imm32
<span id="L1782" class="LineNr">1782 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L1783" class="LineNr">1783 </span>    cd/syscall  0x80/imm8
<span id="L1784" class="LineNr">1784 </span>    <span class="subxComment"># never gets here</span>
<span id="L1785" class="LineNr">1785 </span>
<span id="L1786" class="LineNr">1786 </span><span class="Constant">$next-word-or-expression:error2</span>:
<span id="L1787" class="LineNr">1787 </span>    <span class="subxComment"># print(stderr, &quot;error: *(...) expression must be all on a single line in '&quot; line &quot;'&quot;)</span>
<span id="L1788" class="LineNr">1788 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: *(...) expression must be all on a single line in '&quot;)</span>
<span id="L1789" class="LineNr">1789 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1790" class="LineNr">1790 </span>    68/push  <span class="Constant">&quot;error: *(...) expression must be all on a single line in '&quot;</span>/imm32
<span id="L1791" class="LineNr">1791 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1792" class="LineNr">1792 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1793" class="LineNr">1793 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L1794" class="LineNr">1794 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1795" class="LineNr">1795 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1796" class="LineNr">1796 </span>    <span class="subxS1Comment"># . write-stream-data(Stderr, line)</span>
<span id="L1797" class="LineNr">1797 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1798" class="LineNr">1798 </span>    56/push-esi
<span id="L1799" class="LineNr">1799 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1800" class="LineNr">1800 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1801" class="LineNr">1801 </span>    e8/call  <a href='../074write-stream-data.subx.html#L11'>write-stream-data</a>/disp32
<span id="L1802" class="LineNr">1802 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1803" class="LineNr">1803 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1804" class="LineNr">1804 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;'&quot;)</span>
<span id="L1805" class="LineNr">1805 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1806" class="LineNr">1806 </span>    68/push  <span class="Constant">&quot;'&quot;</span>/imm32
<span id="L1807" class="LineNr">1807 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1808" class="LineNr">1808 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1809" class="LineNr">1809 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L1810" class="LineNr">1810 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1811" class="LineNr">1811 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1812" class="LineNr">1812 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L1813" class="LineNr">1813 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1814" class="LineNr">1814 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L1815" class="LineNr">1815 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1816" class="LineNr">1816 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L1817" class="LineNr">1817 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1818" class="LineNr">1818 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1819" class="LineNr">1819 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L1820" class="LineNr">1820 </span>    bb/copy-to-ebx  1/imm32
<span id="L1821" class="LineNr">1821 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L1822" class="LineNr">1822 </span>    cd/syscall  0x80/imm8
<span id="L1823" class="LineNr">1823 </span>    <span class="subxComment"># never gets here</span>
<span id="L1824" class="LineNr">1824 </span>
<span id="L1825" class="LineNr">1825 </span><span class="subxTest">test-next-word-or-expression</span>:
<span id="L1826" class="LineNr">1826 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1827" class="LineNr">1827 </span>    55/push-ebp
<span id="L1828" class="LineNr">1828 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1829" class="LineNr">1829 </span>    <span class="subxComment"># setup</span>
<span id="L1830" class="LineNr">1830 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L1831" class="LineNr">1831 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1832" class="LineNr">1832 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1833" class="LineNr">1833 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1834" class="LineNr">1834 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1835" class="LineNr">1835 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1836" class="LineNr">1836 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1837" class="LineNr">1837 </span>    <span class="subxComment"># var slice/ecx: slice</span>
<span id="L1838" class="LineNr">1838 </span>    68/push  0/imm32/end
<span id="L1839" class="LineNr">1839 </span>    68/push  0/imm32/start
<span id="L1840" class="LineNr">1840 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L1841" class="LineNr">1841 </span>    <span class="subxComment"># write(_test-input-stream, &quot;  ab&quot;)</span>
<span id="L1842" class="LineNr">1842 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1843" class="LineNr">1843 </span>    68/push  <span class="Constant">&quot;  ab&quot;</span>/imm32
<span id="L1844" class="LineNr">1844 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1845" class="LineNr">1845 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1846" class="LineNr">1846 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L1847" class="LineNr">1847 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1848" class="LineNr">1848 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1849" class="LineNr">1849 </span>    <span class="subxComment"># next-word-or-expression(_test-input-stream, slice)</span>
<span id="L1850" class="LineNr">1850 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1851" class="LineNr">1851 </span>    51/push-ecx
<span id="L1852" class="LineNr">1852 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1853" class="LineNr">1853 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1854" class="LineNr">1854 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L1855" class="LineNr">1855 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1856" class="LineNr">1856 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1857" class="LineNr">1857 </span>    <span class="subxComment"># check-ints-equal(_test-input-stream-&gt;read, 4, msg)</span>
<span id="L1858" class="LineNr">1858 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1859" class="LineNr">1859 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1825'>test-next-word-or-expression</a>/updates-stream-read-correctly&quot;</span>/imm32
<span id="L1860" class="LineNr">1860 </span>    68/push  4/imm32
<span id="L1861" class="LineNr">1861 </span>    b8/copy-to-eax  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1862" class="LineNr">1862 </span>    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(eax+4)</span>
<span id="L1863" class="LineNr">1863 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1864" class="LineNr">1864 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L1865" class="LineNr">1865 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1866" class="LineNr">1866 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1867" class="LineNr">1867 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;start - _test-input-stream-&gt;data, 2, msg)</span>
<span id="L1868" class="LineNr">1868 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;start - _test-input-stream, 14, msg)</span>
<span id="L1869" class="LineNr">1869 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1870" class="LineNr">1870 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1825'>test-next-word-or-expression</a>: start&quot;</span>/imm32
<span id="L1871" class="LineNr">1871 </span>    68/push  0xe/imm32
<span id="L1872" class="LineNr">1872 </span>    <span class="subxS2Comment"># . . push slice-&gt;start - _test-input-stream</span>
<span id="L1873" class="LineNr">1873 </span>    8b/copy                         0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ecx to eax</span>
<span id="L1874" class="LineNr">1874 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L1875" class="LineNr">1875 </span>    50/push-eax
<span id="L1876" class="LineNr">1876 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1877" class="LineNr">1877 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L1878" class="LineNr">1878 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1879" class="LineNr">1879 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1880" class="LineNr">1880 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;end - _test-input-stream-&gt;data, 4, msg)</span>
<span id="L1881" class="LineNr">1881 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;end - _test-input-stream, 16, msg)</span>
<span id="L1882" class="LineNr">1882 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1883" class="LineNr">1883 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1825'>test-next-word-or-expression</a>: end&quot;</span>/imm32
<span id="L1884" class="LineNr">1884 </span>    68/push  0x10/imm32
<span id="L1885" class="LineNr">1885 </span>    <span class="subxS2Comment"># . . push slice-&gt;end - _test-input-stream</span>
<span id="L1886" class="LineNr">1886 </span>    8b/copy                         1/mod/*+disp8   1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ecx+4) to eax</span>
<span id="L1887" class="LineNr">1887 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L1888" class="LineNr">1888 </span>    50/push-eax
<span id="L1889" class="LineNr">1889 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1890" class="LineNr">1890 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L1891" class="LineNr">1891 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1892" class="LineNr">1892 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1893" class="LineNr">1893 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1894" class="LineNr">1894 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1895" class="LineNr">1895 </span>    5d/pop-to-ebp
<span id="L1896" class="LineNr">1896 </span>    c3/return
<span id="L1897" class="LineNr">1897 </span>
<span id="L1898" class="LineNr">1898 </span><span class="subxTest">test-next-word-or-expression-returns-whole-comment</span>:
<span id="L1899" class="LineNr">1899 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1900" class="LineNr">1900 </span>    55/push-ebp
<span id="L1901" class="LineNr">1901 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1902" class="LineNr">1902 </span>    <span class="subxComment"># setup</span>
<span id="L1903" class="LineNr">1903 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L1904" class="LineNr">1904 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1905" class="LineNr">1905 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1906" class="LineNr">1906 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1907" class="LineNr">1907 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1908" class="LineNr">1908 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1909" class="LineNr">1909 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1910" class="LineNr">1910 </span>    <span class="subxComment"># var slice/ecx: slice</span>
<span id="L1911" class="LineNr">1911 </span>    68/push  0/imm32/end
<span id="L1912" class="LineNr">1912 </span>    68/push  0/imm32/start
<span id="L1913" class="LineNr">1913 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L1914" class="LineNr">1914 </span>    <span class="subxComment"># write(_test-input-stream, &quot;  # a&quot;)</span>
<span id="L1915" class="LineNr">1915 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1916" class="LineNr">1916 </span>    68/push  <span class="Constant">&quot;  # a&quot;</span>/imm32
<span id="L1917" class="LineNr">1917 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1918" class="LineNr">1918 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1919" class="LineNr">1919 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L1920" class="LineNr">1920 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1921" class="LineNr">1921 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1922" class="LineNr">1922 </span>    <span class="subxComment"># next-word-or-expression(_test-input-stream, slice)</span>
<span id="L1923" class="LineNr">1923 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1924" class="LineNr">1924 </span>    51/push-ecx
<span id="L1925" class="LineNr">1925 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1926" class="LineNr">1926 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1927" class="LineNr">1927 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L1928" class="LineNr">1928 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1929" class="LineNr">1929 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1930" class="LineNr">1930 </span>    <span class="subxComment"># check-ints-equal(_test-input-stream-&gt;read, 5, msg)</span>
<span id="L1931" class="LineNr">1931 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1932" class="LineNr">1932 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1898'>test-next-word-or-expression-returns-whole-comment</a>/updates-stream-read-correctly&quot;</span>/imm32
<span id="L1933" class="LineNr">1933 </span>    68/push  5/imm32
<span id="L1934" class="LineNr">1934 </span>    b8/copy-to-eax  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1935" class="LineNr">1935 </span>    ff          6/subop/push        1/mod/*+disp8   0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(eax+4)</span>
<span id="L1936" class="LineNr">1936 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1937" class="LineNr">1937 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L1938" class="LineNr">1938 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1939" class="LineNr">1939 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1940" class="LineNr">1940 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;start - _test-input-stream-&gt;data, 2, msg)</span>
<span id="L1941" class="LineNr">1941 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;start - _test-input-stream, 14, msg)</span>
<span id="L1942" class="LineNr">1942 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1943" class="LineNr">1943 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1898'>test-next-word-or-expression-returns-whole-comment</a>: start&quot;</span>/imm32
<span id="L1944" class="LineNr">1944 </span>    68/push  0xe/imm32
<span id="L1945" class="LineNr">1945 </span>    <span class="subxS2Comment"># . . push slice-&gt;start - _test-input-stream</span>
<span id="L1946" class="LineNr">1946 </span>    8b/copy                         0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ecx to eax</span>
<span id="L1947" class="LineNr">1947 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L1948" class="LineNr">1948 </span>    50/push-eax
<span id="L1949" class="LineNr">1949 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1950" class="LineNr">1950 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L1951" class="LineNr">1951 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1952" class="LineNr">1952 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1953" class="LineNr">1953 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;end - _test-input-stream-&gt;data, 5, msg)</span>
<span id="L1954" class="LineNr">1954 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;end - _test-input-stream, 17, msg)</span>
<span id="L1955" class="LineNr">1955 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1956" class="LineNr">1956 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L1898'>test-next-word-or-expression-returns-whole-comment</a>: end&quot;</span>/imm32
<span id="L1957" class="LineNr">1957 </span>    68/push  0x11/imm32
<span id="L1958" class="LineNr">1958 </span>    <span class="subxS2Comment"># . . push slice-&gt;end - _test-input-stream</span>
<span id="L1959" class="LineNr">1959 </span>    8b/copy                         1/mod/*+disp8   1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ecx+4) to eax</span>
<span id="L1960" class="LineNr">1960 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L1961" class="LineNr">1961 </span>    50/push-eax
<span id="L1962" class="LineNr">1962 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1963" class="LineNr">1963 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L1964" class="LineNr">1964 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1965" class="LineNr">1965 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L1966" class="LineNr">1966 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L1967" class="LineNr">1967 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L1968" class="LineNr">1968 </span>    5d/pop-to-ebp
<span id="L1969" class="LineNr">1969 </span>    c3/return
<span id="L1970" class="LineNr">1970 </span>
<span id="L1971" class="LineNr">1971 </span><span class="subxTest">test-next-word-or-expression-returns-empty-slice-on-eof</span>:
<span id="L1972" class="LineNr">1972 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L1973" class="LineNr">1973 </span>    55/push-ebp
<span id="L1974" class="LineNr">1974 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L1975" class="LineNr">1975 </span>    <span class="subxComment"># setup</span>
<span id="L1976" class="LineNr">1976 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L1977" class="LineNr">1977 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1978" class="LineNr">1978 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1979" class="LineNr">1979 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1980" class="LineNr">1980 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L1981" class="LineNr">1981 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1982" class="LineNr">1982 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L1983" class="LineNr">1983 </span>    <span class="subxComment"># var slice/ecx: slice</span>
<span id="L1984" class="LineNr">1984 </span>    68/push  0/imm32/end
<span id="L1985" class="LineNr">1985 </span>    68/push  0/imm32/start
<span id="L1986" class="LineNr">1986 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L1987" class="LineNr">1987 </span>    <span class="subxComment"># write nothing to _test-input-stream</span>
<span id="L1988" class="LineNr">1988 </span>    <span class="subxComment"># next-word-or-expression(_test-input-stream, slice)</span>
<span id="L1989" class="LineNr">1989 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1990" class="LineNr">1990 </span>    51/push-ecx
<span id="L1991" class="LineNr">1991 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L1992" class="LineNr">1992 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L1993" class="LineNr">1993 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L1994" class="LineNr">1994 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L1995" class="LineNr">1995 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L1996" class="LineNr">1996 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;end - slice-&gt;start, 0, msg)</span>
<span id="L1997" class="LineNr">1997 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L1998" class="LineNr">1998 </span>    68/push  <span class="Constant">&quot;F - test-next-word-or-expression-returns-empty-expression-on-eof&quot;</span>/imm32
<span id="L1999" class="LineNr">1999 </span>    68/push  0/imm32
<span id="L2000" class="LineNr">2000 </span>    <span class="subxS2Comment"># . . push slice-&gt;end - slice-&gt;start</span>
<span id="L2001" class="LineNr">2001 </span>    8b/copy                         1/mod/*+disp8   1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ecx+4) to eax</span>
<span id="L2002" class="LineNr">2002 </span>    2b/subtract                     0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># subtract *ecx from eax</span>
<span id="L2003" class="LineNr">2003 </span>    50/push-eax
<span id="L2004" class="LineNr">2004 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2005" class="LineNr">2005 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2006" class="LineNr">2006 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2007" class="LineNr">2007 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2008" class="LineNr">2008 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2009" class="LineNr">2009 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2010" class="LineNr">2010 </span>    5d/pop-to-ebp
<span id="L2011" class="LineNr">2011 </span>    c3/return
<span id="L2012" class="LineNr">2012 </span>
<span id="L2013" class="LineNr">2013 </span><span class="subxTest">test-next-word-or-expression-returns-string-literal</span>:
<span id="L2014" class="LineNr">2014 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2015" class="LineNr">2015 </span>    55/push-ebp
<span id="L2016" class="LineNr">2016 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2017" class="LineNr">2017 </span>    <span class="subxComment"># setup</span>
<span id="L2018" class="LineNr">2018 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L2019" class="LineNr">2019 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2020" class="LineNr">2020 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2021" class="LineNr">2021 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2022" class="LineNr">2022 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L2023" class="LineNr">2023 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2024" class="LineNr">2024 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2025" class="LineNr">2025 </span>    <span class="subxComment"># var slice/ecx: slice</span>
<span id="L2026" class="LineNr">2026 </span>    68/push  0/imm32/end
<span id="L2027" class="LineNr">2027 </span>    68/push  0/imm32/start
<span id="L2028" class="LineNr">2028 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2029" class="LineNr">2029 </span>    <span class="subxComment"># write(_test-input-stream, &quot; \&quot;a b\&quot;/imm32 &quot;)</span>
<span id="L2030" class="LineNr">2030 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2031" class="LineNr">2031 </span>    68/push  <span class="Constant">&quot; \&quot;</span>a b\<span class="Constant">&quot;/imm32 &quot;</span>/imm32
<span id="L2032" class="LineNr">2032 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2033" class="LineNr">2033 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2034" class="LineNr">2034 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L2035" class="LineNr">2035 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2036" class="LineNr">2036 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2037" class="LineNr">2037 </span>    <span class="subxComment"># next-word-or-expression(_test-input-stream, slice)</span>
<span id="L2038" class="LineNr">2038 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2039" class="LineNr">2039 </span>    51/push-ecx
<span id="L2040" class="LineNr">2040 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2041" class="LineNr">2041 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2042" class="LineNr">2042 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L2043" class="LineNr">2043 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2044" class="LineNr">2044 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2045" class="LineNr">2045 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;start - _test-input-stream-&gt;data, 1, msg)</span>
<span id="L2046" class="LineNr">2046 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;start - _test-input-stream, 13, msg)</span>
<span id="L2047" class="LineNr">2047 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2048" class="LineNr">2048 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2013'>test-next-word-or-expression-returns-string-literal</a>: start&quot;</span>/imm32
<span id="L2049" class="LineNr">2049 </span>    68/push  0xd/imm32
<span id="L2050" class="LineNr">2050 </span>    <span class="subxS2Comment"># . . push slice-&gt;start - _test-input-stream</span>
<span id="L2051" class="LineNr">2051 </span>    8b/copy                         0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ecx to eax</span>
<span id="L2052" class="LineNr">2052 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L2053" class="LineNr">2053 </span>    50/push-eax
<span id="L2054" class="LineNr">2054 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2055" class="LineNr">2055 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2056" class="LineNr">2056 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2057" class="LineNr">2057 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2058" class="LineNr">2058 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;end - _test-input-stream-&gt;data, 12, msg)</span>
<span id="L2059" class="LineNr">2059 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;end - _test-input-stream, 24, msg)</span>
<span id="L2060" class="LineNr">2060 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2061" class="LineNr">2061 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2013'>test-next-word-or-expression-returns-string-literal</a>: end&quot;</span>/imm32
<span id="L2062" class="LineNr">2062 </span>    68/push  0x18/imm32
<span id="L2063" class="LineNr">2063 </span>    <span class="subxS2Comment"># . . push slice-&gt;end - _test-input-stream</span>
<span id="L2064" class="LineNr">2064 </span>    8b/copy                         1/mod/*+disp8   1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ecx+4) to eax</span>
<span id="L2065" class="LineNr">2065 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L2066" class="LineNr">2066 </span>    50/push-eax
<span id="L2067" class="LineNr">2067 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2068" class="LineNr">2068 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2069" class="LineNr">2069 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2070" class="LineNr">2070 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2071" class="LineNr">2071 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2072" class="LineNr">2072 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2073" class="LineNr">2073 </span>    5d/pop-to-ebp
<span id="L2074" class="LineNr">2074 </span>    c3/return
<span id="L2075" class="LineNr">2075 </span>
<span id="L2076" class="LineNr">2076 </span><span class="subxTest">test-next-word-or-expression-returns-string-with-escapes</span>:
<span id="L2077" class="LineNr">2077 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2078" class="LineNr">2078 </span>    55/push-ebp
<span id="L2079" class="LineNr">2079 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2080" class="LineNr">2080 </span>    <span class="subxComment"># setup</span>
<span id="L2081" class="LineNr">2081 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L2082" class="LineNr">2082 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2083" class="LineNr">2083 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2084" class="LineNr">2084 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2085" class="LineNr">2085 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L2086" class="LineNr">2086 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2087" class="LineNr">2087 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2088" class="LineNr">2088 </span>    <span class="subxComment"># var slice/ecx: slice</span>
<span id="L2089" class="LineNr">2089 </span>    68/push  0/imm32/end
<span id="L2090" class="LineNr">2090 </span>    68/push  0/imm32/start
<span id="L2091" class="LineNr">2091 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2092" class="LineNr">2092 </span>    <span class="subxComment"># write(_test-input-stream, &quot; \&quot;a\\\&quot;b\&quot;/x&quot;)</span>
<span id="L2093" class="LineNr">2093 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2094" class="LineNr">2094 </span>    68/push  <span class="Constant">&quot; \&quot;</span>a\\\<span class="Constant">&quot;b\&quot;</span>/x&quot;/imm32
<span id="L2095" class="LineNr">2095 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2096" class="LineNr">2096 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2097" class="LineNr">2097 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L2098" class="LineNr">2098 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2099" class="LineNr">2099 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2100" class="LineNr">2100 </span>    <span class="subxComment"># next-word-or-expression(_test-input-stream, slice)</span>
<span id="L2101" class="LineNr">2101 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2102" class="LineNr">2102 </span>    51/push-ecx
<span id="L2103" class="LineNr">2103 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2104" class="LineNr">2104 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2105" class="LineNr">2105 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L2106" class="LineNr">2106 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2107" class="LineNr">2107 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2108" class="LineNr">2108 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;start - _test-input-stream-&gt;data, 1, msg)</span>
<span id="L2109" class="LineNr">2109 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;start - _test-input-stream, 13, msg)</span>
<span id="L2110" class="LineNr">2110 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2111" class="LineNr">2111 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2076'>test-next-word-or-expression-returns-string-with-escapes</a>: start&quot;</span>/imm32
<span id="L2112" class="LineNr">2112 </span>    68/push  0xd/imm32
<span id="L2113" class="LineNr">2113 </span>    <span class="subxS2Comment"># . . push slice-&gt;start - _test-input-stream</span>
<span id="L2114" class="LineNr">2114 </span>    8b/copy                         0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ecx to eax</span>
<span id="L2115" class="LineNr">2115 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L2116" class="LineNr">2116 </span>    50/push-eax
<span id="L2117" class="LineNr">2117 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2118" class="LineNr">2118 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2119" class="LineNr">2119 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2120" class="LineNr">2120 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2121" class="LineNr">2121 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;end - _test-input-stream-&gt;data, 9, msg)</span>
<span id="L2122" class="LineNr">2122 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;end - _test-input-stream, 21, msg)</span>
<span id="L2123" class="LineNr">2123 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2124" class="LineNr">2124 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2076'>test-next-word-or-expression-returns-string-with-escapes</a>: end&quot;</span>/imm32
<span id="L2125" class="LineNr">2125 </span>    68/push  0x15/imm32
<span id="L2126" class="LineNr">2126 </span>    <span class="subxS2Comment"># . . push slice-&gt;end - _test-input-stream</span>
<span id="L2127" class="LineNr">2127 </span>    8b/copy                         1/mod/*+disp8   1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ecx+4) to eax</span>
<span id="L2128" class="LineNr">2128 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L2129" class="LineNr">2129 </span>    50/push-eax
<span id="L2130" class="LineNr">2130 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2131" class="LineNr">2131 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2132" class="LineNr">2132 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2133" class="LineNr">2133 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2134" class="LineNr">2134 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2135" class="LineNr">2135 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2136" class="LineNr">2136 </span>    5d/pop-to-ebp
<span id="L2137" class="LineNr">2137 </span>    c3/return
<span id="L2138" class="LineNr">2138 </span>
<span id="L2139" class="LineNr">2139 </span><span class="subxTest">test-next-word-or-expression-returns-whole-expression</span>:
<span id="L2140" class="LineNr">2140 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2141" class="LineNr">2141 </span>    55/push-ebp
<span id="L2142" class="LineNr">2142 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2143" class="LineNr">2143 </span>    <span class="subxComment"># setup</span>
<span id="L2144" class="LineNr">2144 </span>    <span class="subxS1Comment"># . clear-stream(_test-input-stream)</span>
<span id="L2145" class="LineNr">2145 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2146" class="LineNr">2146 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2147" class="LineNr">2147 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2148" class="LineNr">2148 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L2149" class="LineNr">2149 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2150" class="LineNr">2150 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2151" class="LineNr">2151 </span>    <span class="subxComment"># var slice/ecx: slice</span>
<span id="L2152" class="LineNr">2152 </span>    68/push  0/imm32/end
<span id="L2153" class="LineNr">2153 </span>    68/push  0/imm32/start
<span id="L2154" class="LineNr">2154 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2155" class="LineNr">2155 </span>    <span class="subxComment"># write(_test-input-stream, &quot; *(a b)/imm32 &quot;)</span>
<span id="L2156" class="LineNr">2156 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2157" class="LineNr">2157 </span>    68/push  <span class="Constant">&quot; *(a b)/imm32 &quot;</span>/imm32
<span id="L2158" class="LineNr">2158 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2159" class="LineNr">2159 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2160" class="LineNr">2160 </span>    e8/call  <a href='../057write.subx.html#L24'>write</a>/disp32
<span id="L2161" class="LineNr">2161 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2162" class="LineNr">2162 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2163" class="LineNr">2163 </span>    <span class="subxComment"># next-word-or-expression(_test-input-stream, slice)</span>
<span id="L2164" class="LineNr">2164 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2165" class="LineNr">2165 </span>    51/push-ecx
<span id="L2166" class="LineNr">2166 </span>    68/push  <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32
<span id="L2167" class="LineNr">2167 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2168" class="LineNr">2168 </span>    e8/call  <a href='sigils.subx.html#L1602'>next-word-or-expression</a>/disp32
<span id="L2169" class="LineNr">2169 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2170" class="LineNr">2170 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2171" class="LineNr">2171 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;start - _test-input-stream-&gt;data, 1, msg)</span>
<span id="L2172" class="LineNr">2172 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;start - _test-input-stream, 13, msg)</span>
<span id="L2173" class="LineNr">2173 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2174" class="LineNr">2174 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2139'>test-next-word-or-expression-returns-whole-expression</a>: start&quot;</span>/imm32
<span id="L2175" class="LineNr">2175 </span>    68/push  0xd/imm32
<span id="L2176" class="LineNr">2176 </span>    <span class="subxS2Comment"># . . push slice-&gt;start - _test-input-stream</span>
<span id="L2177" class="LineNr">2177 </span>    8b/copy                         0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *ecx to eax</span>
<span id="L2178" class="LineNr">2178 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L2179" class="LineNr">2179 </span>    50/push-eax
<span id="L2180" class="LineNr">2180 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2181" class="LineNr">2181 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2182" class="LineNr">2182 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2183" class="LineNr">2183 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2184" class="LineNr">2184 </span>    <span class="subxComment"># check-ints-equal(slice-&gt;end - _test-input-stream-&gt;data, 13, msg)</span>
<span id="L2185" class="LineNr">2185 </span>    <span class="subxS1Comment"># . check-ints-equal(slice-&gt;end - _test-input-stream, 25, msg)</span>
<span id="L2186" class="LineNr">2186 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2187" class="LineNr">2187 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2139'>test-next-word-or-expression-returns-whole-expression</a>: end&quot;</span>/imm32
<span id="L2188" class="LineNr">2188 </span>    68/push  0x19/imm32
<span id="L2189" class="LineNr">2189 </span>    <span class="subxS2Comment"># . . push slice-&gt;end - _test-input-stream</span>
<span id="L2190" class="LineNr">2190 </span>    8b/copy                         1/mod/*+disp8   1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ecx+4) to eax</span>
<span id="L2191" class="LineNr">2191 </span>    81          5/subop/subtract    3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              <a href='../061read-byte.subx.html#L287'>_test-input-stream</a>/imm32 <span class="subxComment"># subtract from eax</span>
<span id="L2192" class="LineNr">2192 </span>    50/push-eax
<span id="L2193" class="LineNr">2193 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2194" class="LineNr">2194 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2195" class="LineNr">2195 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2196" class="LineNr">2196 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2197" class="LineNr">2197 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2198" class="LineNr">2198 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2199" class="LineNr">2199 </span>    5d/pop-to-ebp
<span id="L2200" class="LineNr">2200 </span>    c3/return
<span id="L2201" class="LineNr">2201 </span>
<span id="L2202" class="LineNr">2202 </span><span class="subxComment"># Grammar:</span>
<span id="L2203" class="LineNr">2203 </span><span class="subxComment">#   *reg                    -&gt; 0/mod reg/rm32</span>
<span id="L2204" class="LineNr">2204 </span><span class="subxComment">#   *(reg)                  -&gt; 0/mod reg/rm32</span>
<span id="L2205" class="LineNr">2205 </span><span class="subxComment">#   *(reg+disp)             -&gt; 2/mod reg/rm32 disp/disp32</span>
<span id="L2206" class="LineNr">2206 </span><span class="subxComment">#   *(reg1+reg2&lt;&lt;s)         -&gt; 2/mod 4/rm32 reg1/base reg2/index s/scale 0/disp32</span>
<span id="L2207" class="LineNr">2207 </span><span class="subxComment">#   *(reg1+reg2&lt;&lt;s+disp)    -&gt; 2/mod 4/rm32 reg1/base reg2/index s/scale disp/disp32</span>
<span id="L2208" class="LineNr">2208 </span><span class="subxComment"># Intermediate structure: base, index, scale, disp</span>
<span id="L2209" class="LineNr">2209 </span><span class="subxComment"># Default values: base: 0, index: 4 (none), scale: 0, disp: 0</span>
<span id="L2210" class="LineNr">2210 </span><span class="subxFunction">parse-effective-address</span>:  <span class="subxComment"># word-slice: (addr slice) -&gt; base/eax, index/ecx, scale/edx, disp/ebx</span>
<span id="L2211" class="LineNr">2211 </span>    <span class="subxComment"># pseudocode:</span>
<span id="L2212" class="LineNr">2212 </span>    <span class="subxComment">#   var local-slice = {word-slice-&gt;start, word-slice-&gt;end}</span>
<span id="L2213" class="LineNr">2213 </span>    <span class="subxComment">#   ++local-slice-&gt;start to skip '*'</span>
<span id="L2214" class="LineNr">2214 </span>    <span class="subxComment">#   initialize defaults: base=0, index=4, scale=0, disp=0</span>
<span id="L2215" class="LineNr">2215 </span>    <span class="subxComment">#   if (*local-slice-&gt;start != '(') {</span>
<span id="L2216" class="LineNr">2216 </span>    <span class="subxComment">#     local-slice = next-token-from-slice(local-slice-&gt;start, local-slice-&gt;end, &quot;/&quot;)</span>
<span id="L2217" class="LineNr">2217 </span>    <span class="subxComment">#     base = get-slice(Registers, local-slice, row-size=8)</span>
<span id="L2218" class="LineNr">2218 </span>    <span class="subxComment">#     return</span>
<span id="L2219" class="LineNr">2219 </span>    <span class="subxComment">#   }</span>
<span id="L2220" class="LineNr">2220 </span>    <span class="subxComment">#   # compound expressions</span>
<span id="L2221" class="LineNr">2221 </span>    <span class="subxComment">#   skip whitespace</span>
<span id="L2222" class="LineNr">2222 </span>    <span class="subxComment">#   read register into base</span>
<span id="L2223" class="LineNr">2223 </span>    <span class="subxComment">#   skip whitespace</span>
<span id="L2224" class="LineNr">2224 </span>    <span class="subxComment">#   if (*local-slice-&gt;start == ')') goto end</span>
<span id="L2225" class="LineNr">2225 </span>    <span class="subxComment">#   if (*local-slice-&gt;start == '-') goto displacement</span>
<span id="L2226" class="LineNr">2226 </span>    <span class="subxComment">#   if (*local-slice-&gt;start != '+') goto error1</span>
<span id="L2227" class="LineNr">2227 </span>    <span class="subxComment">#   ++local-slice-&gt;start to skip '+'</span>
<span id="L2228" class="LineNr">2228 </span>    <span class="subxComment">#   skip whitespace</span>
<span id="L2229" class="LineNr">2229 </span>    <span class="subxComment">#   if next 3 characters don't make a register, goto displacement</span>
<span id="L2230" class="LineNr">2230 </span>    <span class="subxComment">#   read register into index</span>
<span id="L2231" class="LineNr">2231 </span>    <span class="subxComment">#   skip whitespace</span>
<span id="L2232" class="LineNr">2232 </span>    <span class="subxComment">#   if (*local-slice-&gt;start == ')') goto end</span>
<span id="L2233" class="LineNr">2233 </span>    <span class="subxComment">#   if (*local-slice-&gt;start == '&lt;') {</span>
<span id="L2234" class="LineNr">2234 </span>    <span class="subxComment">#     ++local-slice-&gt;start to skip '&lt;'</span>
<span id="L2235" class="LineNr">2235 </span>    <span class="subxComment">#     if (*local-slice-&gt;start != '&lt;') goto error2</span>
<span id="L2236" class="LineNr">2236 </span>    <span class="subxComment">#     ++local-slice-&gt;start to skip '&lt;'</span>
<span id="L2237" class="LineNr">2237 </span>    <span class="subxComment">#     skip whitespace</span>
<span id="L2238" class="LineNr">2238 </span>    <span class="subxComment">#     read integer into scale</span>
<span id="L2239" class="LineNr">2239 </span>    <span class="subxComment">#     skip whitespace</span>
<span id="L2240" class="LineNr">2240 </span>    <span class="subxComment">#     if (*local-slice-&gt;start == ')') goto end</span>
<span id="L2241" class="LineNr">2241 </span>    <span class="subxComment">#   }</span>
<span id="L2242" class="LineNr">2242 </span>    <span class="subxComment">#   if (*local-slice-&gt;start not in '+' '-') goto error3</span>
<span id="L2243" class="LineNr">2243 </span>    <span class="subxComment"># displacement:</span>
<span id="L2244" class="LineNr">2244 </span>    <span class="subxComment">#   read integer into disp</span>
<span id="L2245" class="LineNr">2245 </span>    <span class="subxComment">#   skip whitespace</span>
<span id="L2246" class="LineNr">2246 </span>    <span class="subxComment">#   if (*local-slice-&gt;start != ')') goto error4</span>
<span id="L2247" class="LineNr">2247 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2248" class="LineNr">2248 </span>    55/push-ebp
<span id="L2249" class="LineNr">2249 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2250" class="LineNr">2250 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L2251" class="LineNr">2251 </span>    56/push-esi
<span id="L2252" class="LineNr">2252 </span>    57/push-edi
<span id="L2253" class="LineNr">2253 </span>    <span class="subxComment"># var local-slice/esi: slice = {word-slice-&gt;start, word-slice-&gt;end}</span>
<span id="L2254" class="LineNr">2254 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
<span id="L2255" class="LineNr">2255 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2256" class="LineNr">2256 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2257" class="LineNr">2257 </span>    89/copy                         3/mod/direct    6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to esi</span>
<span id="L2258" class="LineNr">2258 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '*'</span>
<span id="L2259" class="LineNr">2259 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L2260" class="LineNr">2260 </span>    <span class="subxComment"># initialize defaults</span>
<span id="L2261" class="LineNr">2261 </span>    <span class="subxComment"># base is in edi; we'll move it to eax just before we return</span>
<span id="L2262" class="LineNr">2262 </span>    bf/copy-to-edi  0/imm32
<span id="L2263" class="LineNr">2263 </span>    b9/copy-to-ecx  4/imm32/no-index
<span id="L2264" class="LineNr">2264 </span>    ba/copy-to-edx  0/imm32/.scale
<span id="L2265" class="LineNr">2265 </span>    bb/copy-to-ebx  0/imm32/disp
<span id="L2266" class="LineNr">2266 </span><span class="Constant">$parse-effective-address:check-for-simple-register</span>:
<span id="L2267" class="LineNr">2267 </span>    <span class="subxComment"># if (*local-slice-&gt;start == '(') goto compound expression</span>
<span id="L2268" class="LineNr">2268 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to eax</span>
<span id="L2269" class="LineNr">2269 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L2270" class="LineNr">2270 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L2271" class="LineNr">2271 </span>    3d/compare-eax-and  0x28/imm32/open-paren
<span id="L2272" class="LineNr">2272 </span>    74/jump-if-=  $parse-effective-address:compound-expression/disp8
<span id="L2273" class="LineNr">2273 </span><span class="Constant">$parse-effective-address:simple-register</span>:
<span id="L2274" class="LineNr">2274 </span>    <span class="subxComment"># local-slice = next-token-from-slice(local-slice-&gt;start, local-slice-&gt;end, &quot;/&quot;)</span>
<span id="L2275" class="LineNr">2275 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2276" class="LineNr">2276 </span>    56/push-esi
<span id="L2277" class="LineNr">2277 </span>    68/push  0x2f/imm32/slash
<span id="L2278" class="LineNr">2278 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2279" class="LineNr">2279 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2280" class="LineNr">2280 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2281" class="LineNr">2281 </span>    e8/call  <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32
<span id="L2282" class="LineNr">2282 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2283" class="LineNr">2283 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to esp</span>
<span id="L2284" class="LineNr">2284 </span>    <span class="subxComment"># base = get-slice(Registers, local-slice, row-size=8)</span>
<span id="L2285" class="LineNr">2285 </span>    <span class="subxS1Comment"># . eax = get-slice(Registers, local-slice, row-size=8)</span>
<span id="L2286" class="LineNr">2286 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2287" class="LineNr">2287 </span>    68/push  <span class="Constant">&quot;Registers&quot;</span>/imm32
<span id="L2288" class="LineNr">2288 </span>    68/push  8/imm32/row-size
<span id="L2289" class="LineNr">2289 </span>    56/push-esi
<span id="L2290" class="LineNr">2290 </span>    68/push  <span class="SpecialChar"><a href='../090register-names.subx.html#L2'>Registers</a></span>/imm32
<span id="L2291" class="LineNr">2291 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2292" class="LineNr">2292 </span>    e8/call  <a href='../081table.subx.html#L201'>get-slice</a>/disp32
<span id="L2293" class="LineNr">2293 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2294" class="LineNr">2294 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to esp</span>
<span id="L2295" class="LineNr">2295 </span>    <span class="subxS1Comment"># . base = *eax</span>
<span id="L2296" class="LineNr">2296 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edi</span>
<span id="L2297" class="LineNr">2297 </span>    <span class="subxComment"># return</span>
<span id="L2298" class="LineNr">2298 </span>    e9/jump  $parse-effective-address:end/disp32
<span id="L2299" class="LineNr">2299 </span><span class="Constant">$parse-effective-address:compound-expression</span>:
<span id="L2300" class="LineNr">2300 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '('</span>
<span id="L2301" class="LineNr">2301 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L2302" class="LineNr">2302 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2303" class="LineNr">2303 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2304" class="LineNr">2304 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2305" class="LineNr">2305 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2306" class="LineNr">2306 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2307" class="LineNr">2307 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2308" class="LineNr">2308 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2309" class="LineNr">2309 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2310" class="LineNr">2310 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2311" class="LineNr">2311 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2312" class="LineNr">2312 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2313" class="LineNr">2313 </span>    <span class="subxComment"># read register into base</span>
<span id="L2314" class="LineNr">2314 </span>    <span class="subxS1Comment"># . eax = next-register(local-slice)</span>
<span id="L2315" class="LineNr">2315 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2316" class="LineNr">2316 </span>    56/push-esi
<span id="L2317" class="LineNr">2317 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2318" class="LineNr">2318 </span>    e8/call  <a href='sigils.subx.html#L2673'>next-register</a>/disp32
<span id="L2319" class="LineNr">2319 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2320" class="LineNr">2320 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2321" class="LineNr">2321 </span>    <span class="subxS1Comment"># . edi = *eax</span>
<span id="L2322" class="LineNr">2322 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to edi</span>
<span id="L2323" class="LineNr">2323 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2324" class="LineNr">2324 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2325" class="LineNr">2325 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2326" class="LineNr">2326 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2327" class="LineNr">2327 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2328" class="LineNr">2328 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2329" class="LineNr">2329 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2330" class="LineNr">2330 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2331" class="LineNr">2331 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2332" class="LineNr">2332 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2333" class="LineNr">2333 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2334" class="LineNr">2334 </span>    <span class="subxComment"># if (*local-slice-&gt;start == ')') goto end</span>
<span id="L2335" class="LineNr">2335 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L2336" class="LineNr">2336 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L2337" class="LineNr">2337 </span>    3d/compare-eax-and  0x29/imm32/close-paren
<span id="L2338" class="LineNr">2338 </span>    0f 84/jump-if-=  $parse-effective-address:end/disp32
<span id="L2339" class="LineNr">2339 </span>    <span class="subxComment"># if (*local-slice-&gt;start == '-') goto displacement</span>
<span id="L2340" class="LineNr">2340 </span>    3d/compare-eax-and  0x2d/imm32/minus
<span id="L2341" class="LineNr">2341 </span>    0f 84/jump-if-=  $parse-effective-address:displacement/disp32
<span id="L2342" class="LineNr">2342 </span>    <span class="subxComment"># if (*local-slice-&gt;start != '+') goto error1</span>
<span id="L2343" class="LineNr">2343 </span>    3d/compare-eax-and  0x2b/imm32/plus
<span id="L2344" class="LineNr">2344 </span>    0f 85/jump-if-!=  $parse-effective-address:error1/disp32
<span id="L2345" class="LineNr">2345 </span><span class="Constant">$parse-effective-address:check-for-index</span>:
<span id="L2346" class="LineNr">2346 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '+'</span>
<span id="L2347" class="LineNr">2347 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L2348" class="LineNr">2348 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2349" class="LineNr">2349 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2350" class="LineNr">2350 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2351" class="LineNr">2351 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2352" class="LineNr">2352 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2353" class="LineNr">2353 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2354" class="LineNr">2354 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2355" class="LineNr">2355 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2356" class="LineNr">2356 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2357" class="LineNr">2357 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2358" class="LineNr">2358 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2359" class="LineNr">2359 </span><span class="Constant">$parse-effective-address:resolve-ambiguity</span>:
<span id="L2360" class="LineNr">2360 </span>    <span class="subxComment"># if next 3 characters don't make a register, goto displacement</span>
<span id="L2361" class="LineNr">2361 </span>    <span class="subxS1Comment"># . spill ecx</span>
<span id="L2362" class="LineNr">2362 </span>    51/push-ecx
<span id="L2363" class="LineNr">2363 </span>    <span class="subxS1Comment"># . var tmp/ecx = {local-slice-&gt;start, local-slice-&gt;start+3}</span>
<span id="L2364" class="LineNr">2364 </span>    <span class="subxS2Comment"># . . ecx = local-slice-&gt;start</span>
<span id="L2365" class="LineNr">2365 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to ecx</span>
<span id="L2366" class="LineNr">2366 </span>    <span class="subxS2Comment"># . . eax = local-slice-&gt;start+3</span>
<span id="L2367" class="LineNr">2367 </span>    05/add-to-eax  3/imm32
<span id="L2368" class="LineNr">2368 </span>    <span class="subxS2Comment"># . . push</span>
<span id="L2369" class="LineNr">2369 </span>    50/push-eax
<span id="L2370" class="LineNr">2370 </span>    51/push-ecx
<span id="L2371" class="LineNr">2371 </span>    <span class="subxS2Comment"># . . copy esp to ecx</span>
<span id="L2372" class="LineNr">2372 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2373" class="LineNr">2373 </span>    <span class="subxS1Comment"># . eax = maybe-get-slice(Register, tmp, row-size=8)</span>
<span id="L2374" class="LineNr">2374 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2375" class="LineNr">2375 </span>    68/push  8/imm32/row-size
<span id="L2376" class="LineNr">2376 </span>    51/push-ecx
<span id="L2377" class="LineNr">2377 </span>    68/push  <span class="SpecialChar"><a href='../090register-names.subx.html#L2'>Registers</a></span>/imm32
<span id="L2378" class="LineNr">2378 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2379" class="LineNr">2379 </span>    e8/call  <a href='../081table.subx.html#L1529'>maybe-get-slice</a>/disp32
<span id="L2380" class="LineNr">2380 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2381" class="LineNr">2381 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2382" class="LineNr">2382 </span>    <span class="subxS1Comment"># . reclaim tmp</span>
<span id="L2383" class="LineNr">2383 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2384" class="LineNr">2384 </span>    <span class="subxS1Comment"># . restore ecx</span>
<span id="L2385" class="LineNr">2385 </span>    59/pop-to-ecx
<span id="L2386" class="LineNr">2386 </span>    <span class="subxS1Comment"># . if (eax == 0) goto displacement</span>
<span id="L2387" class="LineNr">2387 </span>    3d/compare-eax-and  0/imm32
<span id="L2388" class="LineNr">2388 </span>    0f 84/jump-if-=  $parse-effective-address:displacement/disp32
<span id="L2389" class="LineNr">2389 </span><span class="Constant">$parse-effective-address:index</span>:
<span id="L2390" class="LineNr">2390 </span>    <span class="subxComment"># read register into index</span>
<span id="L2391" class="LineNr">2391 </span>    <span class="subxS1Comment"># . eax = next-register(local-slice)</span>
<span id="L2392" class="LineNr">2392 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2393" class="LineNr">2393 </span>    56/push-esi
<span id="L2394" class="LineNr">2394 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2395" class="LineNr">2395 </span>    e8/call  <a href='sigils.subx.html#L2673'>next-register</a>/disp32
<span id="L2396" class="LineNr">2396 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2397" class="LineNr">2397 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2398" class="LineNr">2398 </span>    <span class="subxS1Comment"># . ecx = *eax</span>
<span id="L2399" class="LineNr">2399 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L2400" class="LineNr">2400 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2401" class="LineNr">2401 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2402" class="LineNr">2402 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2403" class="LineNr">2403 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2404" class="LineNr">2404 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2405" class="LineNr">2405 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2406" class="LineNr">2406 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2407" class="LineNr">2407 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2408" class="LineNr">2408 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2409" class="LineNr">2409 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2410" class="LineNr">2410 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2411" class="LineNr">2411 </span>    <span class="subxComment"># if (*local-slice-&gt;start == ')') goto end</span>
<span id="L2412" class="LineNr">2412 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L2413" class="LineNr">2413 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L2414" class="LineNr">2414 </span>    3d/compare-eax-and  0x29/imm32/close-paren
<span id="L2415" class="LineNr">2415 </span>    0f 84/jump-if-=  $parse-effective-address:end/disp32
<span id="L2416" class="LineNr">2416 </span><span class="Constant">$parse-effective-address:check-for-scale</span>:
<span id="L2417" class="LineNr">2417 </span>    <span class="subxComment"># if (*local-slice-&gt;start != '&lt;') goto next check</span>
<span id="L2418" class="LineNr">2418 </span>    3d/compare-eax-and  0x3c/imm32/less-than
<span id="L2419" class="LineNr">2419 </span>    75/jump-if-!=  $parse-effective-address:check-for-displacement/disp8
<span id="L2420" class="LineNr">2420 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '&lt;'</span>
<span id="L2421" class="LineNr">2421 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L2422" class="LineNr">2422 </span>    <span class="subxComment"># if (*local-slice-&gt;start != '&lt;') goto error2</span>
<span id="L2423" class="LineNr">2423 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to eax</span>
<span id="L2424" class="LineNr">2424 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L2425" class="LineNr">2425 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L2426" class="LineNr">2426 </span>    3d/compare-eax-and  0x3c/imm32/less-than
<span id="L2427" class="LineNr">2427 </span>    0f 85/jump-if-!=  $parse-effective-address:error2/disp32
<span id="L2428" class="LineNr">2428 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '&lt;'</span>
<span id="L2429" class="LineNr">2429 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L2430" class="LineNr">2430 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2431" class="LineNr">2431 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2432" class="LineNr">2432 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2433" class="LineNr">2433 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2434" class="LineNr">2434 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2435" class="LineNr">2435 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2436" class="LineNr">2436 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2437" class="LineNr">2437 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2438" class="LineNr">2438 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2439" class="LineNr">2439 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2440" class="LineNr">2440 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2441" class="LineNr">2441 </span><span class="Constant">$parse-effective-address:scale</span>:
<span id="L2442" class="LineNr">2442 </span>    <span class="subxComment"># read positive integer into scale</span>
<span id="L2443" class="LineNr">2443 </span>    <span class="subxS1Comment"># . eax = next-positive-hex-int(local-slice)</span>
<span id="L2444" class="LineNr">2444 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2445" class="LineNr">2445 </span>    56/push-esi
<span id="L2446" class="LineNr">2446 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2447" class="LineNr">2447 </span>    e8/call  <a href='sigils.subx.html#L4385'>next-positive-hex-int</a>/disp32
<span id="L2448" class="LineNr">2448 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2449" class="LineNr">2449 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2450" class="LineNr">2450 </span>    <span class="subxS1Comment"># . edx = eax</span>
<span id="L2451" class="LineNr">2451 </span>    89/copy                         3/mod/direct    2/rm32/edx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to edx</span>
<span id="L2452" class="LineNr">2452 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2453" class="LineNr">2453 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2454" class="LineNr">2454 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2455" class="LineNr">2455 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2456" class="LineNr">2456 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2457" class="LineNr">2457 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2458" class="LineNr">2458 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2459" class="LineNr">2459 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2460" class="LineNr">2460 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2461" class="LineNr">2461 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2462" class="LineNr">2462 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2463" class="LineNr">2463 </span>    <span class="subxComment"># if (*local-slice-&gt;start == ')') goto end</span>
<span id="L2464" class="LineNr">2464 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L2465" class="LineNr">2465 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L2466" class="LineNr">2466 </span>    3d/compare-eax-and  0x29/imm32/close-paren
<span id="L2467" class="LineNr">2467 </span>    74/jump-if-=  $parse-effective-address:end/disp8
<span id="L2468" class="LineNr">2468 </span><span class="Constant">$parse-effective-address:check-for-displacement</span>:
<span id="L2469" class="LineNr">2469 </span>    <span class="subxComment"># if (*local-slice-&gt;start not in '+' '-') goto error3</span>
<span id="L2470" class="LineNr">2470 </span>    3d/compare-eax-and  0x2b/imm32/plus
<span id="L2471" class="LineNr">2471 </span>    74/jump-if-=  $parse-effective-address:displacement/disp8
<span id="L2472" class="LineNr">2472 </span>    3d/compare-eax-and  0x2d/imm32/minus
<span id="L2473" class="LineNr">2473 </span>    74/jump-if-=  $parse-effective-address:displacement/disp8
<span id="L2474" class="LineNr">2474 </span>    e9/jump  $parse-effective-address:error3/disp32
<span id="L2475" class="LineNr">2475 </span><span class="Constant">$parse-effective-address:displacement</span>:
<span id="L2476" class="LineNr">2476 </span>    <span class="subxComment"># read integer into disp</span>
<span id="L2477" class="LineNr">2477 </span>    <span class="subxS1Comment"># . eax = next-hex-int(local-slice)</span>
<span id="L2478" class="LineNr">2478 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2479" class="LineNr">2479 </span>    56/push-esi
<span id="L2480" class="LineNr">2480 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2481" class="LineNr">2481 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L2482" class="LineNr">2482 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2483" class="LineNr">2483 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2484" class="LineNr">2484 </span>    <span class="subxS1Comment"># . ebx = eax</span>
<span id="L2485" class="LineNr">2485 </span>    89/copy                         3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to ebx</span>
<span id="L2486" class="LineNr">2486 </span>    <span class="subxComment"># skip whitespace</span>
<span id="L2487" class="LineNr">2487 </span>    <span class="subxS1Comment"># . eax = skip-chars-matching-whitespace-in-slice(local-slice-&gt;start, local-slice-&gt;end)</span>
<span id="L2488" class="LineNr">2488 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2489" class="LineNr">2489 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L2490" class="LineNr">2490 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2491" class="LineNr">2491 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2492" class="LineNr">2492 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L2493" class="LineNr">2493 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2494" class="LineNr">2494 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2495" class="LineNr">2495 </span>    <span class="subxS1Comment"># . local-slice-&gt;start = eax</span>
<span id="L2496" class="LineNr">2496 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to *esi</span>
<span id="L2497" class="LineNr">2497 </span>    <span class="subxComment"># if (*local-slice-&gt;start != ')') goto error4</span>
<span id="L2498" class="LineNr">2498 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L2499" class="LineNr">2499 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L2500" class="LineNr">2500 </span>    3d/compare-eax-and  0x29/imm32/close-paren
<span id="L2501" class="LineNr">2501 </span>    0f 85/jump-if-!=  $parse-effective-address:error4/disp32
<span id="L2502" class="LineNr">2502 </span><span class="Constant">$parse-effective-address:end</span>:
<span id="L2503" class="LineNr">2503 </span>    <span class="subxComment"># return base in eax</span>
<span id="L2504" class="LineNr">2504 </span>    89/copy                         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy edi to eax</span>
<span id="L2505" class="LineNr">2505 </span>    <span class="subxS1Comment"># . reclaim locals</span>
<span id="L2506" class="LineNr">2506 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2507" class="LineNr">2507 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L2508" class="LineNr">2508 </span>    5f/pop-to-edi
<span id="L2509" class="LineNr">2509 </span>    5e/pop-to-esi
<span id="L2510" class="LineNr">2510 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2511" class="LineNr">2511 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2512" class="LineNr">2512 </span>    5d/pop-to-ebp
<span id="L2513" class="LineNr">2513 </span>    c3/return
<span id="L2514" class="LineNr">2514 </span>
<span id="L2515" class="LineNr">2515 </span><span class="Constant">$parse-effective-address:error1</span>:
<span id="L2516" class="LineNr">2516 </span>    <span class="subxComment"># print(stderr, &quot;error: unexpected character: &quot; eax &quot;\n&quot;)</span>
<span id="L2517" class="LineNr">2517 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: unexpected character: &quot;)</span>
<span id="L2518" class="LineNr">2518 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2519" class="LineNr">2519 </span>    68/push  <span class="Constant">&quot;error: unexpected character: &quot;</span>/imm32
<span id="L2520" class="LineNr">2520 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2521" class="LineNr">2521 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2522" class="LineNr">2522 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2523" class="LineNr">2523 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2524" class="LineNr">2524 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2525" class="LineNr">2525 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, eax)</span>
<span id="L2526" class="LineNr">2526 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2527" class="LineNr">2527 </span>    50/push-eax
<span id="L2528" class="LineNr">2528 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2529" class="LineNr">2529 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2530" class="LineNr">2530 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L2531" class="LineNr">2531 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2532" class="LineNr">2532 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2533" class="LineNr">2533 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;\n&quot;)</span>
<span id="L2534" class="LineNr">2534 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2535" class="LineNr">2535 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
<span id="L2536" class="LineNr">2536 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2537" class="LineNr">2537 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2538" class="LineNr">2538 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2539" class="LineNr">2539 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2540" class="LineNr">2540 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2541" class="LineNr">2541 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L2542" class="LineNr">2542 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2543" class="LineNr">2543 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2544" class="LineNr">2544 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2545" class="LineNr">2545 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L2546" class="LineNr">2546 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2547" class="LineNr">2547 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2548" class="LineNr">2548 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L2549" class="LineNr">2549 </span>    bb/copy-to-ebx  1/imm32
<span id="L2550" class="LineNr">2550 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L2551" class="LineNr">2551 </span>    cd/syscall  0x80/imm8
<span id="L2552" class="LineNr">2552 </span>    <span class="subxComment"># never gets here</span>
<span id="L2553" class="LineNr">2553 </span>
<span id="L2554" class="LineNr">2554 </span><span class="Constant">$parse-effective-address:error2</span>:
<span id="L2555" class="LineNr">2555 </span>    <span class="subxComment"># print(stderr, &quot;error: '&lt;' can only be followed by '&lt;' but got: &quot; eax &quot;\n&quot;)</span>
<span id="L2556" class="LineNr">2556 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: '&lt;' can only be followed by '&lt;' but got: &quot;)</span>
<span id="L2557" class="LineNr">2557 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2558" class="LineNr">2558 </span>    68/push  <span class="Constant">&quot;error: '&lt;' can only be followed by '&lt;' but got: &quot;</span>/imm32
<span id="L2559" class="LineNr">2559 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2560" class="LineNr">2560 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2561" class="LineNr">2561 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2562" class="LineNr">2562 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2563" class="LineNr">2563 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2564" class="LineNr">2564 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, eax)</span>
<span id="L2565" class="LineNr">2565 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2566" class="LineNr">2566 </span>    50/push-eax
<span id="L2567" class="LineNr">2567 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2568" class="LineNr">2568 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2569" class="LineNr">2569 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L2570" class="LineNr">2570 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2571" class="LineNr">2571 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2572" class="LineNr">2572 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;\n&quot;)</span>
<span id="L2573" class="LineNr">2573 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2574" class="LineNr">2574 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
<span id="L2575" class="LineNr">2575 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2576" class="LineNr">2576 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2577" class="LineNr">2577 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2578" class="LineNr">2578 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2579" class="LineNr">2579 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2580" class="LineNr">2580 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L2581" class="LineNr">2581 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2582" class="LineNr">2582 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2583" class="LineNr">2583 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2584" class="LineNr">2584 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L2585" class="LineNr">2585 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2586" class="LineNr">2586 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2587" class="LineNr">2587 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L2588" class="LineNr">2588 </span>    bb/copy-to-ebx  1/imm32
<span id="L2589" class="LineNr">2589 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L2590" class="LineNr">2590 </span>    cd/syscall  0x80/imm8
<span id="L2591" class="LineNr">2591 </span>    <span class="subxComment"># never gets here</span>
<span id="L2592" class="LineNr">2592 </span>
<span id="L2593" class="LineNr">2593 </span><span class="Constant">$parse-effective-address:error3</span>:
<span id="L2594" class="LineNr">2594 </span>    <span class="subxComment"># print(stderr, &quot;error: unexpected character before displacement: &quot; eax &quot;\n&quot;)</span>
<span id="L2595" class="LineNr">2595 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: unexpected character before displacement: &quot;)</span>
<span id="L2596" class="LineNr">2596 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2597" class="LineNr">2597 </span>    68/push  <span class="Constant">&quot;error: unexpected character before displacement: &quot;</span>/imm32
<span id="L2598" class="LineNr">2598 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2599" class="LineNr">2599 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2600" class="LineNr">2600 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2601" class="LineNr">2601 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2602" class="LineNr">2602 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2603" class="LineNr">2603 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, eax)</span>
<span id="L2604" class="LineNr">2604 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2605" class="LineNr">2605 </span>    50/push-eax
<span id="L2606" class="LineNr">2606 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2607" class="LineNr">2607 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2608" class="LineNr">2608 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L2609" class="LineNr">2609 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2610" class="LineNr">2610 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2611" class="LineNr">2611 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;\n&quot;)</span>
<span id="L2612" class="LineNr">2612 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2613" class="LineNr">2613 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
<span id="L2614" class="LineNr">2614 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2615" class="LineNr">2615 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2616" class="LineNr">2616 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2617" class="LineNr">2617 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2618" class="LineNr">2618 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2619" class="LineNr">2619 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L2620" class="LineNr">2620 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2621" class="LineNr">2621 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2622" class="LineNr">2622 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2623" class="LineNr">2623 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L2624" class="LineNr">2624 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2625" class="LineNr">2625 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2626" class="LineNr">2626 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L2627" class="LineNr">2627 </span>    bb/copy-to-ebx  1/imm32
<span id="L2628" class="LineNr">2628 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L2629" class="LineNr">2629 </span>    cd/syscall  0x80/imm8
<span id="L2630" class="LineNr">2630 </span>    <span class="subxComment"># never gets here</span>
<span id="L2631" class="LineNr">2631 </span>
<span id="L2632" class="LineNr">2632 </span><span class="Constant">$parse-effective-address:error4</span>:
<span id="L2633" class="LineNr">2633 </span>    <span class="subxComment"># print(stderr, &quot;error: unexpected character after displacement: &quot; eax &quot;; expected ')' to wrap up\n&quot;)</span>
<span id="L2634" class="LineNr">2634 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;error: unexpected character after displacement: &quot;)</span>
<span id="L2635" class="LineNr">2635 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2636" class="LineNr">2636 </span>    68/push  <span class="Constant">&quot;error: unexpected character after displacement: &quot;</span>/imm32
<span id="L2637" class="LineNr">2637 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2638" class="LineNr">2638 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2639" class="LineNr">2639 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2640" class="LineNr">2640 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2641" class="LineNr">2641 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2642" class="LineNr">2642 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, eax)</span>
<span id="L2643" class="LineNr">2643 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2644" class="LineNr">2644 </span>    50/push-eax
<span id="L2645" class="LineNr">2645 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2646" class="LineNr">2646 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2647" class="LineNr">2647 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L2648" class="LineNr">2648 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2649" class="LineNr">2649 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2650" class="LineNr">2650 </span>    <span class="subxS1Comment"># . write-buffered(Stderr, &quot;; expected ')' to wrap up\n&quot;)</span>
<span id="L2651" class="LineNr">2651 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2652" class="LineNr">2652 </span>    68/push  <span class="Constant">&quot;; expected ')' to wrap up\n&quot;</span>/imm32
<span id="L2653" class="LineNr">2653 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2654" class="LineNr">2654 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2655" class="LineNr">2655 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L2656" class="LineNr">2656 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2657" class="LineNr">2657 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2658" class="LineNr">2658 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L2659" class="LineNr">2659 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2660" class="LineNr">2660 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L2661" class="LineNr">2661 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2662" class="LineNr">2662 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L2663" class="LineNr">2663 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2664" class="LineNr">2664 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2665" class="LineNr">2665 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L2666" class="LineNr">2666 </span>    bb/copy-to-ebx  1/imm32
<span id="L2667" class="LineNr">2667 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L2668" class="LineNr">2668 </span>    cd/syscall  0x80/imm8
<span id="L2669" class="LineNr">2669 </span>    <span class="subxComment"># never gets here</span>
<span id="L2670" class="LineNr">2670 </span>
<span id="L2671" class="LineNr">2671 </span><span class="subxComment"># assumes 'in' starts with a register name, and returns pointer to its code</span>
<span id="L2672" class="LineNr">2672 </span><span class="subxComment"># side-effect: modifies 'in' to scan past the initial register name</span>
<span id="L2673" class="LineNr">2673 </span><span class="subxFunction">next-register</span>:  <span class="subxComment"># in: (addr slice) -&gt; reg/eax: int</span>
<span id="L2674" class="LineNr">2674 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2675" class="LineNr">2675 </span>    55/push-ebp
<span id="L2676" class="LineNr">2676 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2677" class="LineNr">2677 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L2678" class="LineNr">2678 </span>    51/push-ecx
<span id="L2679" class="LineNr">2679 </span>    56/push-esi
<span id="L2680" class="LineNr">2680 </span>    <span class="subxComment"># esi = in</span>
<span id="L2681" class="LineNr">2681 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
<span id="L2682" class="LineNr">2682 </span>    <span class="subxComment"># var reg-slice/ecx: slice = {in-&gt;start, in-&gt;start + 3}</span>
<span id="L2683" class="LineNr">2683 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to eax</span>
<span id="L2684" class="LineNr">2684 </span>    05/add-to-eax  3/imm32
<span id="L2685" class="LineNr">2685 </span>    50/push-eax
<span id="L2686" class="LineNr">2686 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L2687" class="LineNr">2687 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2688" class="LineNr">2688 </span>    <span class="subxComment"># in-&gt;start += 3</span>
<span id="L2689" class="LineNr">2689 </span>    81          0/subop/add         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              3/imm32           <span class="subxComment"># add to *esi</span>
<span id="L2690" class="LineNr">2690 </span>    <span class="subxComment"># eax = get-slice(Registers, reg-slice, row-size=8)</span>
<span id="L2691" class="LineNr">2691 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2692" class="LineNr">2692 </span>    68/push  <span class="Constant">&quot;next-register&quot;</span>/imm32
<span id="L2693" class="LineNr">2693 </span>    68/push  8/imm32/row-size
<span id="L2694" class="LineNr">2694 </span>    51/push-ecx
<span id="L2695" class="LineNr">2695 </span>    68/push  <span class="SpecialChar"><a href='../090register-names.subx.html#L2'>Registers</a></span>/imm32
<span id="L2696" class="LineNr">2696 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2697" class="LineNr">2697 </span>    e8/call  <a href='../081table.subx.html#L201'>get-slice</a>/disp32
<span id="L2698" class="LineNr">2698 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2699" class="LineNr">2699 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to esp</span>
<span id="L2700" class="LineNr">2700 </span><span class="Constant">$next-register:end</span>:
<span id="L2701" class="LineNr">2701 </span>    <span class="subxS1Comment"># . reclaim locals</span>
<span id="L2702" class="LineNr">2702 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L2703" class="LineNr">2703 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L2704" class="LineNr">2704 </span>    5e/pop-to-esi
<span id="L2705" class="LineNr">2705 </span>    59/pop-to-ecx
<span id="L2706" class="LineNr">2706 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2707" class="LineNr">2707 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2708" class="LineNr">2708 </span>    5d/pop-to-ebp
<span id="L2709" class="LineNr">2709 </span>    c3/return
<span id="L2710" class="LineNr">2710 </span>
<span id="L2711" class="LineNr">2711 </span><span class="subxTest">test-parse-effective-address-simple</span>:
<span id="L2712" class="LineNr">2712 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2713" class="LineNr">2713 </span>    55/push-ebp
<span id="L2714" class="LineNr">2714 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2715" class="LineNr">2715 </span>    <span class="subxComment"># var slice/ecx = &quot;*esi&quot;</span>
<span id="L2716" class="LineNr">2716 </span>    b8/copy-to-eax  <span class="Constant">&quot;*esi&quot;</span>/imm32
<span id="L2717" class="LineNr">2717 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L2718" class="LineNr">2718 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L2719" class="LineNr">2719 </span>    05/add-to-eax  4/imm32
<span id="L2720" class="LineNr">2720 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L2721" class="LineNr">2721 </span>    51/push-ecx
<span id="L2722" class="LineNr">2722 </span>    50/push-eax
<span id="L2723" class="LineNr">2723 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2724" class="LineNr">2724 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L2725" class="LineNr">2725 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2726" class="LineNr">2726 </span>    51/push-ecx
<span id="L2727" class="LineNr">2727 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2728" class="LineNr">2728 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L2729" class="LineNr">2729 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2730" class="LineNr">2730 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2731" class="LineNr">2731 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L2732" class="LineNr">2732 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L2733" class="LineNr">2733 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2734" class="LineNr">2734 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2711'>test-parse-effective-address-simple</a>/base&quot;</span>/imm32
<span id="L2735" class="LineNr">2735 </span>    68/push  6/imm32/esi
<span id="L2736" class="LineNr">2736 </span>    50/push-eax
<span id="L2737" class="LineNr">2737 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2738" class="LineNr">2738 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2739" class="LineNr">2739 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2740" class="LineNr">2740 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2741" class="LineNr">2741 </span>    <span class="subxComment"># check-ints-equal(ecx, 4, msg)</span>
<span id="L2742" class="LineNr">2742 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2743" class="LineNr">2743 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2711'>test-parse-effective-address-simple</a>/index&quot;</span>/imm32
<span id="L2744" class="LineNr">2744 </span>    68/push  4/imm32/none
<span id="L2745" class="LineNr">2745 </span>    51/push-ecx
<span id="L2746" class="LineNr">2746 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2747" class="LineNr">2747 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2748" class="LineNr">2748 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2749" class="LineNr">2749 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2750" class="LineNr">2750 </span>    <span class="subxComment"># check-ints-equal(edx, 0, msg)</span>
<span id="L2751" class="LineNr">2751 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2752" class="LineNr">2752 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2711'>test-parse-effective-address-simple</a>/scale&quot;</span>/imm32
<span id="L2753" class="LineNr">2753 </span>    68/push  0/imm32/none
<span id="L2754" class="LineNr">2754 </span>    52/push-edx
<span id="L2755" class="LineNr">2755 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2756" class="LineNr">2756 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2757" class="LineNr">2757 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2758" class="LineNr">2758 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2759" class="LineNr">2759 </span>    <span class="subxComment"># check-ints-equal(ebx, 0, msg)</span>
<span id="L2760" class="LineNr">2760 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2761" class="LineNr">2761 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2711'>test-parse-effective-address-simple</a>/displacement&quot;</span>/imm32
<span id="L2762" class="LineNr">2762 </span>    68/push  0/imm32/none
<span id="L2763" class="LineNr">2763 </span>    53/push-ebx
<span id="L2764" class="LineNr">2764 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2765" class="LineNr">2765 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2766" class="LineNr">2766 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2767" class="LineNr">2767 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2768" class="LineNr">2768 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2769" class="LineNr">2769 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2770" class="LineNr">2770 </span>    5d/pop-to-ebp
<span id="L2771" class="LineNr">2771 </span>    c3/return
<span id="L2772" class="LineNr">2772 </span>
<span id="L2773" class="LineNr">2773 </span><span class="subxTest">test-parse-effective-address-base</span>:
<span id="L2774" class="LineNr">2774 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2775" class="LineNr">2775 </span>    55/push-ebp
<span id="L2776" class="LineNr">2776 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2777" class="LineNr">2777 </span>    <span class="subxComment"># var slice/ecx = &quot;*(esi  )&quot;</span>
<span id="L2778" class="LineNr">2778 </span>    b8/copy-to-eax  <span class="Constant">&quot;*(esi  )&quot;</span>/imm32
<span id="L2779" class="LineNr">2779 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L2780" class="LineNr">2780 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L2781" class="LineNr">2781 </span>    05/add-to-eax  4/imm32
<span id="L2782" class="LineNr">2782 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L2783" class="LineNr">2783 </span>    51/push-ecx
<span id="L2784" class="LineNr">2784 </span>    50/push-eax
<span id="L2785" class="LineNr">2785 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2786" class="LineNr">2786 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L2787" class="LineNr">2787 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2788" class="LineNr">2788 </span>    51/push-ecx
<span id="L2789" class="LineNr">2789 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2790" class="LineNr">2790 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L2791" class="LineNr">2791 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2792" class="LineNr">2792 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2793" class="LineNr">2793 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L2794" class="LineNr">2794 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L2795" class="LineNr">2795 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2796" class="LineNr">2796 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2773'>test-parse-effective-address-base</a>/base&quot;</span>/imm32
<span id="L2797" class="LineNr">2797 </span>    68/push  6/imm32/esi
<span id="L2798" class="LineNr">2798 </span>    50/push-eax
<span id="L2799" class="LineNr">2799 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2800" class="LineNr">2800 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2801" class="LineNr">2801 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2802" class="LineNr">2802 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2803" class="LineNr">2803 </span>    <span class="subxComment"># check-ints-equal(ecx, 4, msg)</span>
<span id="L2804" class="LineNr">2804 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2805" class="LineNr">2805 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2773'>test-parse-effective-address-base</a>/index&quot;</span>/imm32
<span id="L2806" class="LineNr">2806 </span>    68/push  4/imm32/none
<span id="L2807" class="LineNr">2807 </span>    51/push-ecx
<span id="L2808" class="LineNr">2808 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2809" class="LineNr">2809 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2810" class="LineNr">2810 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2811" class="LineNr">2811 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2812" class="LineNr">2812 </span>    <span class="subxComment"># check-ints-equal(edx, 0, msg)</span>
<span id="L2813" class="LineNr">2813 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2814" class="LineNr">2814 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2773'>test-parse-effective-address-base</a>/scale&quot;</span>/imm32
<span id="L2815" class="LineNr">2815 </span>    68/push  0/imm32/none
<span id="L2816" class="LineNr">2816 </span>    52/push-edx
<span id="L2817" class="LineNr">2817 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2818" class="LineNr">2818 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2819" class="LineNr">2819 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2820" class="LineNr">2820 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2821" class="LineNr">2821 </span>    <span class="subxComment"># check-ints-equal(ebx, 0, msg)</span>
<span id="L2822" class="LineNr">2822 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2823" class="LineNr">2823 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2773'>test-parse-effective-address-base</a>/displacement&quot;</span>/imm32
<span id="L2824" class="LineNr">2824 </span>    68/push  0/imm32/none
<span id="L2825" class="LineNr">2825 </span>    53/push-ebx
<span id="L2826" class="LineNr">2826 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2827" class="LineNr">2827 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2828" class="LineNr">2828 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2829" class="LineNr">2829 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2830" class="LineNr">2830 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2831" class="LineNr">2831 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2832" class="LineNr">2832 </span>    5d/pop-to-ebp
<span id="L2833" class="LineNr">2833 </span>    c3/return
<span id="L2834" class="LineNr">2834 </span>
<span id="L2835" class="LineNr">2835 </span><span class="subxTest">test-parse-effective-address-base-displacement</span>:
<span id="L2836" class="LineNr">2836 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2837" class="LineNr">2837 </span>    55/push-ebp
<span id="L2838" class="LineNr">2838 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2839" class="LineNr">2839 </span>    <span class="subxComment"># var slice/ecx = &quot;*(esi+3)&quot;</span>
<span id="L2840" class="LineNr">2840 </span>    b8/copy-to-eax  <span class="Constant">&quot;*(esi+3)&quot;</span>/imm32
<span id="L2841" class="LineNr">2841 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L2842" class="LineNr">2842 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L2843" class="LineNr">2843 </span>    05/add-to-eax  4/imm32
<span id="L2844" class="LineNr">2844 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L2845" class="LineNr">2845 </span>    51/push-ecx
<span id="L2846" class="LineNr">2846 </span>    50/push-eax
<span id="L2847" class="LineNr">2847 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2848" class="LineNr">2848 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L2849" class="LineNr">2849 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2850" class="LineNr">2850 </span>    51/push-ecx
<span id="L2851" class="LineNr">2851 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2852" class="LineNr">2852 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L2853" class="LineNr">2853 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2854" class="LineNr">2854 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2855" class="LineNr">2855 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L2856" class="LineNr">2856 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L2857" class="LineNr">2857 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2858" class="LineNr">2858 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2835'>test-parse-effective-address-base-displacement</a>/base&quot;</span>/imm32
<span id="L2859" class="LineNr">2859 </span>    68/push  6/imm32/esi
<span id="L2860" class="LineNr">2860 </span>    50/push-eax
<span id="L2861" class="LineNr">2861 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2862" class="LineNr">2862 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2863" class="LineNr">2863 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2864" class="LineNr">2864 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2865" class="LineNr">2865 </span>    <span class="subxComment"># check-ints-equal(ecx, 4, msg)</span>
<span id="L2866" class="LineNr">2866 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2867" class="LineNr">2867 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2835'>test-parse-effective-address-base-displacement</a>/index&quot;</span>/imm32
<span id="L2868" class="LineNr">2868 </span>    68/push  4/imm32/none
<span id="L2869" class="LineNr">2869 </span>    51/push-ecx
<span id="L2870" class="LineNr">2870 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2871" class="LineNr">2871 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2872" class="LineNr">2872 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2873" class="LineNr">2873 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2874" class="LineNr">2874 </span>    <span class="subxComment"># check-ints-equal(edx, 0, msg)</span>
<span id="L2875" class="LineNr">2875 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2876" class="LineNr">2876 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2835'>test-parse-effective-address-base-displacement</a>/scale&quot;</span>/imm32
<span id="L2877" class="LineNr">2877 </span>    68/push  0/imm32/none
<span id="L2878" class="LineNr">2878 </span>    52/push-edx
<span id="L2879" class="LineNr">2879 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2880" class="LineNr">2880 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2881" class="LineNr">2881 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2882" class="LineNr">2882 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2883" class="LineNr">2883 </span>    <span class="subxComment"># check-ints-equal(ebx, 3, msg)</span>
<span id="L2884" class="LineNr">2884 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2885" class="LineNr">2885 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2835'>test-parse-effective-address-base-displacement</a>/displacement&quot;</span>/imm32
<span id="L2886" class="LineNr">2886 </span>    68/push  3/imm32
<span id="L2887" class="LineNr">2887 </span>    53/push-ebx
<span id="L2888" class="LineNr">2888 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2889" class="LineNr">2889 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2890" class="LineNr">2890 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2891" class="LineNr">2891 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2892" class="LineNr">2892 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2893" class="LineNr">2893 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2894" class="LineNr">2894 </span>    5d/pop-to-ebp
<span id="L2895" class="LineNr">2895 </span>    c3/return
<span id="L2896" class="LineNr">2896 </span>
<span id="L2897" class="LineNr">2897 </span><span class="subxTest">test-parse-effective-address-base-negative-displacement</span>:
<span id="L2898" class="LineNr">2898 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2899" class="LineNr">2899 </span>    55/push-ebp
<span id="L2900" class="LineNr">2900 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2901" class="LineNr">2901 </span>    <span class="subxComment"># var slice/ecx = &quot;*(esi-3)&quot;</span>
<span id="L2902" class="LineNr">2902 </span>    b8/copy-to-eax  <span class="Constant">&quot;*(esi-3)&quot;</span>/imm32
<span id="L2903" class="LineNr">2903 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L2904" class="LineNr">2904 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L2905" class="LineNr">2905 </span>    05/add-to-eax  4/imm32
<span id="L2906" class="LineNr">2906 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L2907" class="LineNr">2907 </span>    51/push-ecx
<span id="L2908" class="LineNr">2908 </span>    50/push-eax
<span id="L2909" class="LineNr">2909 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2910" class="LineNr">2910 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L2911" class="LineNr">2911 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2912" class="LineNr">2912 </span>    51/push-ecx
<span id="L2913" class="LineNr">2913 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2914" class="LineNr">2914 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L2915" class="LineNr">2915 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2916" class="LineNr">2916 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2917" class="LineNr">2917 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L2918" class="LineNr">2918 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L2919" class="LineNr">2919 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2920" class="LineNr">2920 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2897'>test-parse-effective-address-base-negative-displacement</a>/base&quot;</span>/imm32
<span id="L2921" class="LineNr">2921 </span>    68/push  6/imm32/esi
<span id="L2922" class="LineNr">2922 </span>    50/push-eax
<span id="L2923" class="LineNr">2923 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2924" class="LineNr">2924 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2925" class="LineNr">2925 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2926" class="LineNr">2926 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2927" class="LineNr">2927 </span>    <span class="subxComment"># check-ints-equal(ecx, 4, msg)</span>
<span id="L2928" class="LineNr">2928 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2929" class="LineNr">2929 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2897'>test-parse-effective-address-base-negative-displacement</a>/index&quot;</span>/imm32
<span id="L2930" class="LineNr">2930 </span>    68/push  4/imm32/none
<span id="L2931" class="LineNr">2931 </span>    51/push-ecx
<span id="L2932" class="LineNr">2932 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2933" class="LineNr">2933 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2934" class="LineNr">2934 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2935" class="LineNr">2935 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2936" class="LineNr">2936 </span>    <span class="subxComment"># check-ints-equal(edx, 0, msg)</span>
<span id="L2937" class="LineNr">2937 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2938" class="LineNr">2938 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2897'>test-parse-effective-address-base-negative-displacement</a>/scale&quot;</span>/imm32
<span id="L2939" class="LineNr">2939 </span>    68/push  0/imm32/none
<span id="L2940" class="LineNr">2940 </span>    52/push-edx
<span id="L2941" class="LineNr">2941 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2942" class="LineNr">2942 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2943" class="LineNr">2943 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2944" class="LineNr">2944 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2945" class="LineNr">2945 </span>    <span class="subxComment"># check-ints-equal(ebx, -3, msg)</span>
<span id="L2946" class="LineNr">2946 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2947" class="LineNr">2947 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2897'>test-parse-effective-address-base-negative-displacement</a>/displacement&quot;</span>/imm32
<span id="L2948" class="LineNr">2948 </span>    68/push  -3/imm32
<span id="L2949" class="LineNr">2949 </span>    53/push-ebx
<span id="L2950" class="LineNr">2950 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2951" class="LineNr">2951 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2952" class="LineNr">2952 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2953" class="LineNr">2953 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2954" class="LineNr">2954 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L2955" class="LineNr">2955 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L2956" class="LineNr">2956 </span>    5d/pop-to-ebp
<span id="L2957" class="LineNr">2957 </span>    c3/return
<span id="L2958" class="LineNr">2958 </span>
<span id="L2959" class="LineNr">2959 </span><span class="subxTest">test-parse-effective-address-base-index</span>:
<span id="L2960" class="LineNr">2960 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L2961" class="LineNr">2961 </span>    55/push-ebp
<span id="L2962" class="LineNr">2962 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L2963" class="LineNr">2963 </span>    <span class="subxComment"># var slice/ecx = &quot;*(esi+ecx)&quot;</span>
<span id="L2964" class="LineNr">2964 </span>    b8/copy-to-eax  <span class="Constant">&quot;*(esi+ecx)&quot;</span>/imm32
<span id="L2965" class="LineNr">2965 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L2966" class="LineNr">2966 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L2967" class="LineNr">2967 </span>    05/add-to-eax  4/imm32
<span id="L2968" class="LineNr">2968 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L2969" class="LineNr">2969 </span>    51/push-ecx
<span id="L2970" class="LineNr">2970 </span>    50/push-eax
<span id="L2971" class="LineNr">2971 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L2972" class="LineNr">2972 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L2973" class="LineNr">2973 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2974" class="LineNr">2974 </span>    51/push-ecx
<span id="L2975" class="LineNr">2975 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2976" class="LineNr">2976 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L2977" class="LineNr">2977 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2978" class="LineNr">2978 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L2979" class="LineNr">2979 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L2980" class="LineNr">2980 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L2981" class="LineNr">2981 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2982" class="LineNr">2982 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2959'>test-parse-effective-address-base-index</a>/base&quot;</span>/imm32
<span id="L2983" class="LineNr">2983 </span>    68/push  6/imm32/esi
<span id="L2984" class="LineNr">2984 </span>    50/push-eax
<span id="L2985" class="LineNr">2985 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2986" class="LineNr">2986 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2987" class="LineNr">2987 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2988" class="LineNr">2988 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2989" class="LineNr">2989 </span>    <span class="subxComment"># check-ints-equal(ecx, 1, msg)</span>
<span id="L2990" class="LineNr">2990 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L2991" class="LineNr">2991 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2959'>test-parse-effective-address-base-index</a>/index&quot;</span>/imm32
<span id="L2992" class="LineNr">2992 </span>    68/push  1/imm32/none
<span id="L2993" class="LineNr">2993 </span>    51/push-ecx
<span id="L2994" class="LineNr">2994 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L2995" class="LineNr">2995 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L2996" class="LineNr">2996 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L2997" class="LineNr">2997 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L2998" class="LineNr">2998 </span>    <span class="subxComment"># check-ints-equal(edx, 0, msg)</span>
<span id="L2999" class="LineNr">2999 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3000" class="LineNr">3000 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2959'>test-parse-effective-address-base-index</a>/scale&quot;</span>/imm32
<span id="L3001" class="LineNr">3001 </span>    68/push  0/imm32/none
<span id="L3002" class="LineNr">3002 </span>    52/push-edx
<span id="L3003" class="LineNr">3003 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3004" class="LineNr">3004 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3005" class="LineNr">3005 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3006" class="LineNr">3006 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3007" class="LineNr">3007 </span>    <span class="subxComment"># check-ints-equal(ebx, 0, msg)</span>
<span id="L3008" class="LineNr">3008 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3009" class="LineNr">3009 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L2959'>test-parse-effective-address-base-index</a>/displacement&quot;</span>/imm32
<span id="L3010" class="LineNr">3010 </span>    68/push  0/imm32
<span id="L3011" class="LineNr">3011 </span>    53/push-ebx
<span id="L3012" class="LineNr">3012 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3013" class="LineNr">3013 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3014" class="LineNr">3014 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3015" class="LineNr">3015 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3016" class="LineNr">3016 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3017" class="LineNr">3017 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3018" class="LineNr">3018 </span>    5d/pop-to-ebp
<span id="L3019" class="LineNr">3019 </span>    c3/return
<span id="L3020" class="LineNr">3020 </span>
<span id="L3021" class="LineNr">3021 </span><span class="subxTest">test-parse-effective-address-base-index-scale</span>:
<span id="L3022" class="LineNr">3022 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3023" class="LineNr">3023 </span>    55/push-ebp
<span id="L3024" class="LineNr">3024 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3025" class="LineNr">3025 </span>    <span class="subxComment"># var slice/ecx = &quot;*(esi+ecx&lt;&lt;2)&quot;</span>
<span id="L3026" class="LineNr">3026 </span>    b8/copy-to-eax  <span class="Constant">&quot;*(esi+ecx&lt;&lt;2)&quot;</span>/imm32
<span id="L3027" class="LineNr">3027 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L3028" class="LineNr">3028 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L3029" class="LineNr">3029 </span>    05/add-to-eax  4/imm32
<span id="L3030" class="LineNr">3030 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L3031" class="LineNr">3031 </span>    51/push-ecx
<span id="L3032" class="LineNr">3032 </span>    50/push-eax
<span id="L3033" class="LineNr">3033 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L3034" class="LineNr">3034 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L3035" class="LineNr">3035 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3036" class="LineNr">3036 </span>    51/push-ecx
<span id="L3037" class="LineNr">3037 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3038" class="LineNr">3038 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L3039" class="LineNr">3039 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3040" class="LineNr">3040 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3041" class="LineNr">3041 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L3042" class="LineNr">3042 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L3043" class="LineNr">3043 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3044" class="LineNr">3044 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/base&quot;</span>/imm32
<span id="L3045" class="LineNr">3045 </span>    68/push  6/imm32/esi
<span id="L3046" class="LineNr">3046 </span>    50/push-eax
<span id="L3047" class="LineNr">3047 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3048" class="LineNr">3048 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3049" class="LineNr">3049 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3050" class="LineNr">3050 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3051" class="LineNr">3051 </span>    <span class="subxComment"># check-ints-equal(ecx, 1, msg)</span>
<span id="L3052" class="LineNr">3052 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3053" class="LineNr">3053 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/index&quot;</span>/imm32
<span id="L3054" class="LineNr">3054 </span>    68/push  1/imm32/none
<span id="L3055" class="LineNr">3055 </span>    51/push-ecx
<span id="L3056" class="LineNr">3056 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3057" class="LineNr">3057 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3058" class="LineNr">3058 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3059" class="LineNr">3059 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3060" class="LineNr">3060 </span>    <span class="subxComment"># check-ints-equal(edx, 2, msg)</span>
<span id="L3061" class="LineNr">3061 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3062" class="LineNr">3062 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/scale&quot;</span>/imm32
<span id="L3063" class="LineNr">3063 </span>    68/push  2/imm32
<span id="L3064" class="LineNr">3064 </span>    52/push-edx
<span id="L3065" class="LineNr">3065 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3066" class="LineNr">3066 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3067" class="LineNr">3067 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3068" class="LineNr">3068 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3069" class="LineNr">3069 </span>    <span class="subxComment"># check-ints-equal(ebx, 0, msg)</span>
<span id="L3070" class="LineNr">3070 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3071" class="LineNr">3071 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/displacement&quot;</span>/imm32
<span id="L3072" class="LineNr">3072 </span>    68/push  0/imm32
<span id="L3073" class="LineNr">3073 </span>    53/push-ebx
<span id="L3074" class="LineNr">3074 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3075" class="LineNr">3075 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3076" class="LineNr">3076 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3077" class="LineNr">3077 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3078" class="LineNr">3078 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3079" class="LineNr">3079 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3080" class="LineNr">3080 </span>    5d/pop-to-ebp
<span id="L3081" class="LineNr">3081 </span>    c3/return
<span id="L3082" class="LineNr">3082 </span>
<span id="L3083" class="LineNr">3083 </span><span class="subxTest">test-parse-effective-address-base-index-scale-displacement</span>:
<span id="L3084" class="LineNr">3084 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3085" class="LineNr">3085 </span>    55/push-ebp
<span id="L3086" class="LineNr">3086 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3087" class="LineNr">3087 </span>    <span class="subxComment"># var slice/ecx = &quot;*(esi + ecx&lt;&lt;2 - 0x34)&quot;</span>
<span id="L3088" class="LineNr">3088 </span>    b8/copy-to-eax  <span class="Constant">&quot;*(esi + ecx&lt;&lt;2 - 0x34)&quot;</span>/imm32
<span id="L3089" class="LineNr">3089 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L3090" class="LineNr">3090 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L3091" class="LineNr">3091 </span>    05/add-to-eax  4/imm32
<span id="L3092" class="LineNr">3092 </span>    <span class="subxS1Comment"># . ecx = {eax, ecx}</span>
<span id="L3093" class="LineNr">3093 </span>    51/push-ecx
<span id="L3094" class="LineNr">3094 </span>    50/push-eax
<span id="L3095" class="LineNr">3095 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L3096" class="LineNr">3096 </span>    <span class="subxComment"># eax, ecx, edx, ebx = parse-effective-address(slice)</span>
<span id="L3097" class="LineNr">3097 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3098" class="LineNr">3098 </span>    51/push-ecx
<span id="L3099" class="LineNr">3099 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3100" class="LineNr">3100 </span>    e8/call  <a href='sigils.subx.html#L2210'>parse-effective-address</a>/disp32
<span id="L3101" class="LineNr">3101 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3102" class="LineNr">3102 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3103" class="LineNr">3103 </span>    <span class="subxComment"># slice clobbered beyond this point</span>
<span id="L3104" class="LineNr">3104 </span>    <span class="subxComment"># check-ints-equal(eax, 6, msg)</span>
<span id="L3105" class="LineNr">3105 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3106" class="LineNr">3106 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/base&quot;</span>/imm32
<span id="L3107" class="LineNr">3107 </span>    68/push  6/imm32/esi
<span id="L3108" class="LineNr">3108 </span>    50/push-eax
<span id="L3109" class="LineNr">3109 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3110" class="LineNr">3110 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3111" class="LineNr">3111 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3112" class="LineNr">3112 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3113" class="LineNr">3113 </span>    <span class="subxComment"># check-ints-equal(ecx, 1, msg)</span>
<span id="L3114" class="LineNr">3114 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3115" class="LineNr">3115 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/index&quot;</span>/imm32
<span id="L3116" class="LineNr">3116 </span>    68/push  1/imm32/none
<span id="L3117" class="LineNr">3117 </span>    51/push-ecx
<span id="L3118" class="LineNr">3118 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3119" class="LineNr">3119 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3120" class="LineNr">3120 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3121" class="LineNr">3121 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3122" class="LineNr">3122 </span>    <span class="subxComment"># check-ints-equal(edx, 2, msg)</span>
<span id="L3123" class="LineNr">3123 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3124" class="LineNr">3124 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/scale&quot;</span>/imm32
<span id="L3125" class="LineNr">3125 </span>    68/push  2/imm32
<span id="L3126" class="LineNr">3126 </span>    52/push-edx
<span id="L3127" class="LineNr">3127 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3128" class="LineNr">3128 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3129" class="LineNr">3129 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3130" class="LineNr">3130 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3131" class="LineNr">3131 </span>    <span class="subxComment"># check-ints-equal(ebx, -0x34, msg)</span>
<span id="L3132" class="LineNr">3132 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3133" class="LineNr">3133 </span>    68/push  <span class="Constant">&quot;F - <a href='sigils.subx.html#L3021'>test-parse-effective-address-base-index-scale</a>/displacement&quot;</span>/imm32
<span id="L3134" class="LineNr">3134 </span>    68/push  -0x34/imm32
<span id="L3135" class="LineNr">3135 </span>    53/push-ebx
<span id="L3136" class="LineNr">3136 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3137" class="LineNr">3137 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L3138" class="LineNr">3138 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3139" class="LineNr">3139 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3140" class="LineNr">3140 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3141" class="LineNr">3141 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3142" class="LineNr">3142 </span>    5d/pop-to-ebp
<span id="L3143" class="LineNr">3143 </span>    c3/return
<span id="L3144" class="LineNr">3144 </span>
<span id="L3145" class="LineNr">3145 </span><span class="subxComment"># Code generation:</span>
<span id="L3146" class="LineNr">3146 </span><span class="subxComment">#   if base is esp, then goto emit-sib</span>
<span id="L3147" class="LineNr">3147 </span><span class="subxComment">#   if base is ebp, then goto emit-sib</span>
<span id="L3148" class="LineNr">3148 </span><span class="subxComment">#   if index is none and disp is 0, then mod = 0 and rm32 = base</span>
<span id="L3149" class="LineNr">3149 </span><span class="subxComment">#   if index is none, then mod = 2 and rm32 = base and disp32 = disp</span>
<span id="L3150" class="LineNr">3150 </span><span class="subxComment"># emit-sib:</span>
<span id="L3151" class="LineNr">3151 </span><span class="subxComment">#   if index is not none, then mod = 2 and rm32 = 4 and base = base and index = index and disp32 = disp</span>
<span id="L3152" class="LineNr">3152 </span><span class="subxFunction">emit-indirect-mode</span>:  <span class="subxComment"># out: (addr buffered-file), base: int, index: int, scale: int, disp: int</span>
<span id="L3153" class="LineNr">3153 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3154" class="LineNr">3154 </span>    55/push-ebp
<span id="L3155" class="LineNr">3155 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3156" class="LineNr">3156 </span><span class="Constant">$emit-indirect-mode:check-for-ebp</span>:
<span id="L3157" class="LineNr">3157 </span>    <span class="subxComment"># if (base == 5) goto emit-sib</span>
<span id="L3158" class="LineNr">3158 </span>    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8       5/imm32           <span class="subxComment"># compare *(ebp+12)</span>
<span id="L3159" class="LineNr">3159 </span>    74/jump-if-=  $emit-indirect-mode:emit-sib/disp8
<span id="L3160" class="LineNr">3160 </span><span class="Constant">$emit-indirect-mode:check-for-esp</span>:
<span id="L3161" class="LineNr">3161 </span>    <span class="subxComment"># if (base == 4) goto emit-sib</span>
<span id="L3162" class="LineNr">3162 </span>    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8       4/imm32           <span class="subxComment"># compare *(ebp+12)</span>
<span id="L3163" class="LineNr">3163 </span>    74/jump-if-=  $emit-indirect-mode:emit-sib/disp8
<span id="L3164" class="LineNr">3164 </span><span class="Constant">$emit-indirect-mode:check-for-sib</span>:
<span id="L3165" class="LineNr">3165 </span>    <span class="subxComment"># if (index == 4/none) goto next check</span>
<span id="L3166" class="LineNr">3166 </span>    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8      4/imm32           <span class="subxComment"># compare *(ebp+16)</span>
<span id="L3167" class="LineNr">3167 </span>    0f 84/jump-if-=  $emit-indirect-mode:check-for-disp/disp32
<span id="L3168" class="LineNr">3168 </span><span class="Constant">$emit-indirect-mode:emit-sib</span>:
<span id="L3169" class="LineNr">3169 </span>    <span class="subxComment"># emit(out, &quot;2/mod/indirect 4/rm32/sib &quot; base &quot;/base &quot; index &quot;/index &quot; scale &quot;/scale &quot; disp &quot;/disp32&quot;)</span>
<span id="L3170" class="LineNr">3170 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;2/mod/*+disp32 4/rm32/sib &quot;)</span>
<span id="L3171" class="LineNr">3171 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3172" class="LineNr">3172 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 4/rm32/sib &quot;</span>/imm32
<span id="L3173" class="LineNr">3173 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3174" class="LineNr">3174 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3175" class="LineNr">3175 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3176" class="LineNr">3176 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3177" class="LineNr">3177 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3178" class="LineNr">3178 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, base)</span>
<span id="L3179" class="LineNr">3179 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3180" class="LineNr">3180 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L3181" class="LineNr">3181 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3182" class="LineNr">3182 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3183" class="LineNr">3183 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3184" class="LineNr">3184 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3185" class="LineNr">3185 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3186" class="LineNr">3186 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/base &quot;)</span>
<span id="L3187" class="LineNr">3187 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3188" class="LineNr">3188 </span>    68/push  <span class="Constant">&quot;/base &quot;</span>/imm32
<span id="L3189" class="LineNr">3189 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3190" class="LineNr">3190 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3191" class="LineNr">3191 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3192" class="LineNr">3192 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3193" class="LineNr">3193 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3194" class="LineNr">3194 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, index)</span>
<span id="L3195" class="LineNr">3195 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3196" class="LineNr">3196 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x10/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+16)</span>
<span id="L3197" class="LineNr">3197 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3198" class="LineNr">3198 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3199" class="LineNr">3199 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3200" class="LineNr">3200 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3201" class="LineNr">3201 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3202" class="LineNr">3202 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/index &quot;)</span>
<span id="L3203" class="LineNr">3203 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3204" class="LineNr">3204 </span>    68/push  <span class="Constant">&quot;/index &quot;</span>/imm32
<span id="L3205" class="LineNr">3205 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3206" class="LineNr">3206 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3207" class="LineNr">3207 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3208" class="LineNr">3208 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3209" class="LineNr">3209 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3210" class="LineNr">3210 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, scale)</span>
<span id="L3211" class="LineNr">3211 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3212" class="LineNr">3212 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x14/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+20)</span>
<span id="L3213" class="LineNr">3213 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3214" class="LineNr">3214 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3215" class="LineNr">3215 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3216" class="LineNr">3216 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3217" class="LineNr">3217 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3218" class="LineNr">3218 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/scale &quot;)</span>
<span id="L3219" class="LineNr">3219 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3220" class="LineNr">3220 </span>    68/push  <span class="Constant">&quot;/scale &quot;</span>/imm32
<span id="L3221" class="LineNr">3221 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3222" class="LineNr">3222 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3223" class="LineNr">3223 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3224" class="LineNr">3224 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3225" class="LineNr">3225 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3226" class="LineNr">3226 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, disp)</span>
<span id="L3227" class="LineNr">3227 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3228" class="LineNr">3228 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x18/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+24)</span>
<span id="L3229" class="LineNr">3229 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3230" class="LineNr">3230 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3231" class="LineNr">3231 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3232" class="LineNr">3232 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3233" class="LineNr">3233 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3234" class="LineNr">3234 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/disp32&quot;)</span>
<span id="L3235" class="LineNr">3235 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3236" class="LineNr">3236 </span>    68/push  <span class="Constant">&quot;/disp32&quot;</span>/imm32
<span id="L3237" class="LineNr">3237 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3238" class="LineNr">3238 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3239" class="LineNr">3239 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3240" class="LineNr">3240 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3241" class="LineNr">3241 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3242" class="LineNr">3242 </span>    e9/jump  $emit-indirect-mode:end/disp32
<span id="L3243" class="LineNr">3243 </span><span class="Constant">$emit-indirect-mode:check-for-disp</span>:
<span id="L3244" class="LineNr">3244 </span>    <span class="subxComment"># if (disp == 0) goto next check</span>
<span id="L3245" class="LineNr">3245 </span>    81          7/subop/compare     1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x18/disp8      0/imm32           <span class="subxComment"># compare *(ebp+24)</span>
<span id="L3246" class="LineNr">3246 </span>    74/jump-if-=  $emit-indirect-mode:emit-indirect/disp8
<span id="L3247" class="LineNr">3247 </span><span class="Constant">$emit-indirect-mode:emit-disp</span>:
<span id="L3248" class="LineNr">3248 </span>    <span class="subxComment"># emit(out, &quot;2/mod/*+disp32 &quot; base &quot;/rm32 &quot; disp &quot;/disp32&quot;)</span>
<span id="L3249" class="LineNr">3249 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;2/mod/*+disp32 &quot;)</span>
<span id="L3250" class="LineNr">3250 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3251" class="LineNr">3251 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 &quot;</span>/imm32
<span id="L3252" class="LineNr">3252 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3253" class="LineNr">3253 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3254" class="LineNr">3254 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3255" class="LineNr">3255 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3256" class="LineNr">3256 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3257" class="LineNr">3257 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, base)</span>
<span id="L3258" class="LineNr">3258 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3259" class="LineNr">3259 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L3260" class="LineNr">3260 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3261" class="LineNr">3261 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3262" class="LineNr">3262 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3263" class="LineNr">3263 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3264" class="LineNr">3264 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3265" class="LineNr">3265 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/rm32 &quot;)</span>
<span id="L3266" class="LineNr">3266 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3267" class="LineNr">3267 </span>    68/push  <span class="Constant">&quot;/rm32 &quot;</span>/imm32
<span id="L3268" class="LineNr">3268 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3269" class="LineNr">3269 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3270" class="LineNr">3270 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3271" class="LineNr">3271 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3272" class="LineNr">3272 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3273" class="LineNr">3273 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, disp)</span>
<span id="L3274" class="LineNr">3274 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3275" class="LineNr">3275 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0x18/disp8     <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+24)</span>
<span id="L3276" class="LineNr">3276 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3277" class="LineNr">3277 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3278" class="LineNr">3278 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3279" class="LineNr">3279 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3280" class="LineNr">3280 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3281" class="LineNr">3281 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/disp32&quot;)</span>
<span id="L3282" class="LineNr">3282 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3283" class="LineNr">3283 </span>    68/push  <span class="Constant">&quot;/disp32&quot;</span>/imm32
<span id="L3284" class="LineNr">3284 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3285" class="LineNr">3285 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3286" class="LineNr">3286 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3287" class="LineNr">3287 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3288" class="LineNr">3288 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3289" class="LineNr">3289 </span>    eb/jump  $emit-indirect-mode:end/disp8
<span id="L3290" class="LineNr">3290 </span><span class="Constant">$emit-indirect-mode:emit-indirect</span>:
<span id="L3291" class="LineNr">3291 </span>    <span class="subxComment"># emit(out, &quot;0/mod/indirect &quot; base &quot;/rm32&quot;)</span>
<span id="L3292" class="LineNr">3292 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;0/mod/indirect &quot;)</span>
<span id="L3293" class="LineNr">3293 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3294" class="LineNr">3294 </span>    68/push  <span class="Constant">&quot;0/mod/indirect &quot;</span>/imm32
<span id="L3295" class="LineNr">3295 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3296" class="LineNr">3296 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3297" class="LineNr">3297 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3298" class="LineNr">3298 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3299" class="LineNr">3299 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3300" class="LineNr">3300 </span>    <span class="subxS1Comment"># . print-int32-buffered(out, base)</span>
<span id="L3301" class="LineNr">3301 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3302" class="LineNr">3302 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+12)</span>
<span id="L3303" class="LineNr">3303 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3304" class="LineNr">3304 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3305" class="LineNr">3305 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L3306" class="LineNr">3306 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3307" class="LineNr">3307 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3308" class="LineNr">3308 </span>    <span class="subxS1Comment"># . write-buffered(out, &quot;/rm32&quot;)</span>
<span id="L3309" class="LineNr">3309 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3310" class="LineNr">3310 </span>    68/push  <span class="Constant">&quot;/rm32&quot;</span>/imm32
<span id="L3311" class="LineNr">3311 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3312" class="LineNr">3312 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3313" class="LineNr">3313 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3314" class="LineNr">3314 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3315" class="LineNr">3315 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3316" class="LineNr">3316 </span><span class="Constant">$emit-indirect-mode:end</span>:
<span id="L3317" class="LineNr">3317 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3318" class="LineNr">3318 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3319" class="LineNr">3319 </span>    5d/pop-to-ebp
<span id="L3320" class="LineNr">3320 </span>    c3/return
<span id="L3321" class="LineNr">3321 </span>
<span id="L3322" class="LineNr">3322 </span><span class="subxTest">test-emit-indirect-mode</span>:
<span id="L3323" class="LineNr">3323 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3324" class="LineNr">3324 </span>    55/push-ebp
<span id="L3325" class="LineNr">3325 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3326" class="LineNr">3326 </span>    <span class="subxComment"># setup</span>
<span id="L3327" class="LineNr">3327 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3328" class="LineNr">3328 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3329" class="LineNr">3329 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3330" class="LineNr">3330 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3331" class="LineNr">3331 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3332" class="LineNr">3332 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3333" class="LineNr">3333 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3334" class="LineNr">3334 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3335" class="LineNr">3335 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3336" class="LineNr">3336 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3337" class="LineNr">3337 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3338" class="LineNr">3338 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3339" class="LineNr">3339 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3340" class="LineNr">3340 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3341" class="LineNr">3341 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 0, 4/none, 0, 0)</span>
<span id="L3342" class="LineNr">3342 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3343" class="LineNr">3343 </span>    68/push  0/imm32/.disp
<span id="L3344" class="LineNr">3344 </span>    68/push  0/imm32/.scale
<span id="L3345" class="LineNr">3345 </span>    68/push  4/imm32/.index/none
<span id="L3346" class="LineNr">3346 </span>    68/push  0/imm32/.base
<span id="L3347" class="LineNr">3347 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3348" class="LineNr">3348 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3349" class="LineNr">3349 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3350" class="LineNr">3350 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3351" class="LineNr">3351 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3352" class="LineNr">3352 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3353" class="LineNr">3353 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3354" class="LineNr">3354 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3355" class="LineNr">3355 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3356" class="LineNr">3356 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3357" class="LineNr">3357 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3358" class="LineNr">3358 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3359" class="Folded">3359 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3385" class="LineNr">3385 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;0/mod/indirect 0/rm32&quot;, msg)</span>
<span id="L3386" class="LineNr">3386 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3387" class="LineNr">3387 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode&quot;</span>/imm32
<span id="L3388" class="LineNr">3388 </span>    68/push  <span class="Constant">&quot;0/mod/indirect 0x00000000/rm32&quot;</span>/imm32
<span id="L3389" class="LineNr">3389 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3390" class="LineNr">3390 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3391" class="LineNr">3391 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3392" class="LineNr">3392 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3393" class="LineNr">3393 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3394" class="LineNr">3394 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3395" class="LineNr">3395 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3396" class="LineNr">3396 </span>    5d/pop-to-ebp
<span id="L3397" class="LineNr">3397 </span>    c3/return
<span id="L3398" class="LineNr">3398 </span>
<span id="L3399" class="LineNr">3399 </span><span class="subxTest">test-emit-indirect-mode-2</span>:
<span id="L3400" class="LineNr">3400 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3401" class="LineNr">3401 </span>    55/push-ebp
<span id="L3402" class="LineNr">3402 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3403" class="LineNr">3403 </span>    <span class="subxComment"># setup</span>
<span id="L3404" class="LineNr">3404 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3405" class="LineNr">3405 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3406" class="LineNr">3406 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3407" class="LineNr">3407 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3408" class="LineNr">3408 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3409" class="LineNr">3409 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3410" class="LineNr">3410 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3411" class="LineNr">3411 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3412" class="LineNr">3412 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3413" class="LineNr">3413 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3414" class="LineNr">3414 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3415" class="LineNr">3415 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3416" class="LineNr">3416 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3417" class="LineNr">3417 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3418" class="LineNr">3418 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 6, 4/none, 0, 0)</span>
<span id="L3419" class="LineNr">3419 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3420" class="LineNr">3420 </span>    68/push  0/imm32/.disp
<span id="L3421" class="LineNr">3421 </span>    68/push  0/imm32/.scale
<span id="L3422" class="LineNr">3422 </span>    68/push  4/imm32/.index/none
<span id="L3423" class="LineNr">3423 </span>    68/push  7/imm32/.base
<span id="L3424" class="LineNr">3424 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3425" class="LineNr">3425 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3426" class="LineNr">3426 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3427" class="LineNr">3427 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3428" class="LineNr">3428 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3429" class="LineNr">3429 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3430" class="LineNr">3430 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3431" class="LineNr">3431 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3432" class="LineNr">3432 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3433" class="LineNr">3433 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3434" class="LineNr">3434 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3435" class="LineNr">3435 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3436" class="Folded">3436 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3462" class="LineNr">3462 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;0/mod/indirect 7/rm32&quot;, msg)</span>
<span id="L3463" class="LineNr">3463 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3464" class="LineNr">3464 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode-2&quot;</span>/imm32
<span id="L3465" class="LineNr">3465 </span>    68/push  <span class="Constant">&quot;0/mod/indirect 0x00000007/rm32&quot;</span>/imm32
<span id="L3466" class="LineNr">3466 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3467" class="LineNr">3467 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3468" class="LineNr">3468 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3469" class="LineNr">3469 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3470" class="LineNr">3470 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3471" class="LineNr">3471 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3472" class="LineNr">3472 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3473" class="LineNr">3473 </span>    5d/pop-to-ebp
<span id="L3474" class="LineNr">3474 </span>    c3/return
<span id="L3475" class="LineNr">3475 </span>
<span id="L3476" class="LineNr">3476 </span><span class="subxTest">test-emit-indirect-mode-with-disp</span>:
<span id="L3477" class="LineNr">3477 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3478" class="LineNr">3478 </span>    55/push-ebp
<span id="L3479" class="LineNr">3479 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3480" class="LineNr">3480 </span>    <span class="subxComment"># setup</span>
<span id="L3481" class="LineNr">3481 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3482" class="LineNr">3482 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3483" class="LineNr">3483 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3484" class="LineNr">3484 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3485" class="LineNr">3485 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3486" class="LineNr">3486 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3487" class="LineNr">3487 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3488" class="LineNr">3488 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3489" class="LineNr">3489 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3490" class="LineNr">3490 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3491" class="LineNr">3491 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3492" class="LineNr">3492 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3493" class="LineNr">3493 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3494" class="LineNr">3494 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3495" class="LineNr">3495 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 6, 4/none, 0, 4)</span>
<span id="L3496" class="LineNr">3496 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3497" class="LineNr">3497 </span>    68/push  4/imm32/.disp
<span id="L3498" class="LineNr">3498 </span>    68/push  0/imm32/.scale
<span id="L3499" class="LineNr">3499 </span>    68/push  4/imm32/.index/none
<span id="L3500" class="LineNr">3500 </span>    68/push  6/imm32/.base
<span id="L3501" class="LineNr">3501 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3502" class="LineNr">3502 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3503" class="LineNr">3503 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3504" class="LineNr">3504 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3505" class="LineNr">3505 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3506" class="LineNr">3506 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3507" class="LineNr">3507 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3508" class="LineNr">3508 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3509" class="LineNr">3509 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3510" class="LineNr">3510 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3511" class="LineNr">3511 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3512" class="LineNr">3512 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3513" class="Folded">3513 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3539" class="LineNr">3539 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;2/mod/*+disp32 6/rm32 4/disp32&quot;, msg)</span>
<span id="L3540" class="LineNr">3540 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3541" class="LineNr">3541 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode-with-disp&quot;</span>/imm32
<span id="L3542" class="LineNr">3542 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 0x00000006/rm32 0x00000004/disp32&quot;</span>/imm32
<span id="L3543" class="LineNr">3543 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3544" class="LineNr">3544 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3545" class="LineNr">3545 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3546" class="LineNr">3546 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3547" class="LineNr">3547 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3548" class="LineNr">3548 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3549" class="LineNr">3549 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3550" class="LineNr">3550 </span>    5d/pop-to-ebp
<span id="L3551" class="LineNr">3551 </span>    c3/return
<span id="L3552" class="LineNr">3552 </span>
<span id="L3553" class="LineNr">3553 </span><span class="subxTest">test-emit-indirect-mode-with-disp-negative</span>:
<span id="L3554" class="LineNr">3554 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3555" class="LineNr">3555 </span>    55/push-ebp
<span id="L3556" class="LineNr">3556 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3557" class="LineNr">3557 </span>    <span class="subxComment"># setup</span>
<span id="L3558" class="LineNr">3558 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3559" class="LineNr">3559 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3560" class="LineNr">3560 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3561" class="LineNr">3561 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3562" class="LineNr">3562 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3563" class="LineNr">3563 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3564" class="LineNr">3564 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3565" class="LineNr">3565 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3566" class="LineNr">3566 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3567" class="LineNr">3567 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3568" class="LineNr">3568 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3569" class="LineNr">3569 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3570" class="LineNr">3570 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3571" class="LineNr">3571 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3572" class="LineNr">3572 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 6, 4/none, 0, -4)</span>
<span id="L3573" class="LineNr">3573 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3574" class="LineNr">3574 </span>    68/push  -4/imm32/.disp
<span id="L3575" class="LineNr">3575 </span>    68/push  0/imm32/.scale
<span id="L3576" class="LineNr">3576 </span>    68/push  4/imm32/.index/none
<span id="L3577" class="LineNr">3577 </span>    68/push  6/imm32/.base
<span id="L3578" class="LineNr">3578 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3579" class="LineNr">3579 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3580" class="LineNr">3580 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3581" class="LineNr">3581 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3582" class="LineNr">3582 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3583" class="LineNr">3583 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3584" class="LineNr">3584 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3585" class="LineNr">3585 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3586" class="LineNr">3586 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3587" class="LineNr">3587 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3588" class="LineNr">3588 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3589" class="LineNr">3589 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3590" class="Folded">3590 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3616" class="LineNr">3616 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;2/mod/*+disp32 6/rm32 -4/disp32&quot;, msg)</span>
<span id="L3617" class="LineNr">3617 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3618" class="LineNr">3618 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode-with-disp&quot;</span>/imm32
<span id="L3619" class="LineNr">3619 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 0x00000006/rm32 0xfffffffc/disp32&quot;</span>/imm32
<span id="L3620" class="LineNr">3620 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3621" class="LineNr">3621 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3622" class="LineNr">3622 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3623" class="LineNr">3623 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3624" class="LineNr">3624 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3625" class="LineNr">3625 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3626" class="LineNr">3626 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3627" class="LineNr">3627 </span>    5d/pop-to-ebp
<span id="L3628" class="LineNr">3628 </span>    c3/return
<span id="L3629" class="LineNr">3629 </span>
<span id="L3630" class="LineNr">3630 </span><span class="subxTest">test-emit-indirect-mode-with-sib</span>:
<span id="L3631" class="LineNr">3631 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3632" class="LineNr">3632 </span>    55/push-ebp
<span id="L3633" class="LineNr">3633 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3634" class="LineNr">3634 </span>    <span class="subxComment"># setup</span>
<span id="L3635" class="LineNr">3635 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3636" class="LineNr">3636 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3637" class="LineNr">3637 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3638" class="LineNr">3638 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3639" class="LineNr">3639 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3640" class="LineNr">3640 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3641" class="LineNr">3641 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3642" class="LineNr">3642 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3643" class="LineNr">3643 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3644" class="LineNr">3644 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3645" class="LineNr">3645 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3646" class="LineNr">3646 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3647" class="LineNr">3647 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3648" class="LineNr">3648 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3649" class="LineNr">3649 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 6/base, 1/index, 2/scale, 4/disp)</span>
<span id="L3650" class="LineNr">3650 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3651" class="LineNr">3651 </span>    68/push  4/imm32/.disp
<span id="L3652" class="LineNr">3652 </span>    68/push  2/imm32/.scale
<span id="L3653" class="LineNr">3653 </span>    68/push  1/imm32/.index
<span id="L3654" class="LineNr">3654 </span>    68/push  6/imm32/.base
<span id="L3655" class="LineNr">3655 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3656" class="LineNr">3656 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3657" class="LineNr">3657 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3658" class="LineNr">3658 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3659" class="LineNr">3659 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3660" class="LineNr">3660 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3661" class="LineNr">3661 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3662" class="LineNr">3662 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3663" class="LineNr">3663 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3664" class="LineNr">3664 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3665" class="LineNr">3665 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3666" class="LineNr">3666 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3667" class="Folded">3667 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3693" class="LineNr">3693 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;2/mod/indirect 4/rm32/sib 6/base 1/index 2/scale 4/disp&quot;, msg)</span>
<span id="L3694" class="LineNr">3694 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3695" class="LineNr">3695 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode-with-sib&quot;</span>/imm32
<span id="L3696" class="LineNr">3696 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 4/rm32/sib 0x00000006/base 0x00000001/index 0x00000002/scale 0x00000004/disp32&quot;</span>/imm32
<span id="L3697" class="LineNr">3697 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3698" class="LineNr">3698 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3699" class="LineNr">3699 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3700" class="LineNr">3700 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3701" class="LineNr">3701 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3702" class="LineNr">3702 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3703" class="LineNr">3703 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3704" class="LineNr">3704 </span>    5d/pop-to-ebp
<span id="L3705" class="LineNr">3705 </span>    c3/return
<span id="L3706" class="LineNr">3706 </span>
<span id="L3707" class="LineNr">3707 </span><span class="subxTest">test-emit-indirect-mode-ebp</span>:
<span id="L3708" class="LineNr">3708 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3709" class="LineNr">3709 </span>    55/push-ebp
<span id="L3710" class="LineNr">3710 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3711" class="LineNr">3711 </span>    <span class="subxComment"># setup</span>
<span id="L3712" class="LineNr">3712 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3713" class="LineNr">3713 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3714" class="LineNr">3714 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3715" class="LineNr">3715 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3716" class="LineNr">3716 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3717" class="LineNr">3717 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3718" class="LineNr">3718 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3719" class="LineNr">3719 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3720" class="LineNr">3720 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3721" class="LineNr">3721 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3722" class="LineNr">3722 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3723" class="LineNr">3723 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3724" class="LineNr">3724 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3725" class="LineNr">3725 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3726" class="LineNr">3726 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 5/base, 0/index, 0/scale, 0/disp)</span>
<span id="L3727" class="LineNr">3727 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3728" class="LineNr">3728 </span>    68/push  0/imm32/.disp
<span id="L3729" class="LineNr">3729 </span>    68/push  0/imm32/.scale
<span id="L3730" class="LineNr">3730 </span>    68/push  0/imm32/.index
<span id="L3731" class="LineNr">3731 </span>    68/push  5/imm32/.base/ebp
<span id="L3732" class="LineNr">3732 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3733" class="LineNr">3733 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3734" class="LineNr">3734 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3735" class="LineNr">3735 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3736" class="LineNr">3736 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3737" class="LineNr">3737 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3738" class="LineNr">3738 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3739" class="LineNr">3739 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3740" class="LineNr">3740 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3741" class="LineNr">3741 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3742" class="LineNr">3742 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3743" class="LineNr">3743 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3744" class="Folded">3744 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3770" class="LineNr">3770 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;2/mod/*+disp32 4/rm32/sib 5/base/ebp 0/index 0/scale 0/disp32&quot;, msg)</span>
<span id="L3771" class="LineNr">3771 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3772" class="LineNr">3772 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode-ebp&quot;</span>/imm32
<span id="L3773" class="LineNr">3773 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 4/rm32/sib 0x00000005/base 0x00000000/index 0x00000000/scale 0x00000000/disp32&quot;</span>/imm32
<span id="L3774" class="LineNr">3774 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3775" class="LineNr">3775 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3776" class="LineNr">3776 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3777" class="LineNr">3777 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3778" class="LineNr">3778 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3779" class="LineNr">3779 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3780" class="LineNr">3780 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3781" class="LineNr">3781 </span>    5d/pop-to-ebp
<span id="L3782" class="LineNr">3782 </span>    c3/return
<span id="L3783" class="LineNr">3783 </span>
<span id="L3784" class="LineNr">3784 </span><span class="subxTest">test-emit-indirect-mode-esp</span>:
<span id="L3785" class="LineNr">3785 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3786" class="LineNr">3786 </span>    55/push-ebp
<span id="L3787" class="LineNr">3787 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3788" class="LineNr">3788 </span>    <span class="subxComment"># setup</span>
<span id="L3789" class="LineNr">3789 </span>    <span class="subxS1Comment"># . clear-stream(_test-output-stream)</span>
<span id="L3790" class="LineNr">3790 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3791" class="LineNr">3791 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3792" class="LineNr">3792 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3793" class="LineNr">3793 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3794" class="LineNr">3794 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3795" class="LineNr">3795 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3796" class="LineNr">3796 </span>    <span class="subxS1Comment"># . clear-stream($_test-output-buffered-file-&gt;buffer)</span>
<span id="L3797" class="LineNr">3797 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3798" class="LineNr">3798 </span>    68/push  $_test-output-buffered-file-&gt;buffer/imm32
<span id="L3799" class="LineNr">3799 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3800" class="LineNr">3800 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L3801" class="LineNr">3801 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3802" class="LineNr">3802 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3803" class="LineNr">3803 </span>    <span class="subxComment"># emit-indirect-mode(_test-output-buffered-file, 4/base, 0/index, 0/scale, 0/disp)</span>
<span id="L3804" class="LineNr">3804 </span>    <span class="subxS2Comment"># . . write args</span>
<span id="L3805" class="LineNr">3805 </span>    68/push  0/imm32/.disp
<span id="L3806" class="LineNr">3806 </span>    68/push  0/imm32/.scale
<span id="L3807" class="LineNr">3807 </span>    68/push  0/imm32/.index
<span id="L3808" class="LineNr">3808 </span>    68/push  4/imm32/.base/esp
<span id="L3809" class="LineNr">3809 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3810" class="LineNr">3810 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3811" class="LineNr">3811 </span>    e8/call  <a href='sigils.subx.html#L3152'>emit-indirect-mode</a>/disp32
<span id="L3812" class="LineNr">3812 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3813" class="LineNr">3813 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x14/imm32        <span class="subxComment"># add to esp</span>
<span id="L3814" class="LineNr">3814 </span>    <span class="subxS1Comment"># . flush(_test-output-buffered-file)</span>
<span id="L3815" class="LineNr">3815 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3816" class="LineNr">3816 </span>    68/push  <a href='../064write-byte.subx.html#L360'>_test-output-buffered-file</a>/imm32
<span id="L3817" class="LineNr">3817 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3818" class="LineNr">3818 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L3819" class="LineNr">3819 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3820" class="LineNr">3820 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L3821" class="Folded">3821 </span><span class="Folded">+-- 26 lines: #?     # dump output ------------------------------------------------------------------------------------------------------------------------------------------------------</span>
<span id="L3847" class="LineNr">3847 </span>    <span class="subxComment"># check-stream-equal(_test-output-stream, &quot;2/mod/*+disp32 4/rm32/sib 4/base/ebp 0/index 0/scale 0/disp32&quot;, msg)</span>
<span id="L3848" class="LineNr">3848 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3849" class="LineNr">3849 </span>    68/push  <span class="Constant">&quot;F - test-emit-indirect-mode-esp&quot;</span>/imm32
<span id="L3850" class="LineNr">3850 </span>    68/push  <span class="Constant">&quot;2/mod/*+disp32 4/rm32/sib 0x00000004/base 0x00000000/index 0x00000000/scale 0x00000000/disp32&quot;</span>/imm32
<span id="L3851" class="LineNr">3851 </span>    68/push  <a href='../064write-byte.subx.html#L286'>_test-output-stream</a>/imm32
<span id="L3852" class="LineNr">3852 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3853" class="LineNr">3853 </span>    e8/call  <a href='../058stream-equal.subx.html#L194'>check-stream-equal</a>/disp32
<span id="L3854" class="LineNr">3854 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3855" class="LineNr">3855 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3856" class="LineNr">3856 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3857" class="LineNr">3857 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3858" class="LineNr">3858 </span>    5d/pop-to-ebp
<span id="L3859" class="LineNr">3859 </span>    c3/return
<span id="L3860" class="LineNr">3860 </span>
<span id="L3861" class="LineNr">3861 </span><span class="subxFunction">disp32-mode?</span>:  <span class="subxComment"># in: (addr slice) -&gt; reg/eax: boolean</span>
<span id="L3862" class="LineNr">3862 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3863" class="LineNr">3863 </span>    55/push-ebp
<span id="L3864" class="LineNr">3864 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3865" class="LineNr">3865 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L3866" class="LineNr">3866 </span>    56/push-esi
<span id="L3867" class="LineNr">3867 </span>    57/push-edi
<span id="L3868" class="LineNr">3868 </span>    <span class="subxComment"># var local-slice/esi: slice = {in-&gt;start, in-&gt;end}</span>
<span id="L3869" class="LineNr">3869 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
<span id="L3870" class="LineNr">3870 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L3871" class="LineNr">3871 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L3872" class="LineNr">3872 </span>    89/copy                         3/mod/direct    6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to esi</span>
<span id="L3873" class="LineNr">3873 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '*'</span>
<span id="L3874" class="LineNr">3874 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L3875" class="LineNr">3875 </span>    <span class="subxComment"># if (*local-slice-&gt;start == '(') return false</span>
<span id="L3876" class="LineNr">3876 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to eax</span>
<span id="L3877" class="LineNr">3877 </span>    8a/copy-byte                    0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *eax to AL</span>
<span id="L3878" class="LineNr">3878 </span>    81          4/subop/and         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xff/imm32        <span class="subxComment"># bitwise and of eax</span>
<span id="L3879" class="LineNr">3879 </span>    3d/compare-eax-and  0x28/imm32/open-paren
<span id="L3880" class="LineNr">3880 </span>    74/jump-if-=  $disp32-mode?:false/disp8
<span id="L3881" class="LineNr">3881 </span><span class="Constant">$disp32-mode?:check-for-register</span>:
<span id="L3882" class="LineNr">3882 </span>    <span class="subxComment"># local-slice = next-token-from-slice(local-slice-&gt;start, local-slice-&gt;end, &quot;/&quot;)</span>
<span id="L3883" class="LineNr">3883 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3884" class="LineNr">3884 </span>    56/push-esi
<span id="L3885" class="LineNr">3885 </span>    68/push  0x2f/imm32/slash
<span id="L3886" class="LineNr">3886 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L3887" class="LineNr">3887 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L3888" class="LineNr">3888 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3889" class="LineNr">3889 </span>    e8/call  <a href='../073next-token.subx.html#L163'>next-token-from-slice</a>/disp32
<span id="L3890" class="LineNr">3890 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3891" class="LineNr">3891 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0x10/imm32        <span class="subxComment"># add to esp</span>
<span id="L3892" class="LineNr">3892 </span>    <span class="subxComment"># reg-num/eax = maybe-get-slice(Registers, local-slice, row-size=8)</span>
<span id="L3893" class="LineNr">3893 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3894" class="LineNr">3894 </span>    68/push  8/imm32/row-size
<span id="L3895" class="LineNr">3895 </span>    56/push-esi
<span id="L3896" class="LineNr">3896 </span>    68/push  <span class="SpecialChar"><a href='../090register-names.subx.html#L2'>Registers</a></span>/imm32
<span id="L3897" class="LineNr">3897 </span>    <span class="subxS2Comment"># . . cal</span>
<span id="L3898" class="LineNr">3898 </span>    e8/call  <a href='../081table.subx.html#L1529'>maybe-get-slice</a>/disp32
<span id="L3899" class="LineNr">3899 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3900" class="LineNr">3900 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L3901" class="LineNr">3901 </span>    <span class="subxComment"># if (eax != 0) return false</span>
<span id="L3902" class="LineNr">3902 </span>    3d/compare-eax-and  0/imm32
<span id="L3903" class="LineNr">3903 </span>    75/jump-if-!=  $disp32-mode?:false/disp8
<span id="L3904" class="LineNr">3904 </span>    <span class="subxComment"># return true</span>
<span id="L3905" class="LineNr">3905 </span>    b8/copy-to-eax  1/imm32/true
<span id="L3906" class="LineNr">3906 </span>    eb/jump  $disp32-mode?:end/disp8
<span id="L3907" class="LineNr">3907 </span><span class="Constant">$disp32-mode?:false</span>:
<span id="L3908" class="LineNr">3908 </span>    b8/copy-to-eax  0/imm32/false
<span id="L3909" class="LineNr">3909 </span><span class="Constant">$disp32-mode?:end</span>:
<span id="L3910" class="LineNr">3910 </span>    <span class="subxS1Comment"># . reclaim locals</span>
<span id="L3911" class="LineNr">3911 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3912" class="LineNr">3912 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L3913" class="LineNr">3913 </span>    5f/pop-to-edi
<span id="L3914" class="LineNr">3914 </span>    5e/pop-to-esi
<span id="L3915" class="LineNr">3915 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3916" class="LineNr">3916 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3917" class="LineNr">3917 </span>    5d/pop-to-ebp
<span id="L3918" class="LineNr">3918 </span>    c3/return
<span id="L3919" class="LineNr">3919 </span>
<span id="L3920" class="LineNr">3920 </span><span class="subxFunction">emit-indirect-disp32</span>:  <span class="subxComment"># out: (addr buffered-file), word-slice: (addr slice)</span>
<span id="L3921" class="LineNr">3921 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3922" class="LineNr">3922 </span>    55/push-ebp
<span id="L3923" class="LineNr">3923 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3924" class="LineNr">3924 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L3925" class="LineNr">3925 </span>    56/push-esi
<span id="L3926" class="LineNr">3926 </span>    <span class="subxComment"># var local-slice/esi: slice = {in-&gt;start, in-&gt;end}</span>
<span id="L3927" class="LineNr">3927 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   0xc/disp8      <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+12) to esi</span>
<span id="L3928" class="LineNr">3928 </span>    ff          6/subop/push        1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(esi+4)</span>
<span id="L3929" class="LineNr">3929 </span>    ff          6/subop/push        0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># push *esi</span>
<span id="L3930" class="LineNr">3930 </span>    89/copy                         3/mod/direct    6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to esi</span>
<span id="L3931" class="LineNr">3931 </span>    <span class="subxComment"># ++local-slice-&gt;start to skip '*'</span>
<span id="L3932" class="LineNr">3932 </span>    ff          0/subop/increment   0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># increment *esi</span>
<span id="L3933" class="LineNr">3933 </span>    <span class="subxComment"># write-buffered(out, &quot;0/mod/indirect 5/rm32/.disp32 &quot;)</span>
<span id="L3934" class="LineNr">3934 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3935" class="LineNr">3935 </span>    68/push  <span class="Constant">&quot;0/mod/indirect 5/rm32/.disp32 &quot;</span>/imm32
<span id="L3936" class="LineNr">3936 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3937" class="LineNr">3937 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3938" class="LineNr">3938 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3939" class="LineNr">3939 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3940" class="LineNr">3940 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3941" class="LineNr">3941 </span>    <span class="subxComment"># write-slice-buffered(out, local-slice)</span>
<span id="L3942" class="LineNr">3942 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3943" class="LineNr">3943 </span>    56/push-esi
<span id="L3944" class="LineNr">3944 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3945" class="LineNr">3945 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3946" class="LineNr">3946 </span>    e8/call  <a href='../072slice.subx.html#L909'>write-slice-buffered</a>/disp32
<span id="L3947" class="LineNr">3947 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3948" class="LineNr">3948 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3949" class="LineNr">3949 </span>    <span class="subxComment"># write-buffered(out, &quot;/disp32&quot;)</span>
<span id="L3950" class="LineNr">3950 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L3951" class="LineNr">3951 </span>    68/push  <span class="Constant">&quot;/disp32&quot;</span>/imm32
<span id="L3952" class="LineNr">3952 </span>    ff          6/subop/push        1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>          8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># push *(ebp+8)</span>
<span id="L3953" class="LineNr">3953 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L3954" class="LineNr">3954 </span>    e8/call  <a href='../065write-buffered.subx.html#L8'>write-buffered</a>/disp32
<span id="L3955" class="LineNr">3955 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L3956" class="LineNr">3956 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3957" class="LineNr">3957 </span><span class="Constant">$emit-indirect-disp32:end</span>:
<span id="L3958" class="LineNr">3958 </span>    <span class="subxS1Comment"># . reclaim locals</span>
<span id="L3959" class="LineNr">3959 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L3960" class="LineNr">3960 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L3961" class="LineNr">3961 </span>    5e/pop-to-esi
<span id="L3962" class="LineNr">3962 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L3963" class="LineNr">3963 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L3964" class="LineNr">3964 </span>    5d/pop-to-ebp
<span id="L3965" class="LineNr">3965 </span>    c3/return
<span id="L3966" class="LineNr">3966 </span>
<span id="L3967" class="LineNr">3967 </span><span class="subxComment"># assumes 'in' starts with optional '+' or '-', optional whitespace, and an unsigned integer</span>
<span id="L3968" class="LineNr">3968 </span><span class="subxComment"># returns the value of the integer</span>
<span id="L3969" class="LineNr">3969 </span><span class="subxComment"># side-effect: modifies 'in' to skip past the integer</span>
<span id="L3970" class="LineNr">3970 </span><span class="subxFunction">next-hex-int</span>:  <span class="subxComment"># in: (addr slice) -&gt; result/eax</span>
<span id="L3971" class="LineNr">3971 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L3972" class="LineNr">3972 </span>    55/push-ebp
<span id="L3973" class="LineNr">3973 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L3974" class="LineNr">3974 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L3975" class="LineNr">3975 </span>    51/push-ecx
<span id="L3976" class="LineNr">3976 </span>    52/push-edx
<span id="L3977" class="LineNr">3977 </span>    53/push-ebx
<span id="L3978" class="LineNr">3978 </span>    56/push-esi
<span id="L3979" class="LineNr">3979 </span>    57/push-edi
<span id="L3980" class="LineNr">3980 </span>    <span class="subxComment"># result/edi = 0</span>
<span id="L3981" class="LineNr">3981 </span>    31/xor                          3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear edi</span>
<span id="L3982" class="LineNr">3982 </span>    <span class="subxComment"># esi = in</span>
<span id="L3983" class="LineNr">3983 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
<span id="L3984" class="LineNr">3984 </span>    <span class="subxComment"># edx = in-&gt;end</span>
<span id="L3985" class="LineNr">3985 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to edx</span>
<span id="L3986" class="LineNr">3986 </span>    <span class="subxComment"># curr/ecx = in-&gt;start</span>
<span id="L3987" class="LineNr">3987 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to ecx</span>
<span id="L3988" class="LineNr">3988 </span>    <span class="subxComment"># negate?/ebx = false</span>
<span id="L3989" class="LineNr">3989 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
<span id="L3990" class="LineNr">3990 </span>    <span class="subxComment"># eax = *curr</span>
<span id="L3991" class="LineNr">3991 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
<span id="L3992" class="LineNr">3992 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L3993" class="LineNr">3993 </span><span class="Constant">$next-hex-int:positive</span>:
<span id="L3994" class="LineNr">3994 </span>    <span class="subxComment"># if (*curr == '+') ++curr</span>
<span id="L3995" class="LineNr">3995 </span>    3d/compare-eax-and  0x2b/imm32/+
<span id="L3996" class="LineNr">3996 </span>    75/jump-if-!=  $next-hex-int:negative/disp8
<span id="L3997" class="LineNr">3997 </span>    <span class="subxS1Comment"># . ++curr</span>
<span id="L3998" class="LineNr">3998 </span>    41/increment-ecx
<span id="L3999" class="LineNr">3999 </span>    eb/jump  $next-hex-int:skip-whitespace/disp8
<span id="L4000" class="LineNr">4000 </span><span class="Constant">$next-hex-int:negative</span>:
<span id="L4001" class="LineNr">4001 </span>    <span class="subxComment"># else if (*curr == '-') ++curr, negate = true</span>
<span id="L4002" class="LineNr">4002 </span>    3d/compare-eax-and  0x2d/imm32/-
<span id="L4003" class="LineNr">4003 </span>    75/jump-if-!=  $next-hex-int:skip-whitespace/disp8
<span id="L4004" class="LineNr">4004 </span><span class="Constant">$next-hex-int:need-to-negate</span>:
<span id="L4005" class="LineNr">4005 </span>    <span class="subxS1Comment"># . ++curr</span>
<span id="L4006" class="LineNr">4006 </span>    41/increment-ecx
<span id="L4007" class="LineNr">4007 </span>    <span class="subxS1Comment"># . negate = true</span>
<span id="L4008" class="LineNr">4008 </span>    bb/copy-to-ebx  1/imm32/true
<span id="L4009" class="LineNr">4009 </span>    <span class="subxComment"># fall through</span>
<span id="L4010" class="LineNr">4010 </span><span class="Constant">$next-hex-int:skip-whitespace</span>:
<span id="L4011" class="LineNr">4011 </span>    <span class="subxComment"># spill eax</span>
<span id="L4012" class="LineNr">4012 </span>    50/push-eax
<span id="L4013" class="LineNr">4013 </span>    <span class="subxComment"># eax = skip-chars-matching-whitespace-in-slice(word-slice-&gt;start, word-slice-&gt;end)</span>
<span id="L4014" class="LineNr">4014 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4015" class="LineNr">4015 </span>    52/push-edx
<span id="L4016" class="LineNr">4016 </span>    51/push-ecx
<span id="L4017" class="LineNr">4017 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4018" class="LineNr">4018 </span>    e8/call  <a href='../073next-token.subx.html#L900'>skip-chars-matching-whitespace-in-slice</a>/disp32
<span id="L4019" class="LineNr">4019 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4020" class="LineNr">4020 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L4021" class="LineNr">4021 </span>    <span class="subxComment"># ecx = eax</span>
<span id="L4022" class="LineNr">4022 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy eax to ecx</span>
<span id="L4023" class="LineNr">4023 </span>    <span class="subxComment"># restore eax</span>
<span id="L4024" class="LineNr">4024 </span>    58/pop-to-eax
<span id="L4025" class="LineNr">4025 </span><span class="Constant">$next-hex-int:initial-0</span>:
<span id="L4026" class="LineNr">4026 </span>    <span class="subxComment"># skip past leading '0x'</span>
<span id="L4027" class="LineNr">4027 </span>    <span class="subxS1Comment"># . if (*curr != '0') jump to loop</span>
<span id="L4028" class="LineNr">4028 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4029" class="LineNr">4029 </span>    3d/compare-eax-and  0x30/imm32/0
<span id="L4030" class="LineNr">4030 </span>    75/jump-if-!=  $next-hex-int:<span class="Constant">loop</span>/disp8
<span id="L4031" class="LineNr">4031 </span>    <span class="subxS1Comment"># . ++curr</span>
<span id="L4032" class="LineNr">4032 </span>    41/increment-ecx
<span id="L4033" class="LineNr">4033 </span><span class="Constant">$next-hex-int:initial-0x</span>:
<span id="L4034" class="LineNr">4034 </span>    <span class="subxS1Comment"># . if (curr &gt;= in-&gt;end) return result</span>
<span id="L4035" class="LineNr">4035 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with edx</span>
<span id="L4036" class="LineNr">4036 </span>    73/jump-if-addr&gt;=  $next-hex-int:end/disp8
<span id="L4037" class="LineNr">4037 </span>    <span class="subxS1Comment"># . if (*curr != 'x') jump to loop  # the previous '0' is still valid so doesn't need to be checked again</span>
<span id="L4038" class="LineNr">4038 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
<span id="L4039" class="LineNr">4039 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4040" class="LineNr">4040 </span>    3d/compare-eax-and  0x78/imm32/x
<span id="L4041" class="LineNr">4041 </span>    75/jump-if-!=  $next-hex-int:<span class="Constant">loop</span>/disp8
<span id="L4042" class="LineNr">4042 </span>    <span class="subxS1Comment"># . ++curr</span>
<span id="L4043" class="LineNr">4043 </span>    41/increment-ecx
<span id="L4044" class="LineNr">4044 </span><span class="Constant">$next-hex-int:loop</span>:
<span id="L4045" class="LineNr">4045 </span>    <span class="subxComment"># if (curr &gt;= in-&gt;end) break</span>
<span id="L4046" class="LineNr">4046 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with edx</span>
<span id="L4047" class="LineNr">4047 </span>    73/jump-if-addr&gt;=  $next-hex-int:<span class="Constant">break</span>/disp8
<span id="L4048" class="LineNr">4048 </span>    <span class="subxComment"># if (!is-hex-digit?(*curr)) break</span>
<span id="L4049" class="LineNr">4049 </span>    <span class="subxS1Comment"># . eax = *curr</span>
<span id="L4050" class="LineNr">4050 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4051" class="LineNr">4051 </span>    <span class="subxS1Comment"># . eax = is-hex-digit?(*curr)</span>
<span id="L4052" class="LineNr">4052 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4053" class="LineNr">4053 </span>    50/push-eax
<span id="L4054" class="LineNr">4054 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4055" class="LineNr">4055 </span>    e8/call  <a href='../067parse-hex.subx.html#L701'>is-hex-digit?</a>/disp32
<span id="L4056" class="LineNr">4056 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4057" class="LineNr">4057 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4058" class="LineNr">4058 </span>    <span class="subxS1Comment"># . if (eax == false) break</span>
<span id="L4059" class="LineNr">4059 </span>    3d/compare-eax-and  0/imm32/false
<span id="L4060" class="LineNr">4060 </span>    74/jump-if-=  $next-hex-int:<span class="Constant">break</span>/disp8
<span id="L4061" class="LineNr">4061 </span>    <span class="subxComment"># eax = from-hex-char(*curr)</span>
<span id="L4062" class="LineNr">4062 </span>    <span class="subxS2Comment"># . . copy arg to eax</span>
<span id="L4063" class="LineNr">4063 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4064" class="LineNr">4064 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4065" class="LineNr">4065 </span>    e8/call  <a href='../067parse-hex.subx.html#L864'>from-hex-char</a>/disp32
<span id="L4066" class="LineNr">4066 </span>    <span class="subxComment"># result = result * 16 + eax</span>
<span id="L4067" class="LineNr">4067 </span>    c1/shift    4/subop/left        3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm8            <span class="subxComment"># shift edi left by 4 bits</span>
<span id="L4068" class="LineNr">4068 </span>    01/add                          3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># add eax to edi</span>
<span id="L4069" class="LineNr">4069 </span>    <span class="subxComment"># ++curr</span>
<span id="L4070" class="LineNr">4070 </span>    41/increment-ecx
<span id="L4071" class="LineNr">4071 </span>    <span class="subxComment"># loop</span>
<span id="L4072" class="LineNr">4072 </span>    eb/jump  $next-hex-int:<span class="Constant">loop</span>/disp8
<span id="L4073" class="LineNr">4073 </span><span class="Constant">$next-hex-int:break</span>:
<span id="L4074" class="LineNr">4074 </span>    <span class="subxComment"># if (negate?) result = -result</span>
<span id="L4075" class="LineNr">4075 </span>    81          7/subop/compare     3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0/imm32/false     <span class="subxComment"># compare ebx</span>
<span id="L4076" class="LineNr">4076 </span>    74/jump-if-=  $next-hex-int:end/disp8
<span id="L4077" class="LineNr">4077 </span><span class="Constant">$next-hex-int:negate</span>:
<span id="L4078" class="LineNr">4078 </span>    f7          3/subop/negate      3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># negate edi</span>
<span id="L4079" class="LineNr">4079 </span><span class="Constant">$next-hex-int:end</span>:
<span id="L4080" class="LineNr">4080 </span>    <span class="subxComment"># word-slice-&gt;start = curr</span>
<span id="L4081" class="LineNr">4081 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx to *esi</span>
<span id="L4082" class="LineNr">4082 </span>    <span class="subxComment"># return edi</span>
<span id="L4083" class="LineNr">4083 </span>    89/copy                         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy edi to eax</span>
<span id="L4084" class="LineNr">4084 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L4085" class="LineNr">4085 </span>    5f/pop-to-edi
<span id="L4086" class="LineNr">4086 </span>    5e/pop-to-esi
<span id="L4087" class="LineNr">4087 </span>    5b/pop-to-ebx
<span id="L4088" class="LineNr">4088 </span>    5a/pop-to-edx
<span id="L4089" class="LineNr">4089 </span>    59/pop-to-ecx
<span id="L4090" class="LineNr">4090 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4091" class="LineNr">4091 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4092" class="LineNr">4092 </span>    5d/pop-to-ebp
<span id="L4093" class="LineNr">4093 </span>    c3/return
<span id="L4094" class="LineNr">4094 </span>
<span id="L4095" class="LineNr">4095 </span><span class="Constant">$next-hex-int:abort</span>:
<span id="L4096" class="LineNr">4096 </span>    <span class="subxS1Comment"># . _write(2/stderr, error)</span>
<span id="L4097" class="LineNr">4097 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4098" class="LineNr">4098 </span>    68/push  <span class="Constant">&quot;next-hex-int: invalid hex char: &quot;</span>/imm32
<span id="L4099" class="LineNr">4099 </span>    68/push  2/imm32/stderr
<span id="L4100" class="LineNr">4100 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4101" class="LineNr">4101 </span>    e8/call  <a href='../050_write.subx.html#L14'>_write</a>/disp32
<span id="L4102" class="LineNr">4102 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4103" class="LineNr">4103 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L4104" class="LineNr">4104 </span>    <span class="subxS1Comment"># . clear-stream($Stderr-&gt;buffer)</span>
<span id="L4105" class="LineNr">4105 </span>    <span class="subxS2Comment"># . . save eax</span>
<span id="L4106" class="LineNr">4106 </span>    50/push-eax
<span id="L4107" class="LineNr">4107 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4108" class="LineNr">4108 </span>    68/push  $Stderr-&gt;buffer/imm32
<span id="L4109" class="LineNr">4109 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4110" class="LineNr">4110 </span>    e8/call  <a href='../055stream.subx.html#L17'>clear-stream</a>/disp32
<span id="L4111" class="LineNr">4111 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4112" class="LineNr">4112 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4113" class="LineNr">4113 </span>    <span class="subxS2Comment"># . . restore eax</span>
<span id="L4114" class="LineNr">4114 </span>    58/pop-to-eax
<span id="L4115" class="LineNr">4115 </span>    <span class="subxS1Comment"># . print-int32-buffered(Stderr, eax)</span>
<span id="L4116" class="LineNr">4116 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4117" class="LineNr">4117 </span>    50/push-eax
<span id="L4118" class="LineNr">4118 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L4119" class="LineNr">4119 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4120" class="LineNr">4120 </span>    e8/call  <a href='../066print-int.subx.html#L266'>print-int32-buffered</a>/disp32
<span id="L4121" class="LineNr">4121 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4122" class="LineNr">4122 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L4123" class="LineNr">4123 </span>    <span class="subxS1Comment"># . flush(Stderr)</span>
<span id="L4124" class="LineNr">4124 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4125" class="LineNr">4125 </span>    68/push  <span class="SpecialChar"><a href='../065write-buffered.subx.html#L209'>Stderr</a></span>/imm32
<span id="L4126" class="LineNr">4126 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4127" class="LineNr">4127 </span>    e8/call  <a href='../064write-byte.subx.html#L81'>flush</a>/disp32
<span id="L4128" class="LineNr">4128 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4129" class="LineNr">4129 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4130" class="LineNr">4130 </span>    <span class="subxS1Comment"># . _write(2/stderr, &quot;\n&quot;)</span>
<span id="L4131" class="LineNr">4131 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4132" class="LineNr">4132 </span>    68/push  <span class="SpecialChar"><a href='../051test.subx.html#L83'>Newline</a></span>/imm32
<span id="L4133" class="LineNr">4133 </span>    68/push  2/imm32/stderr
<span id="L4134" class="LineNr">4134 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4135" class="LineNr">4135 </span>    e8/call  <a href='../050_write.subx.html#L14'>_write</a>/disp32
<span id="L4136" class="LineNr">4136 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4137" class="LineNr">4137 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              8/imm32           <span class="subxComment"># add to esp</span>
<span id="L4138" class="LineNr">4138 </span>    <span class="subxS1Comment"># . syscall(exit, 1)</span>
<span id="L4139" class="LineNr">4139 </span>    bb/copy-to-ebx  1/imm32
<span id="L4140" class="LineNr">4140 </span>    b8/copy-to-eax  1/imm32/exit
<span id="L4141" class="LineNr">4141 </span>    cd/syscall  0x80/imm8
<span id="L4142" class="LineNr">4142 </span>    <span class="subxComment"># never gets here</span>
<span id="L4143" class="LineNr">4143 </span>
<span id="L4144" class="LineNr">4144 </span><span class="subxTest">test-next-hex-int-single-digit</span>:
<span id="L4145" class="LineNr">4145 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4146" class="LineNr">4146 </span>    55/push-ebp
<span id="L4147" class="LineNr">4147 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4148" class="LineNr">4148 </span>    <span class="subxComment"># (eax..ecx) = &quot;+a)&quot;</span>
<span id="L4149" class="LineNr">4149 </span>    b8/copy-to-eax  <span class="Constant">&quot;+a)&quot;</span>/imm32
<span id="L4150" class="LineNr">4150 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4151" class="LineNr">4151 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4152" class="LineNr">4152 </span>    05/add-to-eax  4/imm32
<span id="L4153" class="LineNr">4153 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4154" class="LineNr">4154 </span>    51/push-ecx
<span id="L4155" class="LineNr">4155 </span>    50/push-eax
<span id="L4156" class="LineNr">4156 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4157" class="LineNr">4157 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4158" class="LineNr">4158 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4159" class="LineNr">4159 </span>    51/push-ecx
<span id="L4160" class="LineNr">4160 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4161" class="LineNr">4161 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4162" class="LineNr">4162 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4163" class="LineNr">4163 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4164" class="LineNr">4164 </span>    <span class="subxComment"># check-ints-equal(eax, 0xa, msg)</span>
<span id="L4165" class="LineNr">4165 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4166" class="LineNr">4166 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-single-digit&quot;</span>/imm32
<span id="L4167" class="LineNr">4167 </span>    68/push  0xa/imm32
<span id="L4168" class="LineNr">4168 </span>    50/push-eax
<span id="L4169" class="LineNr">4169 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4170" class="LineNr">4170 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4171" class="LineNr">4171 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4172" class="LineNr">4172 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4173" class="LineNr">4173 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4174" class="LineNr">4174 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4175" class="LineNr">4175 </span>    5d/pop-to-ebp
<span id="L4176" class="LineNr">4176 </span>    c3/return
<span id="L4177" class="LineNr">4177 </span>
<span id="L4178" class="LineNr">4178 </span><span class="subxTest">test-next-hex-int-multi-digit</span>:
<span id="L4179" class="LineNr">4179 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4180" class="LineNr">4180 </span>    55/push-ebp
<span id="L4181" class="LineNr">4181 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4182" class="LineNr">4182 </span>    <span class="subxComment"># (eax..ecx) = &quot;+ 34a)&quot;</span>
<span id="L4183" class="LineNr">4183 </span>    b8/copy-to-eax  <span class="Constant">&quot;+ 34a)&quot;</span>/imm32
<span id="L4184" class="LineNr">4184 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4185" class="LineNr">4185 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4186" class="LineNr">4186 </span>    05/add-to-eax  4/imm32
<span id="L4187" class="LineNr">4187 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4188" class="LineNr">4188 </span>    51/push-ecx
<span id="L4189" class="LineNr">4189 </span>    50/push-eax
<span id="L4190" class="LineNr">4190 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4191" class="LineNr">4191 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4192" class="LineNr">4192 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4193" class="LineNr">4193 </span>    51/push-ecx
<span id="L4194" class="LineNr">4194 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4195" class="LineNr">4195 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4196" class="LineNr">4196 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4197" class="LineNr">4197 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4198" class="LineNr">4198 </span>    <span class="subxComment"># check-ints-equal(eax, 0x34a, msg)</span>
<span id="L4199" class="LineNr">4199 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4200" class="LineNr">4200 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-multi-digit&quot;</span>/imm32
<span id="L4201" class="LineNr">4201 </span>    68/push  0x34a/imm32
<span id="L4202" class="LineNr">4202 </span>    50/push-eax
<span id="L4203" class="LineNr">4203 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4204" class="LineNr">4204 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4205" class="LineNr">4205 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4206" class="LineNr">4206 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4207" class="LineNr">4207 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4208" class="LineNr">4208 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4209" class="LineNr">4209 </span>    5d/pop-to-ebp
<span id="L4210" class="LineNr">4210 </span>    c3/return
<span id="L4211" class="LineNr">4211 </span>
<span id="L4212" class="LineNr">4212 </span><span class="subxTest">test-next-hex-int-0x-prefix</span>:
<span id="L4213" class="LineNr">4213 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4214" class="LineNr">4214 </span>    55/push-ebp
<span id="L4215" class="LineNr">4215 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4216" class="LineNr">4216 </span>    <span class="subxComment"># (eax..ecx) = &quot;+0x34)&quot;</span>
<span id="L4217" class="LineNr">4217 </span>    b8/copy-to-eax  <span class="Constant">&quot;+0x34)&quot;</span>/imm32
<span id="L4218" class="LineNr">4218 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4219" class="LineNr">4219 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4220" class="LineNr">4220 </span>    05/add-to-eax  4/imm32
<span id="L4221" class="LineNr">4221 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4222" class="LineNr">4222 </span>    51/push-ecx
<span id="L4223" class="LineNr">4223 </span>    50/push-eax
<span id="L4224" class="LineNr">4224 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4225" class="LineNr">4225 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4226" class="LineNr">4226 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4227" class="LineNr">4227 </span>    51/push-ecx
<span id="L4228" class="LineNr">4228 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4229" class="LineNr">4229 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4230" class="LineNr">4230 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4231" class="LineNr">4231 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4232" class="LineNr">4232 </span>    <span class="subxComment"># check-ints-equal(eax, 0x34, msg)</span>
<span id="L4233" class="LineNr">4233 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4234" class="LineNr">4234 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-0x-prefix&quot;</span>/imm32
<span id="L4235" class="LineNr">4235 </span>    68/push  0x34/imm32
<span id="L4236" class="LineNr">4236 </span>    50/push-eax
<span id="L4237" class="LineNr">4237 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4238" class="LineNr">4238 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4239" class="LineNr">4239 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4240" class="LineNr">4240 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4241" class="LineNr">4241 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4242" class="LineNr">4242 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4243" class="LineNr">4243 </span>    5d/pop-to-ebp
<span id="L4244" class="LineNr">4244 </span>    c3/return
<span id="L4245" class="LineNr">4245 </span>
<span id="L4246" class="LineNr">4246 </span><span class="subxTest">test-next-hex-int-zero</span>:
<span id="L4247" class="LineNr">4247 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4248" class="LineNr">4248 </span>    55/push-ebp
<span id="L4249" class="LineNr">4249 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4250" class="LineNr">4250 </span>    <span class="subxComment"># (eax..ecx) = &quot;+0)&quot;</span>
<span id="L4251" class="LineNr">4251 </span>    b8/copy-to-eax  <span class="Constant">&quot;+0)&quot;</span>/imm32
<span id="L4252" class="LineNr">4252 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4253" class="LineNr">4253 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4254" class="LineNr">4254 </span>    05/add-to-eax  4/imm32
<span id="L4255" class="LineNr">4255 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4256" class="LineNr">4256 </span>    51/push-ecx
<span id="L4257" class="LineNr">4257 </span>    50/push-eax
<span id="L4258" class="LineNr">4258 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4259" class="LineNr">4259 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4260" class="LineNr">4260 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4261" class="LineNr">4261 </span>    51/push-ecx
<span id="L4262" class="LineNr">4262 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4263" class="LineNr">4263 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4264" class="LineNr">4264 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4265" class="LineNr">4265 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4266" class="LineNr">4266 </span>    <span class="subxComment"># check-ints-equal(eax, 0, msg)</span>
<span id="L4267" class="LineNr">4267 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4268" class="LineNr">4268 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-zero&quot;</span>/imm32
<span id="L4269" class="LineNr">4269 </span>    68/push  0/imm32
<span id="L4270" class="LineNr">4270 </span>    50/push-eax
<span id="L4271" class="LineNr">4271 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4272" class="LineNr">4272 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4273" class="LineNr">4273 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4274" class="LineNr">4274 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4275" class="LineNr">4275 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4276" class="LineNr">4276 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4277" class="LineNr">4277 </span>    5d/pop-to-ebp
<span id="L4278" class="LineNr">4278 </span>    c3/return
<span id="L4279" class="LineNr">4279 </span>
<span id="L4280" class="LineNr">4280 </span><span class="subxTest">test-next-hex-int-0-prefix</span>:
<span id="L4281" class="LineNr">4281 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4282" class="LineNr">4282 </span>    55/push-ebp
<span id="L4283" class="LineNr">4283 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4284" class="LineNr">4284 </span>    <span class="subxComment"># (eax..ecx) = &quot;+ 03)&quot;</span>
<span id="L4285" class="LineNr">4285 </span>    b8/copy-to-eax  <span class="Constant">&quot;+ 03)&quot;</span>/imm32
<span id="L4286" class="LineNr">4286 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4287" class="LineNr">4287 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4288" class="LineNr">4288 </span>    05/add-to-eax  4/imm32
<span id="L4289" class="LineNr">4289 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4290" class="LineNr">4290 </span>    51/push-ecx
<span id="L4291" class="LineNr">4291 </span>    50/push-eax
<span id="L4292" class="LineNr">4292 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4293" class="LineNr">4293 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4294" class="LineNr">4294 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4295" class="LineNr">4295 </span>    51/push-ecx
<span id="L4296" class="LineNr">4296 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4297" class="LineNr">4297 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4298" class="LineNr">4298 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4299" class="LineNr">4299 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4300" class="LineNr">4300 </span>    <span class="subxComment"># check-ints-equal(eax, 3, msg)</span>
<span id="L4301" class="LineNr">4301 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4302" class="LineNr">4302 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-0-prefix&quot;</span>/imm32
<span id="L4303" class="LineNr">4303 </span>    68/push  3/imm32
<span id="L4304" class="LineNr">4304 </span>    50/push-eax
<span id="L4305" class="LineNr">4305 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4306" class="LineNr">4306 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4307" class="LineNr">4307 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4308" class="LineNr">4308 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4309" class="LineNr">4309 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4310" class="LineNr">4310 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4311" class="LineNr">4311 </span>    5d/pop-to-ebp
<span id="L4312" class="LineNr">4312 </span>    c3/return
<span id="L4313" class="LineNr">4313 </span>
<span id="L4314" class="LineNr">4314 </span><span class="subxTest">test-next-hex-int-negative</span>:
<span id="L4315" class="LineNr">4315 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4316" class="LineNr">4316 </span>    55/push-ebp
<span id="L4317" class="LineNr">4317 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4318" class="LineNr">4318 </span>    <span class="subxComment"># (eax..ecx) = &quot;-03)&quot;</span>
<span id="L4319" class="LineNr">4319 </span>    b8/copy-to-eax  <span class="Constant">&quot;-03)&quot;</span>/imm32
<span id="L4320" class="LineNr">4320 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4321" class="LineNr">4321 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4322" class="LineNr">4322 </span>    05/add-to-eax  4/imm32
<span id="L4323" class="LineNr">4323 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4324" class="LineNr">4324 </span>    51/push-ecx
<span id="L4325" class="LineNr">4325 </span>    50/push-eax
<span id="L4326" class="LineNr">4326 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4327" class="LineNr">4327 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4328" class="LineNr">4328 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4329" class="LineNr">4329 </span>    51/push-ecx
<span id="L4330" class="LineNr">4330 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4331" class="LineNr">4331 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4332" class="LineNr">4332 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4333" class="LineNr">4333 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4334" class="LineNr">4334 </span>    <span class="subxComment"># check-ints-equal(eax, -3, msg)</span>
<span id="L4335" class="LineNr">4335 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4336" class="LineNr">4336 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-negative&quot;</span>/imm32
<span id="L4337" class="LineNr">4337 </span>    68/push  -3/imm32
<span id="L4338" class="LineNr">4338 </span>    50/push-eax
<span id="L4339" class="LineNr">4339 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4340" class="LineNr">4340 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4341" class="LineNr">4341 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4342" class="LineNr">4342 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4343" class="LineNr">4343 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4344" class="LineNr">4344 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4345" class="LineNr">4345 </span>    5d/pop-to-ebp
<span id="L4346" class="LineNr">4346 </span>    c3/return
<span id="L4347" class="LineNr">4347 </span>
<span id="L4348" class="LineNr">4348 </span><span class="subxTest">test-next-hex-int-negative-with-space</span>:
<span id="L4349" class="LineNr">4349 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4350" class="LineNr">4350 </span>    55/push-ebp
<span id="L4351" class="LineNr">4351 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4352" class="LineNr">4352 </span>    <span class="subxComment"># (eax..ecx) = &quot;- 03)&quot;</span>
<span id="L4353" class="LineNr">4353 </span>    b8/copy-to-eax  <span class="Constant">&quot;- 03)&quot;</span>/imm32
<span id="L4354" class="LineNr">4354 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4355" class="LineNr">4355 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4356" class="LineNr">4356 </span>    05/add-to-eax  4/imm32
<span id="L4357" class="LineNr">4357 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4358" class="LineNr">4358 </span>    51/push-ecx
<span id="L4359" class="LineNr">4359 </span>    50/push-eax
<span id="L4360" class="LineNr">4360 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4361" class="LineNr">4361 </span>    <span class="subxComment"># eax = next-hex-int(slice)</span>
<span id="L4362" class="LineNr">4362 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4363" class="LineNr">4363 </span>    51/push-ecx
<span id="L4364" class="LineNr">4364 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4365" class="LineNr">4365 </span>    e8/call  <a href='sigils.subx.html#L3970'>next-hex-int</a>/disp32
<span id="L4366" class="LineNr">4366 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4367" class="LineNr">4367 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4368" class="LineNr">4368 </span>    <span class="subxComment"># check-ints-equal(eax, -3, msg)</span>
<span id="L4369" class="LineNr">4369 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4370" class="LineNr">4370 </span>    68/push  <span class="Constant">&quot;F - test-next-hex-int-negative-with-space&quot;</span>/imm32
<span id="L4371" class="LineNr">4371 </span>    68/push  -3/imm32
<span id="L4372" class="LineNr">4372 </span>    50/push-eax
<span id="L4373" class="LineNr">4373 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4374" class="LineNr">4374 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4375" class="LineNr">4375 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4376" class="LineNr">4376 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4377" class="LineNr">4377 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4378" class="LineNr">4378 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4379" class="LineNr">4379 </span>    5d/pop-to-ebp
<span id="L4380" class="LineNr">4380 </span>    c3/return
<span id="L4381" class="LineNr">4381 </span>
<span id="L4382" class="LineNr">4382 </span><span class="subxComment"># assumes 'in' starts a positive unsigned integer</span>
<span id="L4383" class="LineNr">4383 </span><span class="subxComment"># returns the value of the integer</span>
<span id="L4384" class="LineNr">4384 </span><span class="subxComment"># side-effect: modifies 'in' to skip past the integer</span>
<span id="L4385" class="LineNr">4385 </span><span class="subxFunction">next-positive-hex-int</span>:  <span class="subxComment"># in: (addr slice) -&gt; result/eax</span>
<span id="L4386" class="LineNr">4386 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4387" class="LineNr">4387 </span>    55/push-ebp
<span id="L4388" class="LineNr">4388 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4389" class="LineNr">4389 </span>    <span class="subxS1Comment"># . save registers</span>
<span id="L4390" class="LineNr">4390 </span>    51/push-ecx
<span id="L4391" class="LineNr">4391 </span>    52/push-edx
<span id="L4392" class="LineNr">4392 </span>    53/push-ebx
<span id="L4393" class="LineNr">4393 </span>    56/push-esi
<span id="L4394" class="LineNr">4394 </span>    57/push-edi
<span id="L4395" class="LineNr">4395 </span>    <span class="subxComment"># result/edi = 0</span>
<span id="L4396" class="LineNr">4396 </span>    31/xor                          3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear edi</span>
<span id="L4397" class="LineNr">4397 </span>    <span class="subxComment"># esi = in</span>
<span id="L4398" class="LineNr">4398 </span>    8b/copy                         1/mod/*+disp8   5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          6/r32/esi   8/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(ebp+8) to esi</span>
<span id="L4399" class="LineNr">4399 </span>    <span class="subxComment"># edx = in-&gt;end</span>
<span id="L4400" class="LineNr">4400 </span>    8b/copy                         1/mod/*+disp8   6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy *(esi+4) to edx</span>
<span id="L4401" class="LineNr">4401 </span>    <span class="subxComment"># curr/ecx = in-&gt;start</span>
<span id="L4402" class="LineNr">4402 </span>    8b/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *esi to ecx</span>
<span id="L4403" class="LineNr">4403 </span>    <span class="subxComment"># negate?/ebx = false</span>
<span id="L4404" class="LineNr">4404 </span>    31/xor                          3/mod/direct    3/rm32/ebx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          3/r32/ebx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear ebx</span>
<span id="L4405" class="LineNr">4405 </span>    <span class="subxComment"># eax = *curr</span>
<span id="L4406" class="LineNr">4406 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
<span id="L4407" class="LineNr">4407 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4408" class="LineNr">4408 </span><span class="Constant">$next-positive-hex-int:initial-0</span>:
<span id="L4409" class="LineNr">4409 </span>    <span class="subxComment"># skip past leading '0x'</span>
<span id="L4410" class="LineNr">4410 </span>    <span class="subxS1Comment"># . if (*curr != '0') jump to loop</span>
<span id="L4411" class="LineNr">4411 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4412" class="LineNr">4412 </span>    3d/compare-eax-and  0x30/imm32/0
<span id="L4413" class="LineNr">4413 </span>    75/jump-if-!=  $next-positive-hex-int:<span class="Constant">loop</span>/disp8
<span id="L4414" class="LineNr">4414 </span>    <span class="subxS1Comment"># . ++curr</span>
<span id="L4415" class="LineNr">4415 </span>    41/increment-ecx
<span id="L4416" class="LineNr">4416 </span><span class="Constant">$next-positive-hex-int:initial-0x</span>:
<span id="L4417" class="LineNr">4417 </span>    <span class="subxS1Comment"># . if (curr &gt;= in-&gt;end) return result</span>
<span id="L4418" class="LineNr">4418 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with edx</span>
<span id="L4419" class="LineNr">4419 </span>    73/jump-if-addr&gt;=  $next-positive-hex-int:end/disp8
<span id="L4420" class="LineNr">4420 </span>    <span class="subxS1Comment"># . if (*curr != 'x') jump to loop  # the previous '0' is still valid so doesn't need to be checked again</span>
<span id="L4421" class="LineNr">4421 </span>    31/xor                          3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># clear eax</span>
<span id="L4422" class="LineNr">4422 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4423" class="LineNr">4423 </span>    3d/compare-eax-and  0x78/imm32/x
<span id="L4424" class="LineNr">4424 </span>    75/jump-if-!=  $next-positive-hex-int:<span class="Constant">loop</span>/disp8
<span id="L4425" class="LineNr">4425 </span>    <span class="subxS1Comment"># . ++curr</span>
<span id="L4426" class="LineNr">4426 </span>    41/increment-ecx
<span id="L4427" class="LineNr">4427 </span><span class="Constant">$next-positive-hex-int:loop</span>:
<span id="L4428" class="LineNr">4428 </span>    <span class="subxComment"># if (curr &gt;= in-&gt;end) break</span>
<span id="L4429" class="LineNr">4429 </span>    39/compare                      3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          2/r32/edx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># compare ecx with edx</span>
<span id="L4430" class="LineNr">4430 </span>    73/jump-if-addr&gt;=  $next-positive-hex-int:end/disp8
<span id="L4431" class="LineNr">4431 </span>    <span class="subxComment"># if (!is-hex-digit?(*curr)) break</span>
<span id="L4432" class="LineNr">4432 </span>    <span class="subxS1Comment"># . eax = *curr</span>
<span id="L4433" class="LineNr">4433 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4434" class="LineNr">4434 </span>    <span class="subxS1Comment"># . eax = is-hex-digit?(*curr)</span>
<span id="L4435" class="LineNr">4435 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4436" class="LineNr">4436 </span>    50/push-eax
<span id="L4437" class="LineNr">4437 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4438" class="LineNr">4438 </span>    e8/call  <a href='../067parse-hex.subx.html#L701'>is-hex-digit?</a>/disp32
<span id="L4439" class="LineNr">4439 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4440" class="LineNr">4440 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4441" class="LineNr">4441 </span>    <span class="subxS1Comment"># . if (eax == false) break</span>
<span id="L4442" class="LineNr">4442 </span>    3d/compare-eax-and  0/imm32/false
<span id="L4443" class="LineNr">4443 </span>    74/jump-if-=  $next-positive-hex-int:end/disp8
<span id="L4444" class="LineNr">4444 </span>    <span class="subxComment"># eax = from-hex-char(*curr)</span>
<span id="L4445" class="LineNr">4445 </span>    <span class="subxS2Comment"># . . copy arg to eax</span>
<span id="L4446" class="LineNr">4446 </span>    8a/copy-byte                    0/mod/indirect  1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/AL   <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy byte at *ecx to AL</span>
<span id="L4447" class="LineNr">4447 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4448" class="LineNr">4448 </span>    e8/call  <a href='../067parse-hex.subx.html#L864'>from-hex-char</a>/disp32
<span id="L4449" class="LineNr">4449 </span>    <span class="subxComment"># result = result * 16 + eax</span>
<span id="L4450" class="LineNr">4450 </span>    c1/shift    4/subop/left        3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm8            <span class="subxComment"># shift edi left by 4 bits</span>
<span id="L4451" class="LineNr">4451 </span>    01/add                          3/mod/direct    7/rm32/edi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          0/r32/eax  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># add eax to edi</span>
<span id="L4452" class="LineNr">4452 </span>    <span class="subxComment"># ++curr</span>
<span id="L4453" class="LineNr">4453 </span>    41/increment-ecx
<span id="L4454" class="LineNr">4454 </span>    <span class="subxComment"># loop</span>
<span id="L4455" class="LineNr">4455 </span>    eb/jump  $next-positive-hex-int:<span class="Constant">loop</span>/disp8
<span id="L4456" class="LineNr">4456 </span><span class="Constant">$next-positive-hex-int:end</span>:
<span id="L4457" class="LineNr">4457 </span>    <span class="subxComment"># word-slice-&gt;start = curr</span>
<span id="L4458" class="LineNr">4458 </span>    89/copy                         0/mod/indirect  6/rm32/esi   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ecx to *esi</span>
<span id="L4459" class="LineNr">4459 </span>    <span class="subxComment"># return edi</span>
<span id="L4460" class="LineNr">4460 </span>    89/copy                         3/mod/direct    0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          7/r32/edi  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy edi to eax</span>
<span id="L4461" class="LineNr">4461 </span>    <span class="subxS1Comment"># . restore registers</span>
<span id="L4462" class="LineNr">4462 </span>    5f/pop-to-edi
<span id="L4463" class="LineNr">4463 </span>    5e/pop-to-esi
<span id="L4464" class="LineNr">4464 </span>    5b/pop-to-ebx
<span id="L4465" class="LineNr">4465 </span>    5a/pop-to-edx
<span id="L4466" class="LineNr">4466 </span>    59/pop-to-ecx
<span id="L4467" class="LineNr">4467 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4468" class="LineNr">4468 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4469" class="LineNr">4469 </span>    5d/pop-to-ebp
<span id="L4470" class="LineNr">4470 </span>    c3/return
<span id="L4471" class="LineNr">4471 </span>
<span id="L4472" class="LineNr">4472 </span><span class="subxTest">test-next-positive-hex-int-single-digit</span>:
<span id="L4473" class="LineNr">4473 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4474" class="LineNr">4474 </span>    55/push-ebp
<span id="L4475" class="LineNr">4475 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4476" class="LineNr">4476 </span>    <span class="subxComment"># (eax..ecx) = &quot;a)&quot;</span>
<span id="L4477" class="LineNr">4477 </span>    b8/copy-to-eax  <span class="Constant">&quot;a)&quot;</span>/imm32
<span id="L4478" class="LineNr">4478 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4479" class="LineNr">4479 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4480" class="LineNr">4480 </span>    05/add-to-eax  4/imm32
<span id="L4481" class="LineNr">4481 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4482" class="LineNr">4482 </span>    51/push-ecx
<span id="L4483" class="LineNr">4483 </span>    50/push-eax
<span id="L4484" class="LineNr">4484 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4485" class="LineNr">4485 </span>    <span class="subxComment"># eax = next-positive-hex-int(slice)</span>
<span id="L4486" class="LineNr">4486 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4487" class="LineNr">4487 </span>    51/push-ecx
<span id="L4488" class="LineNr">4488 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4489" class="LineNr">4489 </span>    e8/call  <a href='sigils.subx.html#L4385'>next-positive-hex-int</a>/disp32
<span id="L4490" class="LineNr">4490 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4491" class="LineNr">4491 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4492" class="LineNr">4492 </span>    <span class="subxComment"># check-ints-equal(eax, 0xa, msg)</span>
<span id="L4493" class="LineNr">4493 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4494" class="LineNr">4494 </span>    68/push  <span class="Constant">&quot;F - test-next-positive-hex-int-single-digit&quot;</span>/imm32
<span id="L4495" class="LineNr">4495 </span>    68/push  0xa/imm32
<span id="L4496" class="LineNr">4496 </span>    50/push-eax
<span id="L4497" class="LineNr">4497 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4498" class="LineNr">4498 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4499" class="LineNr">4499 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4500" class="LineNr">4500 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4501" class="LineNr">4501 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4502" class="LineNr">4502 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4503" class="LineNr">4503 </span>    5d/pop-to-ebp
<span id="L4504" class="LineNr">4504 </span>    c3/return
<span id="L4505" class="LineNr">4505 </span>
<span id="L4506" class="LineNr">4506 </span><span class="subxTest">test-next-positive-hex-int-multi-digit</span>:
<span id="L4507" class="LineNr">4507 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4508" class="LineNr">4508 </span>    55/push-ebp
<span id="L4509" class="LineNr">4509 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4510" class="LineNr">4510 </span>    <span class="subxComment"># (eax..ecx) = &quot;34a)&quot;</span>
<span id="L4511" class="LineNr">4511 </span>    b8/copy-to-eax  <span class="Constant">&quot;34a)&quot;</span>/imm32
<span id="L4512" class="LineNr">4512 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4513" class="LineNr">4513 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4514" class="LineNr">4514 </span>    05/add-to-eax  4/imm32
<span id="L4515" class="LineNr">4515 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4516" class="LineNr">4516 </span>    51/push-ecx
<span id="L4517" class="LineNr">4517 </span>    50/push-eax
<span id="L4518" class="LineNr">4518 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4519" class="LineNr">4519 </span>    <span class="subxComment"># eax = next-positive-hex-int(slice)</span>
<span id="L4520" class="LineNr">4520 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4521" class="LineNr">4521 </span>    51/push-ecx
<span id="L4522" class="LineNr">4522 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4523" class="LineNr">4523 </span>    e8/call  <a href='sigils.subx.html#L4385'>next-positive-hex-int</a>/disp32
<span id="L4524" class="LineNr">4524 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4525" class="LineNr">4525 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4526" class="LineNr">4526 </span>    <span class="subxComment"># check-ints-equal(eax, 0x34a, msg)</span>
<span id="L4527" class="LineNr">4527 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4528" class="LineNr">4528 </span>    68/push  <span class="Constant">&quot;F - test-next-positive-hex-int-multi-digit&quot;</span>/imm32
<span id="L4529" class="LineNr">4529 </span>    68/push  0x34a/imm32
<span id="L4530" class="LineNr">4530 </span>    50/push-eax
<span id="L4531" class="LineNr">4531 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4532" class="LineNr">4532 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4533" class="LineNr">4533 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4534" class="LineNr">4534 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4535" class="LineNr">4535 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4536" class="LineNr">4536 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4537" class="LineNr">4537 </span>    5d/pop-to-ebp
<span id="L4538" class="LineNr">4538 </span>    c3/return
<span id="L4539" class="LineNr">4539 </span>
<span id="L4540" class="LineNr">4540 </span><span class="subxTest">test-next-positive-hex-int-0x-prefix</span>:
<span id="L4541" class="LineNr">4541 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4542" class="LineNr">4542 </span>    55/push-ebp
<span id="L4543" class="LineNr">4543 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4544" class="LineNr">4544 </span>    <span class="subxComment"># (eax..ecx) = &quot;0x34)&quot;</span>
<span id="L4545" class="LineNr">4545 </span>    b8/copy-to-eax  <span class="Constant">&quot;0x34)&quot;</span>/imm32
<span id="L4546" class="LineNr">4546 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4547" class="LineNr">4547 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4548" class="LineNr">4548 </span>    05/add-to-eax  4/imm32
<span id="L4549" class="LineNr">4549 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4550" class="LineNr">4550 </span>    51/push-ecx
<span id="L4551" class="LineNr">4551 </span>    50/push-eax
<span id="L4552" class="LineNr">4552 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4553" class="LineNr">4553 </span>    <span class="subxComment"># eax = next-positive-hex-int(slice)</span>
<span id="L4554" class="LineNr">4554 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4555" class="LineNr">4555 </span>    51/push-ecx
<span id="L4556" class="LineNr">4556 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4557" class="LineNr">4557 </span>    e8/call  <a href='sigils.subx.html#L4385'>next-positive-hex-int</a>/disp32
<span id="L4558" class="LineNr">4558 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4559" class="LineNr">4559 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4560" class="LineNr">4560 </span>    <span class="subxComment"># check-ints-equal(eax, 0x34, msg)</span>
<span id="L4561" class="LineNr">4561 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4562" class="LineNr">4562 </span>    68/push  <span class="Constant">&quot;F - test-next-positive-hex-int-0x-prefix&quot;</span>/imm32
<span id="L4563" class="LineNr">4563 </span>    68/push  0x34/imm32
<span id="L4564" class="LineNr">4564 </span>    50/push-eax
<span id="L4565" class="LineNr">4565 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4566" class="LineNr">4566 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4567" class="LineNr">4567 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4568" class="LineNr">4568 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4569" class="LineNr">4569 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4570" class="LineNr">4570 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4571" class="LineNr">4571 </span>    5d/pop-to-ebp
<span id="L4572" class="LineNr">4572 </span>    c3/return
<span id="L4573" class="LineNr">4573 </span>
<span id="L4574" class="LineNr">4574 </span><span class="subxTest">test-next-positive-hex-int-zero</span>:
<span id="L4575" class="LineNr">4575 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4576" class="LineNr">4576 </span>    55/push-ebp
<span id="L4577" class="LineNr">4577 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4578" class="LineNr">4578 </span>    <span class="subxComment"># (eax..ecx) = &quot;0&quot;</span>
<span id="L4579" class="LineNr">4579 </span>    b8/copy-to-eax  <span class="Constant">&quot;0&quot;</span>/imm32
<span id="L4580" class="LineNr">4580 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4581" class="LineNr">4581 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4582" class="LineNr">4582 </span>    05/add-to-eax  4/imm32
<span id="L4583" class="LineNr">4583 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4584" class="LineNr">4584 </span>    51/push-ecx
<span id="L4585" class="LineNr">4585 </span>    50/push-eax
<span id="L4586" class="LineNr">4586 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4587" class="LineNr">4587 </span>    <span class="subxComment"># eax = next-positive-hex-int(slice)</span>
<span id="L4588" class="LineNr">4588 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4589" class="LineNr">4589 </span>    51/push-ecx
<span id="L4590" class="LineNr">4590 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4591" class="LineNr">4591 </span>    e8/call  <a href='sigils.subx.html#L4385'>next-positive-hex-int</a>/disp32
<span id="L4592" class="LineNr">4592 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4593" class="LineNr">4593 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4594" class="LineNr">4594 </span>    <span class="subxComment"># check-ints-equal(eax, 0, msg)</span>
<span id="L4595" class="LineNr">4595 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4596" class="LineNr">4596 </span>    68/push  <span class="Constant">&quot;F - test-next-positive-hex-int-zero&quot;</span>/imm32
<span id="L4597" class="LineNr">4597 </span>    68/push  0/imm32
<span id="L4598" class="LineNr">4598 </span>    50/push-eax
<span id="L4599" class="LineNr">4599 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4600" class="LineNr">4600 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4601" class="LineNr">4601 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4602" class="LineNr">4602 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4603" class="LineNr">4603 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4604" class="LineNr">4604 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4605" class="LineNr">4605 </span>    5d/pop-to-ebp
<span id="L4606" class="LineNr">4606 </span>    c3/return
<span id="L4607" class="LineNr">4607 </span>
<span id="L4608" class="LineNr">4608 </span><span class="subxTest">test-next-positive-hex-int-0-prefix</span>:
<span id="L4609" class="LineNr">4609 </span>    <span class="subxS1Comment"># . prologue</span>
<span id="L4610" class="LineNr">4610 </span>    55/push-ebp
<span id="L4611" class="LineNr">4611 </span>    89/copy                         3/mod/direct    5/rm32/ebp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ebp</span>
<span id="L4612" class="LineNr">4612 </span>    <span class="subxComment"># (eax..ecx) = &quot;03)&quot;</span>
<span id="L4613" class="LineNr">4613 </span>    b8/copy-to-eax  <span class="Constant">&quot;03)&quot;</span>/imm32
<span id="L4614" class="LineNr">4614 </span>    8b/copy                         0/mod/indirect  0/rm32/eax   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          1/r32/ecx  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy *eax to ecx</span>
<span id="L4615" class="LineNr">4615 </span>    8d/copy-address                 1/mod/*+disp8   4/rm32/sib    0/base/eax  1/index/ecx  <span class="Normal"> . </span>          1/r32/ecx   4/disp8        <span class="Normal"> . </span>                <span class="subxComment"># copy eax+ecx+4 to ecx</span>
<span id="L4616" class="LineNr">4616 </span>    05/add-to-eax  4/imm32
<span id="L4617" class="LineNr">4617 </span>    <span class="subxComment"># var slice/ecx = {eax, ecx}</span>
<span id="L4618" class="LineNr">4618 </span>    51/push-ecx
<span id="L4619" class="LineNr">4619 </span>    50/push-eax
<span id="L4620" class="LineNr">4620 </span>    89/copy                         3/mod/direct    1/rm32/ecx   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          4/r32/esp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy esp to ecx</span>
<span id="L4621" class="LineNr">4621 </span>    <span class="subxComment"># eax = next-positive-hex-int(slice)</span>
<span id="L4622" class="LineNr">4622 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4623" class="LineNr">4623 </span>    51/push-ecx
<span id="L4624" class="LineNr">4624 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4625" class="LineNr">4625 </span>    e8/call  <a href='sigils.subx.html#L4385'>next-positive-hex-int</a>/disp32
<span id="L4626" class="LineNr">4626 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4627" class="LineNr">4627 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              4/imm32           <span class="subxComment"># add to esp</span>
<span id="L4628" class="LineNr">4628 </span>    <span class="subxComment"># check-ints-equal(eax, 3, msg)</span>
<span id="L4629" class="LineNr">4629 </span>    <span class="subxS2Comment"># . . push args</span>
<span id="L4630" class="LineNr">4630 </span>    68/push  <span class="Constant">&quot;F - test-next-positive-hex-int-0-prefix&quot;</span>/imm32
<span id="L4631" class="LineNr">4631 </span>    68/push  3/imm32
<span id="L4632" class="LineNr">4632 </span>    50/push-eax
<span id="L4633" class="LineNr">4633 </span>    <span class="subxS2Comment"># . . call</span>
<span id="L4634" class="LineNr">4634 </span>    e8/call  <a href='../051test.subx.html#L24'>check-ints-equal</a>/disp32
<span id="L4635" class="LineNr">4635 </span>    <span class="subxS2Comment"># . . discard args</span>
<span id="L4636" class="LineNr">4636 </span>    81          0/subop/add         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>         <span class="Normal"> . </span>         <span class="Normal"> . </span>              0xc/imm32         <span class="subxComment"># add to esp</span>
<span id="L4637" class="LineNr">4637 </span>    <span class="subxS1Comment"># . epilogue</span>
<span id="L4638" class="LineNr">4638 </span>    89/copy                         3/mod/direct    4/rm32/esp   <span class="Normal"> . </span>         <span class="Normal"> . </span>           <span class="Normal"> . </span>          5/r32/ebp  <span class="Normal"> . </span>             <span class="Normal"> . </span>                <span class="subxComment"># copy ebp to esp</span>
<span id="L4639" class="LineNr">4639 </span>    5d/pop-to-ebp
<span id="L4640" class="LineNr">4640 </span>    c3/return
<span id="L4641" class="LineNr">4641 </span>
<span id="L4642" class="LineNr">4642 </span><span class="subxS2Comment"># . . vim&#0058;nowrap:textwidth=0</span>
</pre>
</body>
</html>
<!-- vim: set foldmethod=manual : -->