Beginners ASM - accessing variables
Posted: Mon Aug 17, 2009 4:18 pm
How to access variables direct and inline ASM. It confused me for a bit, I hope this helps someone.
Please correct anything if necessary. Thanks
Please correct anything if necessary. Thanks
Code: Select all
Global orange
Procedure abc()
Protected apple
Static strawberry
Shared pear
orange = 11
pear = 21
apple = 31
strawberry = 41
EnableASM
MOV edx, orange
INC edx
MOV orange, edx
MOV edx, pear
INC edx
MOV pear, edx
MOV edx, apple
INC edx
MOV apple, edx
MOV edx, strawberry
INC edx
MOV strawberry, edx
PrintN("Inside Procedure abc()")
PrintN("-------------------------")
PrintN("Orange = " + Str(orange))
PrintN("Pear = " + Str(pear))
PrintN("Apple = " + Str(apple))
PrintN("Strawberry = " + Str(strawberry))
PrintN("-------------------------")
PrintN("")
PrintN("")
DisableASM
EndProcedure
Procedure def()
Protected apple
Static strawberry
Shared pear
orange = 11
pear = 21
apple = 31
strawberry = 41
!MOV edx, dword [v_orange]
!INC edx
!MOV dword [v_orange], edx
!MOV edx, dword [v_pear]
!INC edx
!MOV dword [v_pear], edx
!MOV edx, dword [p.v_apple]
!INC edx
!MOV dword [p.v_apple], edx
!MOV edx, dword [s_def.v_strawberry]
!INC edx
!MOV dword [s_def.v_strawberry], edx
PrintN("Inside Procedure def()")
PrintN("-------------------------")
PrintN("Orange = " + Str(orange))
PrintN("Pear = " + Str(pear))
PrintN("Apple = " + Str(apple))
PrintN("Strawberry = " + Str(strawberry))
PrintN("-------------------------")
EndProcedure
orange = 11
OpenConsole()
abc()
def()
Repeat: Until Inkey()
CloseConsole()