这是一款来自破刺的操作系统开发系列。有三行代码。加载第二行需要512字节,第三行需要514字节。我们如何计算这个?如果可能,请给我一个链接,我可以详细阅读它。提前致谢。如何计算汇编代码所需的内存?
在汇编语言中,我们可以很容易地超越512字节的标记。 所以,代码可能看起来很好, 但只有一部分将在 内存。例如,coinsider这样:
mov ax, 4ch
inc bx ; 512 byte
mov [var], bx ; 514 byte
汇编语言编写,执行 从文件 向下的顶部开始。不过请记住, 在内存中加载文件时,我们是 加载扇区。这些 扇区中的每一个都是512字节,所以它只会将 将512字节的文件复制到 的内存中。
如果在执行上面的代码,并且只有第一扇区 被加载到内存中,它只会 起来复制到512字节(INC BX 指令)。所以,虽然最后的mov 指令仍然在磁盘上,但它不在内存中! ! 处理器在inc bx之后会做什么?它将通过 继续到514字节。由于此 不在内存中,它会在我们的文件末尾执行 !结束 结果?崩溃。
谢谢,我明白了。 – narayanpatra 2010-11-04 04:52:56