第七章 习题 【微机原理】
- 前言
- 推荐
- 第七章 习题
- 5
- 6
- 7
- 9
- 10
- 最后
前言
第七章 习题
5
5.I/O端口与存储单元是CPU启动总线周期对外部进行访问的两种外部资源,试问I/O
端口和存储单元编址有哪两种类型?各有哪此优缺点?8086/8088 CPU是使用哪种编址方式的?
1.统一编址(存储器映射I/O编址):即把I/O端口的地址也看作是一个内存单元,与内存地址统一混合编址。
优点:对外设的操作可以直接使用对内存操作指令,指令较多、使用方便。
缺点:内存空间减少,采用内存操作指令的速度比专用I/O指令慢。
2.独立编址(I/O映射编址):即I/O端口与内存分开独立编址,二者各有一套地址空间,井水不犯河水。
这样编址的微处理器都有个M/-IO信号,当使用MOV指令时它自动变成高电平,用IN/OUT指令时它自动变成低电平,
优点:
1、存储器地址空间不受I/O端口地址空间的影响
2、专用的输入/输出指令与访问存储器指令有明显区别,便于理解和检查。
缺点:
1、专用I/O指令增加了指令系统复杂性,且I/O指令类型少,程序设计灵活性较差;
2、要求CPU提供专门的控制信号以区分对存储器和I/O端口的操作,增加了控制逻辑的复杂性。
8086/8088 CPU是使用独立编址方式的
6
6.8086/8088 CPU中断管理系统能管理多少个中断源?这些中断源产生中断请求时
CPU是如何找到这些中断源的中断服务程序的入口地址的?
8086/8088共有256个中断类型号,对应256个中断服务程序的入口地址。
所有中断服务子程序的入口地址都存放在中断向量表中。
CPU响应中断时,把中断类型号N乘以4,得到对应地址4N,
然后把由此地址开始的两个低字节单元(4N,4N+1)的内容装入IP寄存器,
再把两个高字节单元(4N+2,4N+3)的内容装入CS寄存器,
于是CPU转入中断类型号为N的中断服务子程序。
7
7.简述8086/8088CPU中断向量表的作用?DOS功能调用的中断类型号为21H、试问
该中断的中断服务程序入口地址存放在中断向量表的哪四个单元?该四个单元中的内容是何时由谁负责放入的?
中断向量表是存放中断向量的一个特定的内存区域。
每个入口地址的段地址和段内偏移地址占4个存储单元
两个低字节单元的装入内容是IP寄存器,两个高字节单元的装入内容是CS寄存器
84H 85H 86H 87H
操作系统
9
9.编写一个中断服各程序,其功能为在屏幕上显示“This is an interrupt service routine!",中断类型号设为68H,试分别用DOS功能调用和直接写入两种方法把中断服务程序的入口地址写入中断向量表。
DOS功能调用
91.asm
DATA SEGMENT
MESG DB 'This is an interrupt service routine!$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
PUSH DS
MOV DX,OFFSET DISP68 ;取DISP68的偏移地址
MOV AX,SEG DISP68 ;取中断服务程序DISP68的段地址
MOV DS,AX
MOV AH,25H
MOV AL,68H
INT 21H
POP DS
INT 68H
MOV AH,4CH
INT 21H
DISP68 PROC FAR ;中断服务程序DISP68
MOV DX,OFFSET MESG
MOV AH,09H
INT 21H
IRET
DISP68 ENDP
CODE ENDS
END START
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5yM0MTMxADM2kjYmFDOwEDZyYzXxMDNyQTM1EzLcdDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
直接写入
92.asm
DATA SEGMENT
MESG DB 'This is an interrupt service routine!$'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
PUSH DS
XOR AX,AX
MOV DS,AX
MOV AX,OFFSET DISP68
MOV DS:[01A0H],AX ;置偏移地址
MOV AX,SEG DISP68
MOV DS:[01A0H+2],AX;置段地址
POP DS
INT 68H
MOV AH,4CH
INT 21H
DISP68 PROC FAR ;中断服务程序DISP68
MOV DX,OFFSET MESG
MOV AH,09H
INT 21H
IRET
DISP68 ENDP
CODE ENDS
END START
10
8259A是可编程中断控制器(Programmable Interrupt Controller)芯片,用于管理和控制
80x86的外部中断请求,可实现中断优先级判定,提供中断类型号,屏蔽中断输入等功能。
单片8259A可管理8级中断,若采用级联方式,最多可以用9片8259A构成两级中断机构,
管理64级中断。8259A是可编程器件,它所具有的多种中断优先级管理方式可以通过主程
序在任何时候进行改变或重新组织。