X-Git-Url: https://git.rrq.au/?a=blobdiff_plain;f=adoc%2Fp_dostring.adoc;h=3645b06921f0df1bd613f84a33a5830dfa2f0fc4;hb=6abdd618f54acab8cb2d04f3c3ee2d0aab36eb22;hp=54725c166ed9a3a6f898c57008b25ba9fdf97dcd;hpb=b7da3f7bbd1cb10241163abdb950472e539e796d;p=rrq%2Frrqforth.git diff --git a/adoc/p_dostring.adoc b/adoc/p_dostring.adoc index 54725c1..3645b06 100644 --- a/adoc/p_dostring.adoc +++ b/adoc/p_dostring.adoc @@ -1,9 +1,26 @@ +// rrqforth.asm: WORD p_dostring,'doSTRING',dovariable + anchor:p_dostring[] -Word: doSTRING --------------- +=== Word: doSTRING + +.... +Data stack: ( -- a ) +.... + +"doFASM" is a variable word whose value is the implementation of the +execution semantics for assembly code implemented words. In those +cases the execution leads to the word content. + +The register context at entry to an assembly code implemented word is +as follows: ---- -rrqforth.asm: WORD p_dostring,'doSTRING',dovariable + rax = cfa* of word to execute + rsi = cell* in the calling definition, after calling cell + rsp = data stack pointer + rbp = return stack pointer ---- +The assembly code must ensure that +rsi+ is preserved and that +rsp+ +and +rbp+ are used according to their roles.