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
