I will start with this block of code:
mov eax, 5
mov DWORD PTR [eax], 123
I am trying to move the value 123 into the memory location at address 5, but I get a write access violation. The only thing I can guess is that the memory location is already reserved or in use. But no matter what address I use, it’s the same thing. If I were to read out from the same location, say:
mov eax, 5
mov ebx, DWORD PTR [eax]
I get no errors. What am I missing?
(If it helps, I am coding in MASM, Win 7, 4 gb ram)
You get a protection fault because your process doesn’t own that particular piece of address space. In fact, the first megabyte of address space is made off limits by Windows for any process.