Moving the debug trace point to be prior to advancing %rsi
[rrq/rrqforth.git] / adoc / p_dostring.adoc
1 // rrqforth.asm:        WORD p_dostring,'doSTRING',dovariable
2
3 anchor:p_dostring[]
4
5 === Word: doSTRING
6
7 ....
8 Data stack: ( -- a )
9 ....
10
11 "doFASM" is a variable word whose value is the implementation of the
12 execution semantics for assembly code implemented words. In those
13 cases the execution leads to the word content.
14
15 The register context at entry to an assembly code implemented word is
16 as follows:
17
18 ----
19     rax = cfa* of word to execute
20     rsi = cell* in the calling definition, after calling cell
21     rsp = data stack pointer
22     rbp = return stack pointer
23 ----
24
25 The assembly code must ensure that +rsi+ is preserved and that +rsp+
26 and +rbp+ are used according to their roles.