知ing

微机原理及应用(第二版)

陈继红 徐晨 王春明 徐慧 编著 / 高等教育出版社

✎๓❦╰★佪眸┅笑★ 上传

查看本书

 中断习题

8.1 80x86 的中断系统有哪几种类型中断?其优先次序如何?

80x86 的中断系统可处理256 种个中断源。这些中断源可分为两大类:外部中断(硬件

中断)、内部中断(软件中断)。软件中断包括:除法中断、单步中断、指令中断、溢出中断。

硬件中断包括:INTR NMI

中断优先级的次序是:内部中断()_非屏蔽中断_可屏蔽中断_单步中断()

8.3 已知中断向量表表中地址0020H ~ 0023H 的单元中依次是40H00H00H01H

并知INT 08H 指令本身所在的地址为9000H00A0H。若SP=0100HSS=0300H,标志寄

存器内容为0240H,试指出在执行INT 08H 指令,刚进入它的中断服务程序时,SPSS

IPCS 和堆栈顶上三个字的内容(用图表示)。

执行后 SS=0300H SP=00FAH

CS=0100H IP=0040H ,堆栈顶上三个字的内容如下所示:

0 0 F AH

0 0 F CH

执行后:0300H00FEH

初始: 0300H01000H

8.4 某一用户中断源的中断类型号为40H,其中断服务程序名为INTR40,请用两种不

同的方法设置它的中断向量。

法一:MOV AX,0000H

MOV DS,AX

MOV SI,0100H

MOV AX,OFFSET INTR40

MOV [SI],AX

MOV AX,SEG INTR40

MOV [SI+2],AX

法二:MOV BX,SEG INTR40

MOV DS,BX

MOV DX,OFFSET INTR40

MOV AH,25H

INT 21H

8.5 试编写一段将8259A IRRISRIMR 的内容读出,存入到BUFFER 开始的数

据缓冲区去的程序。8259A 的端口地址为30H31H

START: MOV AX,DATA ;取BUFFER 所在数据段的段基址DS

MOV DS,AX

LEA SI,BUFFER ;取BUFFER 所在数据段的偏移地址SI

MOV AL,0AH ;读出命令字OCWP=0RR=1RIS=0,选IRR

栈区

A2H

00H

00H

90H

40H

02H

XX

OUT 30H,AL

IN AL,30H ;读出IRR 的内容

MOV [SI],AL IRR 内容送内存

MOV AL,0BH ;读出命令字OCWP=0RR=1RIS=1,选ISR

OUT 30H,AL

IN AL,30H ;读出ISR 的内容

MOV [SI+1],AL ISR 内容送内存

IN AL,31H ;读IMR 的内容

MOV [SI+2],AL IMR 的内容送内存

8.6 某一8086CPU 系统中,采用一片8259A 进行中断管理。设8259A 工作在全嵌套

方式,发送EIO 命令结束中断,边沿触发方式,IR0 对应的中断向量号为90H8259A 在系

统中的端口地址为FFDCHA0=0)和FFDDHA0=1),试编写8259A 的初始化程序段。

初试化程序段为:

MOV AX0FFDCH ;8259A 的偶地址端口

MOV DXAX

MOV AL13H ;控制初始化命令字ICW设为13H,中断请求为边沿触

;发方式,单片8259A,需写入ICW4

OUT DXAL ;设置ICW1

MOV AX0FFDDH ;8259A 的奇地址端口

MOV DXAX

MOV AL90H ;中断类型码初始化命令字ICW设为90H,对应于

;IR~IR的中断类型码为90H~97H

OUT DXAL ;设置ICW2

MOV AL01H ;方式控制初始化命令字ICW设为01H,全嵌套方式,

;非缓冲方式,非自动中断结束方式,工作于8086 系统中

OUT DXAL ;设置ICW4


第九章 可编程接口芯片及应用习题

9.1 试按如下要求分别编写初始化程序,已知计数器0 ~ 2 和控制字寄存器的端口地址

依次为204H ~ 207H

1)使计数器工作在方式0,仅用位二进制计数,计数初值为128

2)使计数器工作在方式1,按BCD 码计数,计数值为3000

3)使计数器工作在方式2,按二进制计数,计数值为02F0H

初始化程序为:

1 MOV DX207H

MOV AL50H

OUT DXAL

MOV DX205H

MOV AL80H

OUT DXAL

2 MOV DX207H

MOV AL33H

OUT DXAL

MOV DX204H

MOV AX3000H ;注意,不是3000

OUT DXAL

MOV ALAH

OUT DXAL

3 MOV DX207H

MOV AL0B4H

OUT DXAL

MOV DX206H

MOV AL0F0H

OUT DXAL

MOV AL02

OUT DXAL

9.2 硬件如题9.2 图,利用PC 内部8253 定时器0,并用中断方式实现每隔1s 使发光

二极管亮暗交替显示。(PC 内部8253 输入时钟频率为1.1932MHz8253 定时器端口地址

40H,控制寄存器端口地址为43HY0 350H)。

定时器计数值=1.1932MHz÷5=32864=83D5H

软件计数值:50

程序为:(硬件图见教材P345 9图)

MOV AL34H

OUT 43HAL

MOV AL0D5H

OUT 40HAL

MOV AL83H

OUT 40HAL

MOV BL50

T0 中断服务程序为:

DEC BL

JNZ EXIT1

MOV BL50

MOV ALBUF

NOT AL

MOV BUFAL

MOV DX350H

OUT DXAL

EXIT1MOV AL20H

OUT 20HAL;(设8259A 的端口地址为20H21H

IRET

9.3 硬件如题9.3 图,8253 采用方式0BCD 码计数方式,初始值为1000,每按一次

按钮S,计数器值减1。试编程实现显示8253 当前计数值,直至计数值为08253 端口地

址范围为80H ~ 83H

(略。在何处显示---屏幕/LED/液晶?)

9.4 9.4 为一简化的键盘/数码管显示接口电路,假设端口线a’ ~ h’1脚送“1”

电平,可使显示点亮并能实现扫描,试问U1U2 及数码显示器的选用。

1U1  (同相驱动器 反相驱动器)。

2U2  (同相驱动器 反相驱动器)。

3)数码显示器为 (共阴 共阳)数码管。

4)若键闭合,则端口线3的电平为 

9.4 见教材P295

选用同相驱动器

选用反相驱动器

选用共阴数码管

键闭合,则端口线3的电平为01

9.5 硬件如题 9.5 图,试编程实现循环检测S0S1,当S0 按下,数码管显示0,当

S1 按下,数码管显示1S0S1 同时按下,则结束程序。8255 的端口地址范围为80H83H

程序为:

MOV AL82H

OUT 83HAL

AGAIN IN AL81H

TEST AL03

JZ EXIT

TEST AL01

JZ NEXT

MOV AL3FH

OUT 80HAL

JMP AGAIN

NEXT TEST AL02

JZ NEXT1

MOV AL06

OUT 80HAL

JMP AGAIN

NEXT1 MOV AL00

OUT 80HAL

JMP AGAIN

EXIT MOV AH4CH

INT 21H__



查看更多