Am 03.04.2011 um 12:27 schrieb D Nyberg:

> I think you would also see a huge speed increase if you defined  
> constant
> named "1" and tried it again too. That used to be standard in F79 and
> 83, though it was more about size than speed.
>
> On 4/3/2011 4:16:17 AM, pito ([email protected]) wrote:
>> : exa1 1 1 + . ;
>> compilation 55sec (avrstudio window hidden)
>> run ~0.3sek
>>
>> : exa2 1000 1000 3000 + - . ;
>> compilation 78sec (avrstudio window hidden)
>> run ~0.3sek
>>
>> Quite surprised the write to flash works with avrstudio
>> simulator(v4, b716). I have ~250 words more in flash then the basic
>> clean amforth 4.2 compilation.

If we do it like ZERO we get:

; ( -- 1 ) Arithmetics
; R( -- )
; leaves the value 1 on TOS
VE_ONE:
     .dw $ff01
     .db "1",0
     .dw VE_HEAD
     .set VE_HEAD = VE_ONE
XT_ONE:
     .dw PFA_ONE
PFA_ONE:
     savetos
PFA_ONE1:
     ldi tosl,1
     ldi tosh,0
     jmp DO_NEXT


But a forth version compiles two cells shorter:
; ( -- 1 )
; R( -- )
; leaves the value 1 on TOS
VE_1:
     .dw $FF01
     .db "1",0
     .dw VE_HEAD
     .set VE_HEAD = VE_1
XT_1:
     .dw PFA_DOVARIABLE
PFA_1:
     .dw $1

; forth:
; 1 constant 1


Wonder which one is faster?
Michael



------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Amforth-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to