在实模式下,最低地址处的640KB内存是由操作系统和应用程序共用的。在此之上的空间为视频和硬件控制器保留的内存。
最高端的F0000-FFFFF之间的空间为系统ROM保留的。最低端的1024字节(00000~003FF)存放着32位地址项的中断向量表。这些32位地址称之为中断向量。 cpu在处理硬件和软件中断时要使用这些中断向量。
FFFFF:--------------------------------
|ROM BIOS |
F0000:|-------------------------------
|保留区域 |
C0000:|-----------------------------------
|文本和图形 | |
B8000:|-------------------------------VRAM|
|图形视频 | |
A0000:|-----------------------------------|
|command的驻留部分 | 6 |
|------------------------------| |
| | 4 |
|驻留程序区(应用程序可用) | |
|------------------------------| 0 |
|command的驻留部分 | |
|------------------------------| K |
|DOS内核以及设备驱动程序 | |
|------------------------------| B |
|软件BIOS(DOS装入) | |
|------------------------------| R |
|DOS和BIOS数据 | |
00400H |------------------------------| A |
|中断向量表 | |
| | M |
00000H |------------------------------|----|
在中断向量表之上的是BIOS和DOS数据区。 然后就是软件BIOS区,该区包含了管理键盘,磁盘,视频,串口和打印机等大多数I/O设备的过程。BIOS过程是DOS中的IO.SYS文件装入的。
MS-DOS内核区包含了文件缓冲区和可安装的设备驱动程序,接下来的内存存放着command.com中装入的驻留部分。command的第二部分驻留在A0000之下的高端内存区。
应用程序可加载至command.com主流部分之上的最低可用地址中,可使用的内存地址最高可用到9FFFF。
视频(显存):从位置A0000开始,它在显示卡切换到图形模式使用。B8000开始的内存区存放着彩色文本模式单签显示的所有字符。屏幕显示是该内存区的映射,屏幕上的每个坐标对应于映射内存中的一个16位的字。字符一旦被复制到缓冲区,就立即显示在屏幕上。
ROM-BIOS:位于F0000~FFFFF之间的空间。其中包含了系统诊断和配置软件以及应用程序使用的底层输入输出子程序。BIOS存储在系统主板的静态内存芯片中。BIOS使用的数据区位于00400~004FF中。
- [somniumchase] 我一运行就说没有数字 01/01 11:44
- [游客] 为什么啊 08/07 15:36
- [游客] 如果想快一些 就改下面这里 dx值改成1H delay: push ax 04/19 02:53
- [lshhjx] 注释在程序中很重要,楼主不知道吗? 12/08 13:40
- [biaggi] 看不明白,在下還須學習 11/06 08:11
- [游客] 我运行的时候直接显示Unkown filename跳出了- -请问怎么改 06/16 21:44
- [游客] 勿庸置疑,注释是好习惯。与人方便自己方便。 04/12 10:33
- [游客] 老实说,看着真心累呀! 04/07 18:37
- [游客] 很无语,初学者就多看书,不要动不动要别人注释,基础打好了,再自己注释,这样比别人帮你注释好得多 12/17 19:43
- [dgkepu] 初学者:不懂,希望有多点注释带着学习学习! 12/07 20:52
- [游客] windows 7是一个64Bit操作系统,它不兼容DOS,无法识别16Bit系统。重装系统wind 02/28 21:05
- [游客] windows 7是一个64Bit操作系统,它不兼容DOS,无法识别16Bit系统。重装系统wind 02/28 21:05
- [466987333] 你好,高手,我想请教一个问题。 我用的是win7操作系统,32位的,里面没有找masm目录,是不是 12/12 17:30
- [lanfioncc] 那个太高级了。。。我还有点看不懂。。不过谢谢!!! 11/27 11:23
- [yc2010] 实验16中的 table: dw sub1,sub2,sub3,sub4 可不可以改成呢? 09/11 09:08
- [yc2010] mov bl,ah mov bh,0 add bx,bx ----------->这里为 09/07 21:03
- [yc2010] 为什么要add bx,bx呢? 09/07 20:55
- [yc2010] 那是不是像table[bx],ds[bx]....等(内存单元)都是表示一个字节呢? 09/06 21:10
- [masmaster] 杨季文的《80X86汇编语言程序设计教程》 09/01 12:52
- [游客] to masmaster shl左移4位,那al传进来的4,5,6位背景色不就没了. 为什 09/01 11:00