计算机组成原理实验报告中断实验.docx
- 文档编号:13967778
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:11
- 大小:318KB
计算机组成原理实验报告中断实验.docx
《计算机组成原理实验报告中断实验.docx》由会员分享,可在线阅读,更多相关《计算机组成原理实验报告中断实验.docx(11页珍藏版)》请在冰点文库上搜索。
计算机组成原理实验报告中断实验
计算机组成原理实验报告-中断实验
实验内容:
实验实现方式可以任意选择,可以利用下列任意一种,或者自己设计
1、下载DOSBOX和MASM32,利用汇编语言实现。
(1)实现利用21H(DOS)中断中的9号功能调用,在屏幕上显示一句话。
(2)编写0号中断处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divideerror!
”,然后返回操作系统。
(3)写一段程序,将其地址填入中断向量表,使发生中断时,调用用户自己的程序
(4)每隔一定时间在屏幕上显示一句话
2、利用proteus里面的8086和8259或者8255等芯片及按键,模仿硬件电路。
并且设计其软件代码
3、阅读一段Linux内核代码,分析其代码,要求涉及中断号,中断调用和开关中断。
程序至少要30行以上
例如
(1)Linux中,从启动BIOS到操作系统内核加载
(2)从实模式到保护模式转变
(3)设备环境初始化及激活进程0
实验步骤与预习:
1、计算机中数据是如何表示的?
计算机中数据都是以二进制形式表示,以二进制信息单元0和1的形式表示。
实际数表示方法:
符号(正负数)
数值处理(数制转换)
小数点的处理(定点浮点)
机器数的表示方法:
原码反码 补码
2、计算机中二进制数的加、减、乘、除四则运算如何实现?
二进制加法和十进制加法相似,所不同的是十进制有十个码,“满十进一”,二进制只有两个数码0和1,“满二进一”。
进位规则是逢“2进1”数字1在不同的位上代表不同的值,按从右至左的次序,这个值以二倍递增
二进制的加法:
即0+0=0;0+1=1;1+0=1;1+1=10
二进制的加法:
即0-0=0;1-1=1;1-0=1;10-1=1
二进制的加法:
即0*0=0;0*1=0;1*0=0;1*1=1
二进制的加法:
即0/1=0;1/1=1;
3、运算器的基本结构和功能有哪些?
运算器由:
算术逻辑单元(ALU)、累加器(是一种暂存器,用来存储计算所产生的中间结果)、状态寄存器(体现当前指令执行结果,存放控制信息)、通用寄存器组等组成。
运算器的基本功能是完成对各种数据的加工处理,例如算术四则运算,与、或、求反等逻辑运算,算术和逻辑移位操作,比较数值,变更符号,计算主存地址等。
运算器中的寄存器用于临时保存参加运算的数据和运算的中间结果。
运算器中还要设置相应的部件,用来记录一次运算结果的特征情况,如是否溢出,结果的符号位,结果是否为零等。
计算机所采用的运算器类型很多,从不同的角度分析,就有不同的分类方法。
从小数点的表示形式可分为定点运算器和浮点运算器。
定点运算器只能做定点数运算,特点是机器数所表示的范围较小,但结构较简单。
浮点运算器功能较强,既能对浮点数,又能对定点数进行运算,其数的表示范围很大,但结构相当复杂。
从进位制方面分为二进制运算器和十进制运算器。
一般计算机都采用二进制运算器,随着计算机广泛应用于商业和数据处理,越来越多的机器都扩充十进制运算的功能,使运算器既能完成二进制的运算,也能完成十进制运算。
计算机中运算器需要具有完成多种运算操作的功能,因而必须将各种算法综合起来,设计一个完整的运算部件。
实验结果:
疑难小结:
通过此次试验,我加深理解计算机系统中断的工作原理及处理过程,学习和掌握了中断产生、响应、处理等技术,掌握中断服务子程序的编写要点,进行一次硬、软件的综合调试。
由于本次实验课前,计算机组成原理课堂上进行了关于中断机制,中断向量表的学习,因此在本次实验课上得心应手。
本次除了敲上课本所附代码外,自行设计了一个中断程序,虽然过程中遇到些许麻烦,不过最终得以解决,过程中,对中断的产生,响应以及处理机制加深了了解和熟悉。
在学习中断时,应学会主动制造错误,如除法溢出等出发中断,然后逐步了解其响应过程,以及通过中断向量表调用内存中自己所写入的程序代码,从而加深对中断整个过程的了解。
从单片机中的学习,清楚明白到中断机制的存在为底层编程予以极大方便和灵活性,因此熟悉中断机制是我们深入学习嵌入式系统的前提。
主要实现方法和过程(及程序清单):
#include
#include
voidoperator_2();
voidoperator_10();
intmi(int,int);
intmain(){
charch='y';
while(ch!
='n'&&ch!
='N'){
intn;
printf("选择进制:
\n二进制:
1\n十进制:
2\n");
scanf("%d",&n);
switch(n){
case1:
operator_2();break;
case2:
operator_10();break;
default:
printf("输入有误或暂不支持该运算\n");break;}
fflush(stdin);//清空输入缓冲区
printf("是否结束?
(N/n)\n");
ch=getchar();
}
return0;
}
intmi(intm,intn){
inti=0;
intnum=1;
for(;i num*=n; returnnum; } voidoperator_2(){ charm[64]="0",n[64]="0",num[64]="0"; intlen_m=0; intlen_n=0; intlen_num=0; intin_num=0; intin_m=0; intin_n=0; inti=0; intj=0; charch='0'; charfu='0'; chartemp='0'; printf("输入一个二进制数字\n"); getchar(); for(;;i++){ ch=getchar(); if(ch=='\n'){ break; } m[i]=ch; } m[i]='\0'; len_m=strlen(m);//计数的作用,得到数组的长度 for(i=0;m[i]! ='\0';i++){ in_m+=mi((len_m-i-1),2)*(m[i]-48);//字符-》数字 } in_num=in_m; while (1){ fflush(stdin); printf("请选择操作((+加)/(-减)/(*乘)/(/除)/(0清空)/(=得到结果))\n"); fu=getchar(); if(fu=='0'){ printf("清空\n"); in_num=0; break; }elseif(fu=='='){ i=0; do{ num[i]=in_num%2+48;in_num/=2;i++;//数字-》字符 }while(in_num! =0); i--; while(j temp=num[j]; num[j]=num[i]; num[i]=temp; i--; j++; } printf("结果为%s\n",num); break; } if((fu! ='+')&&(fu! ='-')&&(fu! ='*')&&(fu! ='/')){ printf("运算符错误,结果保留退出\n"); break;} printf("输入一个二进制数字\n"); getchar(); for(i=0;;i++){ ch=getchar(); if(ch=='\n'){ break; } n[i]=ch; } n[i]='\0'; len_n=strlen(n); in_n=0; for(i=0;n[i]! ='\0';i++){ in_n+=mi((len_n-i-1),2)*(n[i]-48); } switch(fu){ case'+': in_num+=in_n;break; case'-': in_num-=in_n;break; case'*': in_num*=in_n;break; case'/': in_num/=in_n;break; default: break; } } return; } voidoperator_10(){ intm,n,num; charch='0'; printf("输入一个十进制数字\n"); scanf("%d",&m); num=m; while (1){ fflush(stdin); printf("操作(0清空)\n"); ch=getchar(); if(ch=='0'){ num=0; break; }elseif(ch=='='){ printf("结果为%d",num); break; } if((ch! ='+')&&(ch! ='-')&&(ch! ='*')&&(ch! ='/')){ printf("运算符错误,结果保留退出\n"); break; } printf("输入一个十进制数字\n"); scanf("%d",&n); switch(ch){ case'+': num+=n;break; case'-': num-=n;break; case'*': num*=n;break; case'/': num/=n;break; default: break; } } return; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组成 原理 实验 报告 中断