汇编语言报告+开机引导自启动.docx
- 文档编号:7639195
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:10
- 大小:70.42KB
汇编语言报告+开机引导自启动.docx
《汇编语言报告+开机引导自启动.docx》由会员分享,可在线阅读,更多相关《汇编语言报告+开机引导自启动.docx(10页珍藏版)》请在冰豆网上搜索。
汇编语言报告+开机引导自启动
PC机开机引导程序设计
开机后,CPU自动进入FFFF:
0单元处执行。
此处有一条跳转指令。
CPU执行该指令后,转去执行BIOS中的硬件系统检测和初始化程序。
初始化程序将建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。
硬件系统检测和初始化完成后,调用INT19H进行操作系统的引导。
如果设为从软盘启动操作系统,则INT19H主要完成以下工作。
(1)控制0号软驱,读取软盘0道0面1扇区的内容到0:
7C00H处。
(2)将CS:
IP指向0:
7C00H。
软盘的0道0面1扇区中装有操作系统引导程序。
INT19H将其装到0:
7C00H处后,设置CPU从0:
7C00H开始执行此处的引导程序,操作系统被激活,控制计算机。
如果在0号软驱中没有软盘,或发生软盘I/0错误,则INT19H主要完成如下工作:
(1)读取硬盘C的0道0面1扇区的内容到0:
7C00H处。
(2)将CS:
IP指向0:
7C00H。
本次实验的任务是编写一个可以自行启动计算机,不需要在现有操作系统环境中运行的程序。
该程序功能如下:
(1)列出功能选项,让用户通过键盘进行选择,界面如下:
1resetpc
2startsystem
(2)用户输入“1”后重新启动计算机。
(3)用户输入“2”后引导现有操作系统运行。
摘要
这篇报告的内容是关于一个可以自行启动计算机,不需要在现有的操作系统环境中运行的程序。
它主要包括改程序设计的目的、设计题目的内容、任务及要求、程序总体描述及功能模块图、程序流程图、源代码、总结。
改程序功能包括:
重新启动计算机、引导现有的操作系统、进入时钟程序、设置时间。
通过对该程序的编写,将对汇编语言有更深的了解,同时对汇编的编程能力有很大的提高。
因为汇编语言是很多相关课程(如:
数据结构、操作系统、微机原理等)得重要基础。
汇编语言是和具体得微处理器相联系的,每一种微处理器的汇编语言都不一样,我们只能通过一种常用的、结构简洁得微处理器的汇编语言来学习,从而达到学习汇编的两个最根本的目的:
充分获得底层编程的体验,深刻理解机器运行程序的机理。
本次实验是在一台具体的计算机上展开,采用8086CPU为中央处理器的PC机来进行学习。
8086CPU可以满足以下条件:
常用而简洁,常用保证了可以方便地进行实践,结构简洁则便于进行教学。
关键字:
汇编语言8086CPU
目录
1设计题目的内容、任务及具体要求-1-
1.1实验内容与要求-1-
1.2总体设计思路-2-
2总体设计-3-
3详细设计-4-
3.1安装程序部分-4-
3.2任务程序-4-
总结-6-
参考文献-7-
1设计题目的内容、任务及具体要求
1.1实验内容与要求
开机后,CPU自动进入FFFF:
0单元处执行。
此处有一条跳转指令。
CPU执行该指令后,转去执行BIOS中的硬件系统检测和初始化程序。
初始化程序将建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。
硬件系统检测和初始化完成后,调用INT19H进行操作系统的引导。
如果设为从软盘启动操作系统,则INT19H主要完成以下工作。
(1)控制0号软驱,读取软盘0道0面1扇区的内容到0:
7C00H处。
(2)将CS:
IP指向0:
7C00H。
软盘的0道0面1扇区中装有操作系统引导程序。
INT19H将其装到0:
7C00H处后,设置CPU从0:
7C00H开始执行此处的引导程序,操作系统被激活,控制计算机。
如果在0号软驱中没有软盘,或发生软盘I/0错误,则INT19H主要完成如下工作:
(1)读取硬盘C的0道0面1扇区的内容到0:
7C00H处。
(2)将CS:
IP指向0:
7C00H。
本次实验的任务是编写一个可以自行启动计算机,不需要在现有操作系统环境中运行的程序。
该程序功能如下:
(4)列出功能选项,让用户通过键盘进行选择,界面如下:
1resetpc
2startsystem
(5)用户输入“1”后重新启动计算机。
(6)用户输入“2”后引导现有操作系统运行。
1.2总体设计思路
PC机开机后,CPU被设定为执行FFFF:
0单元处的指令,此处有一条跳转指令。
CPU执行该指令后,转去执行BIOS中的硬件系统测试和初始化程序。
初始化程序将建立BIOS所支持的中断向量,即将BIOS提供的中断例程的入口地址登记在中断向量表中。
硬件系统检测和初始化完成后,调用int19h进行操作系统的引导。
如果设为从软盘启动操作系统,则int19h将主要完成以下工作:
(1)控制0号软驱,读取软盘0道0面1扇区的内容到0:
7C00
(2)将CS:
IP指向0:
7C00
软盘的0道0面1扇区中装有操作系统引导程序。
int19h将其装入到内存0:
7C00处后,设置CPU从0:
7C00开始执行此处的引导程序,操作系统被激活,控制计算机。
如果在0号软驱中没有软盘,或发生软盘I/O错误,则int19h将主要完成以下工作:
(1)读取硬盘C的0道0面1扇区的内容到0:
7C00
(2)将CS:
IP指向0:
7C00
由以上描述可知,若我们想要控制引导过程,只需:
(1)编写程序
(2)将该程序代码写入软盘或硬盘C的0道0面1扇区。
因为以上工作会破坏软盘或硬盘原有数据,因此本次实验,我们选择软盘存放我们自己的启动程序。
2总体设计
其总的流程图如图2-1
是
否
图2-1总流程图
3详细设计
3.1安装程序部分
安装任务程序:
把程序写入软盘1扇区开始的3个扇区中,分两次写(为了在启动原有的操作系统时,不至于覆盖现有的程序)
3.2任务程序
由于引导操作系统以后,已经把1扇区的内容读入到了0:
7c00开始的512个字节处,所以为了保证程序完整的执行,还得把2扇区以后的2个扇区中的数据读入到0:
7e00开始的内存区
4个功能子程序
1重新启动计算机,其流程图为:
图3-1重新启动计算机功能模块图
2引导现有的操作系统流程图:
图3-2引导系统功能模块图
总结
经过这次的汇编的课程设计,无论从学习上还是从自身角度,我自认都有了很大提高,我学到了很多,也领悟了很多。
通过此次的课程设计让我熟悉了虚拟机的环境配置,加深理解计算机中断的概念与中断服务程序的执行过程,进一步熟悉DEBUG调试程序及其各种命令的用法,学会在DEBUG中使用各个命令以后怎样找出自己所要的各个存储单元的地址,理解各个控制转移指令的意义和使用方法。
还增强了我的独立思考能力,掌握自学的方法,形成工程理论整体模式,使工作、学习、生活都步入系统化流程;思考方式成熟,逻辑性规范、明确。
紧张忙碌的课程设计时间后结束了,虽然完成了实验任务,但是从中发现的问题也是值得去深思的。
在这为期一周的汇编创新性实验中我也发现了许多问题,自身的以及学习中的,自己在能力方便也有了一定的提高,我想这在我以后的学习工作中也会大有帮助。
在以后的学习中,我会更加努力,不断的提高自己,不断的完善自己。
参考文献
王爽,《汇编语言》,清华大学出版社.ISBN7-302-07195-0
源程序
Assumecs:
code
Datasegment:
db‘1)resetpc
db‘2)startsystem
dataends;
CodeSegment
Start:
Reboot:
movax,0ffffh
movbx,0
pushax
pushbx
retf;retf相当于
popip
popcs
csip的值不能通过普通的mov指令修改
StartSystem:
;读取C盘的第一扇区到内存的0:
7c00处
movax,0
moves,ax;要读取到的内存基址
movbx,7c00h;读到内存中的地址。
movdl,80h
movah,2;读磁盘操作
movdh,0;0盘面
movch,0;0磁道
movcl,1;1扇区
moval,1;只读一个扇区
int13h
;置CS,IP
movax,0
movbx,7c00h
pushax
pushbx
retf;retf相当于
popip
popcs
csip的值不能通过普通的mov指令修改
Codeends
endStart
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 报告 开机 引导 启动