So when you execute X @ you are trying to indirectly read from the address
 0xAABBCCDD
which could cause an exception

On Mon, Jan 5, 2026 at 12:08 PM Martin Kobetic <[email protected]> wrote:

> On Mon, Jan 5, 2026 at 11:51 AM John Sarabacha <[email protected]>
> wrote:
>
> > Still learning forth , programmed in many other languages (alot of
> > assembler)
> > variable X
> > $AABBCCDD X !
> > X @
> >
> > However tell me if I am wrong, you are creating a variable definition
> for X
> > you are setting this variable X to the address $AABBCCDD and then trying
> to
> > read a value from this
> > address on to the tos.
>
>
> Almost. The second line is storing value  0xAABBCCDD at the address
> represented by variable X.
> It is the word `variable` in previous line that allocates memory for the
> variable and associates the corresponding
> address with a new word `X` that simply pushes that address onto the stack
> when executed.
>
> In the test run I quoted above
> ---
> > X
>  ok
> > .s
> 5  200002B8 200002C4 200002A8 20000288 8  ok
> ---
> The address represented by the variable was 0x200002B8, so it was 8-byte
> aligned, so should be ok alignment-wise.
> But your hypothesis with alignment issues seems definitely worth checking
> out as well.
>
> Your warning about the fault interrupts is certainly worth heeding, I don't
> think we do much there on the ARM side.
> Another thing to follow up on.
>
> _______________________________________________
> Amforth-devel mailing list for http://amforth.sf.net/
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/amforth-devel
>

_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to