实验三
一、实验目的
1. 掌握TASM汇编语言与TURBO C语言汇合编程的方法。
2. 实现内核与引导程序分离,掌握软盘上引导操作系统方法。
3. 设计并实现一种简单的作业控制语言,建立具有较友好的控制命令的批处理原型操作系统,掌握操作系统提供用户界面和内部功能的实现方法。
二、实验内容
在实验二的基础上,进化你的原型操作系统,增加下列操作系统功能:
(1)将原型操作系统分离为引导程序和MYOS内核,由引导程序加载内核;
(2)内核由汇编语言kernal.asm和c语言kernal.c二个模块生成;
(3)利用C语言实现作业控制语言mJCB,原型操作系统在当前行显示一个指示符(可以是简单的一个字符或你的学号之类),允许用户输入一行命令(回车结束,语法由你设计),操作系统解释命令并完成相应的功能(3个以上的内置功能,如time、date、asc等,而且能执行软盘上的某个用户程序),并在你的实验报告中详细介绍你的mJCB语言的语法格式和功能。
三、实验报告
1、涉及的基础知识和实验环境工具综述、你的解决方案包括程序算法原理或流程图、程序模块说明、变量定义与作用说明、数据结构组织等
实验环境工具综述:
本次试验环境为VMware9平台上搭建的8086虚拟机,编译器为tasm,tcc,链接器为tlink,通过Winhex剪辑2进制文件,并用DiskWriter工具将主程序写入虚拟软盘,通过虚拟机加载软盘实现裸机运行。
算法原理:
计算机启动后,通过引导扇区加载软盘上余下的有效扇区。
引导扇区安装必要的中断,如8号中断用以动态显示时间,21号中断用以用户程序的返回,设置栈指针,数据段指针,建立c语言运行环境,设置计数器,用以动态显示时间。配置完成后,转入基于c语言的控制程序的运行。
基于c语言的控制程序无限重复向输入端请求命令,解析命令,跳转调用对应程序,但接收到重启命令时重启,接到关机命令时进行关机。
系统总的实现为引导程序(osa.asm),汇编实现的c语言函数库(clib.asm),汇编实现的中断程序库(oslib.asm),c语言实现的控制台程序(osc.c)。
由于系统已搭建c语言运行环境,并提供了相应的库,再提供一个供用户用于链接c语言程序的启动程序,用户程序即可完全由c语言实现。启动程序指定用户程序的偏移(如c9000.asm指定了用户的c程序偏移为9000h,可更改启动程序中的org来更改目标程序的偏移),并能够返回控制台(通过调用自己安装的int 21H返回)。
程序模块说明:
clib.asm中汇编实现的c函数库
extern char cls();
功能:清屏,清空第0页的显存
输入:无
返回:无
extern int puts(const char * str);
功能:向当前光标位置输出字符串
输入:字符串首地址
返回:输出字符个数
extern char* gets(char* str);
功能:读取字符串
输入:字符串首地址
返回:字符串首地址
extern int strlen(const char *str);
功能:求以0结束的字符串的长度
输入:字符串首地址
返回:字符从长度
extern int getchar(void);
功能:读取字符
输入:无
返回:字符的ascii码
extern int putchar(int c);
功能:输出字符
输入:字符c
返回:字符c
extern unsigned int port_in8(unsigned int port);
功能:从port端口读入8位数据
输入:端口号
返回:读取的数据
extern unsigned int port_in16(unsigned int port);
功能:从port端口读入16位数据
输入:端口号
返回:读取的数据
extern void port_out8(unsigned int port, unsigned int value);
功能:向port端口输出8位数据value
输入:端口号和数据
返回:无
extern void port_out16(unsigned int port, unsigned int value);
功能:从port端口输出16位数据value
输入:端口号和数据
返回:无
extern void setp_cursor(unsigned int bh, unsigned int dh, unsigned int dl);
功能:将第bh页的指针置于dh行dl列
输入:页号bh,行号dh,列号dl
返回:无
extern void run_pro(int ord);
功能:运行程序地址表中第or
您可能关注的文档
- 河北省中小学计算机教室管理制度5项.doc
- 河南监理工程师网络继续教育考试试题答案.doc
- 互联网监管与网络道德建设试题.doc
- 互联网-行动计划考试题88分答案.doc
- 互联网医院服务系统及服务器项目竞争性磋商文件.doc
- 华工网络画法几何与工程制图随堂练习1-52题答案.doc
- 汇编程序编写和提高.doc
- 汇编程序图文显示报站.doc
- 汇编语言、微机原理及接口技术期末复习试卷以及答案五.doc
- 汇编语言第6章流程控制答案.doc
- 2025年北京市门头沟区中考一模英语试题.docx
- 2025年北京市门头沟区中考二模英语试题.docx
- 2025年北京市丰台区中考二模英语试题.docx
- 2025年中考英语考前冲刺模拟卷 (北京专用) 解析卷.docx
- 2025年中考英语考前冲刺模拟卷 (北京专用) 原卷.docx
- 2025年肩颈按摩仪行业社媒趋势数据分析.docx
- 2025年人身险行业信用回顾与2026年展望.docx
- 合同法买卖合同培训课件.ppt
- 2025年全球食物系统与SDG研究报告-食物供给、食者健康、生态平衡的整体治理.docx
- 2025下半年四川乐山市川投峨眉铁合金(集团)有限责任公司对考前自测高频考点模拟试题最新.docx
最近下载
- 2026高考化学疑难杂症:基元反应、速率方程.docx VIP
- ZONGSHEN宗申航发C100-F航空活塞发动机操作手册.pdf
- 2025中考数学压轴题每日一题(130题)答案.docx VIP
- 1209 五年级(上)英语知识点汇总《外研版》-9f2de7ee2968.docx VIP
- 1209 五年级(上)英语知识点汇总《外研版》.docx VIP
- 小学五年级体育下学期教案集.doc VIP
- 最新整理企业集中采购调研报告范文..docx VIP
- 1209 六年级(上)英语知识点汇总(外研版)-2d52fbea8388.docx VIP
- 光现象复习课件 .ppt VIP
- ICH-GCP中英文对照(完整)【参考】.doc VIP
原创力文档

文档评论(0)