The OS takes care of this for you.
When you multitask, the OS saves your context (flags and registers). When your context is restored, the saved data is also restored, so even if you change the value of eax in another processor, your code will work. From your code point of view, you are running on the same code as before. You cannot access the registers of one processor from another processor, so you are safe on both cases.
What causes problem is the source of your data, for example, if you moved data from memory to eax, without locking, you have no garantee that that data didn't change. In this case, you lock, move, compute and unlock.