LEA          ECX, Perm[3000]
START:       MOV EAX, N           
             MOV EBX, EAX
             MOV Perm[3000 + EBX * 4], EBX
FACT :       DEC EBX
             MOV Perm[3000 + EBX * 4], EBX
             TEST EBX, EBX
             JZ FACTEND
             MUL EBX
             JMP FACT
FACTEND :    MOV Num, EAX
This is a snippet of a code where I found this problem.
The code runs fine, but if I put a breakpoint at TEST EBX, EBX or the second MOV Perm[3000 + EBX * 4], EBX I get errors, but not if I put it at the first MOV Perm
What is happening?