- Subject: Re: Template function
- From: "John E. Davis" <davis>
- Date: Tue, 3 Dec 2002 15:23:08 -0500
Malcolm Dew-Jones <yf110@xxxxxxxxxxxxxx> wrote:
>>     a;---------+
>>     b;-----+   |
>>     c;--\  v   v
>>     x = ()*()+();
>> 
>
>which ends up being
>
>>     x = (c)*(b)+(a);
>
>which is equivalent to the below, but with (to my eye) a more obvious
>correspondence between the () and the values.  I'm curious how
> x = ()+()*();  would be handled, and perhaps I'm wrong anyway?
Graphically it looks like:
     a;--+
         |
     b;--)--+
         |  |
     c;--)--)--+
         |  |  |
         v  v  v
     x = ()+()*();
Or,
     PUSH a
     PUSH b
     PUSH c
     POP _TMP2              ; _TMP2=c
     POP _TMP1              ; _TMP1=b
     PUSH _TMP1 * _TMP2     ; b*c
     POP _TMP2              ; _TMP2=(b*c)
     POP _TMP1              ; _TMP1=a
     PUSH _TMP1 + _TMP2     ; a+(b*c)
     POP x                  ; x=a+(b*c)
--John
--------------------------
To unsubscribe send email to <jed-users-request@xxxxxxxxxxx> with
the word "unsubscribe" in the message body.
Need help? Email <jed-users-owner@xxxxxxxxxxx>.
  [2002 date index]
  [2002 thread index]
  
  [Thread Prev] [Thread Next]
      
  [Date Prev] [Date Next]