安徽大学-操作系统实验指导-周爱武
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
操作系统实验指导
实验计划及实验项目
操作系统实验课程计划学时36学时,1学分,下表列出实验项目,其中必做实验24学时,选做实验12学时(从24学时的可选做实验项目中任选12学时)。
一、操作系统接口实验
实验目的
熟悉操作系统的命令接口、图形接口和程序接口。
实验内容
▪UNIX或LINUX环境:
✧熟悉开机登录进入系统、退出系统的过程。
✧使用UNIX或LINUX常用命令以及图形化接口X-Windows。
✧使用C语言编制一个小程序,使其可以通过某个系统调用来获
得操作系统的服务。
▪Windows环境:
✧熟悉开机登录进入系统、退出系统的过程。
✧熟悉使用命方式启动应用程序的过程、熟悉Windows图形用户
接口。
✧编程实现一个操作系统的简单命令解释程序。
✧使用汇编语言编制一个小程序,使其可以通过某些系统调用来获
得操作系统的服务。
实验分析和思考
▪操作系统向用户提供的各种接口分别适用于什么场合?
实验学时安排
6学时,在第一章学习完之后可以进行。(选做)
实验题目
(1)命令接口实验
利用操作系统的用户接口编写程序实现一个操作系统的简单shell程序,实现对一些简单命令的解释执行。具体内容包括:
✧查阅相关函数system(cmd)的调用方法,掌握它的用法;
✧掌握操作系统用户接口的使用方法;
✧编写主函数,实现一个微型命令解释程序,该程序可以接受并解释以下
命令:
⏹dir 列出当前目录
⏹copy file1 file2 拷贝文件
⏹del filename 删除文件
⏹echo string 显示字符串
⏹exit 结束、退出
(2) 程序接口实验
使用DOS系统功能调用进行编程,实现文件操作。(在DOS下用3ch号功能创建一个文件,3dh号功能打开一个文件,3eh好功能关闭一个文件,3fh号功能读文件,40h号功能写文件。 windows下用CreatFile创建一个文件,CloseHandle关闭文件,WriteFile写文件OpenFile打开文件,还有很多文件操作的api,可以查阅资料)
【示例1】用汇编语言编程把输入的信息写到txt文件中。
DATA SEGMENT
BUFFER DB 'ABCDEF'
FILENAME DB 'A.TXT'
EMSG DB 'ERROR!','$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DW 20H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME DS:DATA,SS:STACK1,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AH,3CH ;3CH号功能,创建文件,也可以用5BH
号功能
MOV CX,0 ;文件属性
LEA DX,FILENAME
INT 21H
JZ ERROR ;若CF=1则出错处理
MOV BX,AX ;AX中为文件句柄
MOV CX,6 ;要写的字节数
LEA DX,BUFFER
MOV AH,40H ;40H好功能调用,写文件
INT 21H
JMP END0
ERROR:
MOV AH,9
LEA DX,EMSG
INT 21H
END0:
MOV AH,4CH
INT 21H
CODE ENDS
END START
改进要求:
1)文件未关闭,请在合适位置增加关闭文件功能;
2)文件名改为从键盘输入;
3)字符串从键盘输入;
【示例2】将文本文件内容读入内存并显示在屏幕上。比如此文本文件叫做test.txt,内容是:(两行)
1234
56789
DSEG SEGMENT ;数据段:在此处添加程序所需的数据
PATHNM1 DB 'D:/TEST.TXT'
BUFFER1 DB 100 DUP (?)
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG
START: mov ax, dseg
mov ds, ax
;打开文件TEST.TXT
MOV AH,3DH
LEA DX,PATHNM1
MOV AL,2
INT 21H
;读取文件内容,存入BUFFER1
LEA DX,BUFFER1
MOV BX,AX
MOV CX,100
MOV AH,3FH
INT 21H
;显示BUFFER1中的内容
MOV CX,AX
LEA SI,BUFFER1
NEXT:
MOV DL,[SI]
MOV AH,2
INT 21H
INC SI
LOOP NEXT
;关闭文件
MOV AH,3EH
INT 21H
;按任意键退出
mov ah,1
int 21h
mov ax, 4c00h ;程序结束,返回到操作系统系统
int 21h
CSEG ENDS
END START
改进要求:
1)文件名改为从键盘输入;
2)字符串写入另一文件;