Contributor: FRED JOHNSON { RAPHAEL VANNEY > I've got a question about BAsm: How would I go about accessing a local > Variable in an assembly block? I know that locals are stored on the > stack: Var temp:Byte; } Procedure TestLocal(Var a : Integer); Assembler; Var i : Byte; Stri : String; Asm { Getting Pointers... } Push SS Pop ES LEA SI, i { ES:SI points to i } LEA DI, Stri { ...and ES:DI points to Stri } { if you Really need DS as a segment... } Push DS { Save DS } Mov AX, SS { Copy SS to AX... } Mov DS, AX { ...then to DS } LEA DX, Stri { DS:DX points to Stri } Pop DS { Restore DS } LES DX, a { ES:DX points to a } { Now using local Vars } Inc i Mov i, 10 { etc... } end;