关于6.828实验中的bootloader链接地址与加载地址的思考
来源:互联网 发布:seo关键字是什么 编辑:程序博客网 时间:2024/05/17 17:44
bootloader的链接地址与加载地址不致会引起什么问题?
这个问题是我们所关心的,涉及到的其他相关知识读者可以自己去了解,不多解释了。
1、bootloader如何进内存
这个工作由BIOS来完成,我们也可以根据这个过程来了解加载地址是如何确定的。
明确:BIOS根据事先确定好的地址来加载bootloader。
2、bootloader链接地址与加载地址不一致情况下第一条指令如何执行
需要明确的是,什么不变,什么变了。这个地方的两种情况是:
a、加载地址Addr_load、链接地址Addr_linkA(两者一致)。
b、加载地址Addr_load、链接地址Addr_linkB(两都不一致)。
这个过程我们修改了链接地址,加载地址不变。
两种情况下,bootloader第一条指令都能正确执行,问题是在b中,当机器碰到跳转指令时就会引起问题。
代码认为自己在某个位置,但实际上那个位置并没有自己想要的东西。再考虑每个cpu指令集不定长的情况,基于cpu取指、执行的工作模式,cpu大概率会取到不正确的指令,直接就挂了。
这个是基本情况,网上看了一些资料,感觉很多没有说清楚,所以把自己的观点贴出来。
图中是用qemu模拟加载bootloader的过程,其中:
加载地址是0x7c00,链接地址是0x7c04。
可以看到bootloader在0x7c00开始的指令都能正确执行,碰到ljmp指令的时候会挂。
这个指令的具体内容是:ljmp
但是事实上这个地址并没有一个完整的x86指令。
阅读全文
1 0
- 关于6.828实验中的bootloader链接地址与加载地址的思考
- 链接地址,加载地址
- 关于SPV210链接地址与运行地址的笔记
- 加载地址和链接地址
- 位置无关码、链接地址与加载地址
- 代码的加载地址与运行地址
- 代码的加载地址与运行地址
- 关于 bootloader 里的物理地址到虚拟地址的影射
- 关于指针,地址总线的一些思考。
- 链接地址与存储地址
- 运行地址、链接地址、加载地址、存储地址
- 重新分析: 加载地址 存储地址 链接地址 运行地址
- 关于链接地址
- 关于u-boot的链接地址和运行地址分析
- 加载地址与运行地址
- easyui中的链接地址的写法
- 关于bootloader链接脚本中的ALIGN关键字的解析
- c#中获取webbrowser控件加载页面中的链接的地址
- Git下载及安装环境配置
- 多重背包问题
- AI黑科技来袭 2017北京硅谷高创会携PanguVR一窥智慧未来
- 谈谈java的运行机制
- Red packet NBUT
- 关于6.828实验中的bootloader链接地址与加载地址的思考
- 基于Swift的iOS应用程序开发:使用表格显示并控制数据(二):删除表格中的数据
- GPU编程
- 【转载】图解WebGL&Three.js工作原理
- python科学计算_numpy_函数库
- poj3061
- UI控件之ScrollView
- IntelliJ IDEA 设置代码提示或自动补全的快捷键
- mybatis进阶(1)--高级映射之数据模型分析