DOS常规内存布局

发布于 2024-08-21 03:43:25 字数 93 浏览 5 评论 0原文

DOS 下的传统内存(至少 640kB)包含操作系统、驱动程序,还可能包含一个正在执行的程序。如何布置这些内存以避免这些程序之间的冲突?例如,该地址空间的一部分是否被保留?

Conventional memory under DOS (fist 640kB) contains the operating system, drivers, and possibly one executing program. How is this memory laid out to avoid conflict between those programs? For example, is part of that address space reserved?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

安穩 2024-08-28 03:43:25

DOS 将程序加载到内存中,使用 EXE 标头中的信息重新定位内存引用以使其正确相对于加载 EXE 时 DOS 分配的内存块。

话虽如此,没有什么可以阻止你的程序干扰操作系统、设备驱动程序等。你可以读写任何内存位置。此技术通常由 TSR 程序 使用(重写 中断向量表)来挂钩键盘、定时器、鼠标或类似的东西,然后在保留在内存中时终止。

DOS loads the program into memory, using information in the EXE header to relocate memory references to be correct relative to the memory block assigned by DOS when the EXE is loaded.

Having said that, nothing prevents your program from interfering with the OS, device drivers, etc. You can read and write any memory location. This technique was commonly used e.g. by TSR programs (rewriting the interrupt vector table) to hook the keyboard, timer, mouse, or similar and then terminate while remaining in memory.

陪你搞怪i 2024-08-28 03:43:25

请参阅此处了解 DOS 内存布局的详细视图。

See here for a far detailed view of the DOS Memory layout here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文