int main() { int counterForward = 0; int counterBackward = 0; __asm { call Subroutine_IncrementCounter ; jmp EndMainProgram Subroutine_IncrementCounter: mov eax, counterForward inc eax mov counterForward, eax cmp eax, 5 jz Subroutine_IncrementCounterPart2 call Subroutine_IncrementCounter ; // recursive call of subroutine Subroutine_IncrementCounterPart2: mov eax, counterBackward inc eax mov counterBackward, eax ret EndMainProgram : // counterForward is now 5 // counterBackward is now 5 } }