x86汇编语言 从实模式到保护模式 第8章读书笔记

 第8章 硬盘和显卡的访问与控制
 本章代码分为用户程序与加载程序,大致流程计算机上电ROM-BIOS将读取硬盘主引导区内容(硬盘主引导区放的是加载程序),将它加载到内存地址0x0000:0x7c00,然后跳转到这里执行,然后加载程序将用户程序加载到特定地址,更新用户程序的段地址并跳转到用户程序执行。
 

    SECTION mbr align=16 vstart=0x7c00	/*vstart=0x7c00是由于程序被加载到0x0000:0x7c00这样设置,这个段的所有标号的偏移地址
                                         从0x7c00开始,这样引用时就不用加上0x7c00。*/                                                                                                                                                                 
	 
	 设置加载程序的栈空间,也在0x0000这个段中,从0xFFFF往下增长,还是留了很多余地。
	 
	 mov ax,[cs:phy_base]                                  //cs这里应该是0x0000,phy_base是从0x7c00开始计算的段偏移地址,里面存的是0x10000
	 mov dx,[cs:phy_base+0x02]   					 //ax中是0x0000,dx中存的是0x0001
	 mov bx,16                                                   //用这个32位数除以16得到段地址传递给ds数据段寄存器与附加段寄存器,为0x1000,这里的cs还是很有必要的,
	 div bx        

你可能感兴趣的:(学习笔记)