The*_*ute 5 ram assembly operating-system memory-management
在没有操作系统的机器上编译和运行汇编程序时,如何选择RAM中的起始地址,以便正确分配使用数据指令声明的变量?
如上所述,CPU期望启动程序的地址通常是硬连线的.在某些非常特定的CPU等情况下,它可能是可编程的,但在x86的情况下,它是FFFF0,或者更确切地说 - FFFFFFF0,因此比CPU的最高物理地址低16个字节.主板通常将这些地址映射到ROM,其中包含(很可能)跳转到BIOS代码,然后启动计算机.
当涉及操作系统本身时,他们选择加载程序的位置,然后执行实际加载,并将执行转移到它.例如,在DOS的情况下,简单的小应用程序(那些作为COM文件分发的应用程序)被加载到地址100,然后命令提示符执行跳转到该地址,有效地开始执行在该地址加载的代码.对于采用虚拟内存的更先进的系统,问题当然更复杂.