X86 Assembly Guide Forth

x86 Assembly Using Forth (SwiftForth)

Notes on x86 Assembly and SwiftForth

EBX is the top of the stack
0 [EBP] is the 2nd item on the stack
4 [EBP] is the 3rd item on the stack
8 [EBP] is the 4th item on the stack and so on…

Once you know this you can start creating your own words to manipulate anything on the data stack.

This means if we have:

1 <–top

Then EBX is 1

If we have:

23 1 <–top

Then 0 [EBP] is 23.

Example on Manipulating the 2nd item on the stack

If you want to manipulate the 2nd item on the stack use 0 [EBP]

\ Sample word
ICODE TESTWORD 0 [EBP] INC RET END-CODE 

Now if your data stack looks like this:

1 2 <–TOP

Then run the word below in the SwiftForth Terminal

\ Make sure you have 2 numbers on the data stack and then type the word below
TESTWORD

Will produce

2 2 <–TOP