知ing

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

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

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

查看本书

第6章 存储器 习题答案(部分)


6.1 试说明半导体存储器的分类。

答:半导体分为:RAM ROMRAM 分为静态RAM 和动态RAMROM 分为:掩膜ROM

PROMEPROME2PROM

6.2 试说明CMOS 静态存储器基本存储电路数据读、写的原理。



第7章 基本输入/输出接口 习题答案(部分)


7.1 简述I/O 接口的主要功能。

答:(1)对输入输出数据进行缓冲和锁存

2)对信号的形式和数据的格式进行变换

3)对I/O 端口进行寻址

4)提供联络信号

7.2 CPU 与外设之间的数据传输方式有哪些?简要说明各自含义。

答:(1)程序方式:微机系统与外设之间的数据传输过程在程序的控制下进行

2)中断方式:在中断传输方式下,当输入设备将数据准备好或输出设备可以接收数

据时,便向CPU 发出中断请求,使CPU 暂时停止执行当前程序,而去执行数据输入/输出

的中断服务程序,与外设进行数据传输操作,中断服务程序执行完后,CPU 又返回继续执

行原来的程序。

3)直接存储器存取(DMA)方式:DMA 方式是指不经过CPU 的干预,直接在外设

和内存之间进行数据传输的方式。

7.3 什么是端口?通常有哪几类端口?计算机对I/O 端口编址时通常采用哪?在80x86

系统中,采用哪一种方法?

每个I/O 接口内部一般由三类寄存器组成。CPU 与外设进行数据传输时,各类信息在

接口中进入不同的寄存器,一般称这些寄存器为I/O 端口。

I/O 端口通常有数据端口、状态端口、控制端口。

计算机对I/O 端口编址时通常采用:I/O 端口与内存统一编址、I/O 端口独立编址两种

方法。

80x86 系统中,采用I/O 端口独立编址方法。

74 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0

1 时表明输入数据准备好。试采用查询方式,编程实现从该设备读取100 个字节数据并保

存到2000H2000H 开始的内存中。

程序为:

CODE SEGMENT

ASSUME CS:CODE

START: MOV AX2000H

MOV DSAX

MOV SI2000H

MOV CX100

CONT MOV DX0FFE2H

CONT1IN ALDX

TEST AL01

JZ CONT1

MOV DX0FFE0H

IN ALDX

MOV [SI]AL

INC SI

LOOP CONT

MOV AH4CH

INT 21H

CODE ENDS

END START

7.5 硬件如图75 所示,试编程实现:S0 控制8 个发光二极管1 7 暗,S1 控制8

 8 个发光二极管7 1 暗,S2 控制某一亮点(或暗点)以一定时间间隔循环向左移动,

S3 控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则

结束程序。

CODE SEGMENT

ASSUME CS:CODE

MAIN PROC FAR

START: PUSH DS

MOV AX,0

PUSH AX

NEXT1: MOV AH,1

INT 16H

CMP AL 1BH

JZ EXIT1

MOV DX 200H

IN AL,DX

TEST AL,0FEH

JZ NEXT2

TEST AL 0FDH

IN AL,0BFH

MOV CX,8

JPM NEXT3

NEXT2:MOV CX,8

NOT AL

NEXT3:ROR AL,1

MOV DX,200H

OUT DX,AL

LOOP NEXT3

EXIT: RET

MAIN ENDP

CODE ENDPS

END START

程序段为:(省略伪指令)

DATA SEGMENT

BUF1 DB 01H

BUF2 DB 80H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MOV AX,DATA

MOV DS,AX

MOV DX,200H

AGAIN IN AL,DX

XOR BL,BL

MOV CX,8

CONT ROR AL,1

JNC NEXT

INC BL

NEXT LOOP CONT

CMP BL,2

JAE EXIT

CMP AL,0FEH

JZ 1L7A

CMP AL,0FDH

JZ 1A7L

CMP AL,0FBH

JZ ZSHL

CMP AL,0F7H

JZ YSHR

1L7A: MOV AL,80H

OUT DX,AL

JMP AGAIN

7A7L: MOV AL,7F

OUT DX,AL

JMP AGAIN

ZSHL: MOV AL,BUF1

ROL AL,1

MOV BUF1,AL

OUT DX,AL

CALL D500MS

JMP AGAIN

YSHR: MOV AL,BUF2

ROR AL,1

MOV BUF1,AL

OUT DX,AL

CALL D500MS

JMP AGAIN

EXIT: MOV AH,4CH

INT 21H

CODE ENDS

END

8  中断习题

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 ;控制初始化命令字ICW1 设为13H,中断请求为边沿触

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

OUT DXAL ;设置ICW1

MOV AX0FFDDH ;8259A 的奇地址端口

MOV DXAX

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

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

OUT DXAL ;设置ICW2

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

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

OUT DXAL ;设置ICW4

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

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

依次为204H ~ 207H

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

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

3)使计数器2 工作在方式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 定时器0 端口地址

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

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

软件计数值:50

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

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’12 脚送“1”

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

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

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

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

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

9.4 见教材P295

选用同相驱动器

选用反相驱动器

选用共阴数码管

A 键闭合,则端口线34 的电平为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__


查看更多