Well it turns out the problem was not with MOV, but with LDR. See my log class was outputting the correct opcode and mnemonic, but the results from the next instruction >_< I fixed that and pretty much restructured(not really rewrite) the ARM header file. So LDR works now, but only for ARM, the THUMB version is still messed. I actually was able to see the intro screens for some demos before the thing crashed so something is working OK in there. I tried running noaktree's Mortal Konsole, but it's in C++ and C++ GBA programs do some funky tricks at startup and well just won't work(yet).
Rather than continue messing with opcodes until I'm 70, I'm going to work on the GUI end of things. Well creating child windows wasn't exactly easy.
Win32: First I tried the normal Win32 way like I do with my main window. I added WS_CHILD and the parents handle, but nothing. I did everything MSDN and other sites said for days but the damn child window never appeared.
wxWindows: Heard alot about this and the screenshots looked real snazzy. About 3MB through the download I read about what I have to do in order for it to work with Dev-C++. Download cancelled.
MFC: Looked at some tutorials. Put a gun to my head but decided it wasn't worth the mess.
WTL(Windows Template Libray): Same as MFC, but the tutorials made it look a little easier and by this point I'd wasted to much time and didn't care. Downloaded only to find out it doesn't come with atlbase.h and neither does Dev-C++. Blah.
Dialog boxes: While looking for altbase and ran across a simple tutorial on dialong boxes. It seemed pretty easy. I copy the dialogproc function into main.cpp and the dialong details into the resource file. Had to look up the value of each windows style in winuser.h though because the stupid GCC resource compiler can't understand OR. THE COMPILE BUTTON WAS PUSHED AND MAGIC SPEWED FORTH! Now how do I add Direct3D to a dialog box? [grin]