文档详情

计算机系操作系统实验报告.doc

发布:2017-06-08约字共20页下载文档
文本预览下载声明
实验一 自制时钟 实验目的 1、了解系统的时钟和定时器机制。 2、了解与时间相关的函数。 3、掌握如何使用定时器。 问题描述 1、在Linux操作系统中,有两种定时测量:(1)维护系统当前时间和日期;(2)间隔定时器,又称定时器。时间维护:计算机有两个时钟——硬时钟和软件时钟;Linux内核提供的系统时间服务是国际标准时间:公元1970年1月1日00:00:00以内经过的累计秒数,这种秒数是以数据类型time_t表示的,它实际是一个长整型数,用全局变量jiffies表示,其定义放在头文件time.h中; 2、本实验要用到以下功能调用,25H(置中断向量),35H(取中断向量),2CH(取系统 时间),以及“Int 10h”中的02H(置光标位置)、03H(读光标位置),0EH(写字符)。实验中可以定义时钟计数单元count以及记录时、分、秒的变量单元,另外,还应该定义保存原1CH中断向量的单元。 三、源程序 code segment org 100h assume cs:code , ds:code main: jmp start welcome db 0ah ,0dh ;数据段定义 db 0ah ,0dh ,$ old_int dd ? ;原中断向量地址 start: mov dx,seg welcome mov ds,dx mov dx ,offset welcome mov ah ,09h ;显示字符串 int 21h mov ax ,351Ch int 21h ;读取中断向量 mov word ptr old_int , bx ;把地址放入old_int里面 mov word ptr old_int[2] ,es mov dx,offset clock ;设置新的中断向量,首地址为clock push cs pop ds mov ax ,251Ch ;系统功能调用 int 21h mov dx , offset main ;驻留内存 int 27h clock proc far ;保护现场 push ax push bx push cx push dx push si push di push bp push sp push es push ds sti call disp cli ;返回现场 pop ds pop es pop sp pop bp pop di pop si pop dx pop cx pop bx pop ax jmp cs:old_int clock endp disp proc near push ax push cx push dx push es push bx ;进行初始化 mov ax,0b800h mov es,ax ;显示时间 mov ah, 02h int 1ah mov ax, 0eh ;显示小时的高位 mov bh,ch shr bh,1 shr bh,1 shr bh,1 shr bh
显示全部
相似文档