Benutzer-Werkzeuge

Webseiten-Werkzeuge


words:kernel_embedded:stack:tuck

Wenn die Kombination swap over in einem Programm häufiger gebraucht wird, kann es aus Gründen der besseren Laufzeit günstiger sein diese Phrase in einem Stück Maschinencode zu fassen. Dafür hat sich der Name tuck eingebürgert.

: tuck ( w1 w2 – w2 w1 w2 ) \ core-ext “tuck” 
  swap over ;

Beispiel zur Funktion mit Hilfe des gforth:

11 22 .s 
<2> 11 22  ok
tuck .s 
<3> 22 11 22  ok

33 44 .s 
<5> 22 11 22 33 44  ok
swap over .s 
<6> 22 11 22 44 33 44  ok

MaschinenCode-Beispiel aus dem CamelForth for the Motorola 6809 © 1995 Bradford J. Rodriguez:

CODE TUCK    \ x1 x2 -- x2 x1 x2      per stack diagram
    S 0, LDX,   S 0, STD,   HEX 10 # ( X) PSHS,   NEXT ;C
words/kernel_embedded/stack/tuck.txt · Zuletzt geändert: 2010-12-29 18:12 von 127.0.0.1