我正在使用 NASM 来组装我的汇编代码。我组装的代码如下所示:
[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,这样我就可以找到二进制代码的复制位置。数据的第一个字节未被触及。为什么会这样?