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        
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值