我正在使用NASM汇编我的汇编程序代码。我组装的代码看起来是这样的:无法使用32位汇编程序修改内存
[BITS 32]
[ORG 0]
jmp 07c0h:start
testvar db 0, 0, 0, 0, 0, 0, 4, 8, 15, 16, 23, 42
start:
mov byte [testvar], 47
hang:
jmp hang
times 510-($-$$) db 0
dw 0AA55h
我曾与另一段代码的问题,我发现我不能修改内存,所以我写这一段代码来测试,如果这是实际情况。它是!我将组装好的机器代码复制到软盘的第一个扇区,程序运行(我使用MS VirtualPC)。我检查了分配给Virtual PC的RAM内存并搜索了数字4 8 15 16 23 42,以便我可以找到二进制代码被复制的位置。数据的第一个字节没有被触及。为什么这样?
?你怎么知道你的汇编代码正在被加载和运行?你能用调试器单步执行吗?它在什么地址加载? – ChrisW 2010-09-08 00:00:39
我正在使用Windows XP。我知道代码已经运行,因为如果我省略“[BITS 32]”,它就可以正常工作。 (为什么它不会被加载?)它被加载到启动扇区正常加载的地方,达到7c00h。我怎么能调试它? – 2010-09-08 00:06:49
一个挑剔*汇编程序*的语言是一个程序,它汇编* *程序集*源代码:) – snemarch 2010-09-08 19:47:28