Errata and other notes for "The Art of Assembly Language"

 

The Art of Assembly Language Programming


 

2010/5/3:

In section 12.14, Calling Base Class Methods, AoA2e (AoA 2nd edition) states that HLA does not let you directly call methods and you must use an indirect call through the virtual method table in order to call the parent class' version of some method. As of HLA v2.8, this is no longer necessary. HLA v2.8 (and later) supports a special "super" reserved word that you can use to directly call the parent's version of some method within a child class' method. You would use the "super" keyword in a similar manner to "this", e.g.,

type
    parentClass: class
         .
         .
         .
         method m(i:int32);
         .
         .
         .
    endclass;

    childClass: class inherits( parentClass );
         .
         .
         .
         override method m;
         .
         .
         .
    endclass;

         .
         .
         .

 method childClass.m(i:int32);
 begin m;
     .
     .
     .
    
     // Call parent class' version of m:
    
     super.m( i );
     .
     .
     .
 end m;
                  


Note that you get to use the high-level calling syntax when using the super keyword.
Of course, the calling sequence that AoA2e section 12.14 describes is still valid and useful for certain tasks. The new "super" keyword, however, is better suited for the common case of calling a parent's version of the method, however.


2010/05/10:

Page 364
Section 6.1.5
test(1, al); example: "...if bit 1 of AL contains 0, "
Should be "...if bit 0 of AL contains 0, "