当前位置:文档之家› 部分习题参考答案★★★

部分习题参考答案★★★

部分习题参考答案★★★
部分习题参考答案★★★

《微型计算机技术及接口》试验指导手册部分习题解答

2.26 8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该

选择在什么范围?

答:应该选择在中断类型码为32(20H)~255(FFH)范围。

3.7 下面那些正确,那些错误?

XCHG CS, AX

MOV [BX], [1000]

XCHG BX, IP

PUSH CS

POP CS

IN BX, DX

MOV BYTE [BX], 1000

MOV CS, [1000]

3.16 方法一: 串操作指令

注意操作方向3.16 方法二:常规比较法

注意指针DI-1才是要操作的数

AA: MOV SI, 2170H

MOV DI, 100H

MOV CX, 100H

MOV DX, CX

CLD

REP MOVSB

STD

MOV CX, DX

REPNZ SCASB

JNZ AA

MOV [DI], ‘ ’

…..

L0:

L2:

L3:

AA:

MOV SI, 2170H

MOV DI, 100H

MOV CX, 100H

MOV DX, CX

MOV AL, [SI]

MOV [DI], AL

INC SI

INC DI

LOOP L0

MOV CX, DX

CMP AL, [DI-1]

JZ L3

DEC DI

LOOP L2

JMP AA

MOV [DI-1], ‘ ’

…….

3.19 找最大值并放在AL中 3.25

题找第一个非零元素,并清零

用串操作方法

最后一条指令,对连续的两个单

元写0

L1: L0: MOV CX, 60H

MOV AL, 0

MOV SI, OFFSET BUF

CMP AL, [SI]

JA L0

MOV AL, [SI]

INC SI

LOOP L1

AA:

MOV DI, OFFSET TABLE

MOV CX, 160

MOV AL, 0

CLD

REPE SCASB

JZ AA

MOV WORD PTR [DI], 00

…..

3.25 找第一个非零元素,并清零

常规比较方法

最后一条指令,对连续的两个单元

写0 3.30

MUL 48

16位数与32数无符号数相乘结

果为48位

L1:

L0: L2: MOV DI, OFFSET TABLE

MOV CX, 160

MOV AL, 0

CMP AL, [DI]

JNZ L0

INC DI

LOOP L1

JMP L2

MOV WORD PTR [DI], 00

…..

STAT:

MUL48:

JMP MUL48

HI0

LO0

HI1

LO1

HI2

LO2

DW ?

DW ?

DW ?

DW ?

DW ?

DW ?

MOV HI0, DX

MOV LO0, AX

MUL BX

MOV HI1, DX

MOV LO1, AX

MOV AX, HI0

MUL BX

MOV HI2, DX

MOV LO2, AX

; 存到AX, BX, CX中

MOV AX, LO1

MOV BX, HI1

ADD BX, LO2

MOV CX, HI2

ADC CX, 0

RET

3.31 MULS48 16位数与32数有符号数相乘结果为48位,先判断两个数的正负,然后调用 MUL48

[1000] 中放符号标志

MULS48: L0:

L1: EXIT: MOV [1000], 0 CMP [DX], 0 JNS L0

NOT AX

NOT DX

ADD AX, 1 ADC DX, 0 NOT [1000] CMP [BX], 0 JNS L1

NOT BX

ADD BX, 1 NOT [1000] CALL MUL48 CMP [1000], 0 JZ EXIT

NOT AX

NOT BX

NOT CX

ADD AX, 1 ADC BX, 0 ADC CX, 0 RET

6.26 用8251异步发送一段数据

注意段地址的使用

COUNT EQU xxxx

……

MOV AL, 7BH

OUT 42H, AL

MOV AL, 35H

OUT 42H, AL

PUSH DS

MOV AX, 2000H MOV DS, AX 程序先前程序的数据段压栈保护DS指向操作数据段

L00: MOV SI, 3000H

MOV CX, COUNT

IN AL, 42H

TEST AL, 01H

JZ L00

MOV AL, [SI]

OUT 40H, AL

INC SI

LOOP L00

POP DS

数据个数

判断发送是否准备好?

发送数据并改变地址指针

出栈恢复以前处理的数据段

6.25 参考初始化流程,用程序对8251A进行同步模式设置。奇地址端口的地址为66H,规定用内同步方式,同步字符为2个,用奇校验,7个数据位。

答:模式字为:00011000B=18H。两个同步字符取16H,控制字为97H,它使8251A 对同步字符进行检索;同时使状态寄存器中的3个出错标志复位;使8251A的

发送器启动,接收器也启动;CPU当前已准备好进行数据传输。具体程序段如

下:

MOV AL,18H ;设置模式字

OUT 66H,AL

MOV AL,16H ;发送两个同步字符

OUT 66H,AL

OUT 66H,AL

MOV AL,97H ;设置控制字

OUT 66H,AL

6.30数据从8255A的端口C往数据总线上读出时,8255A的几个控制信号CS、A1、A0、

RD、WR分别是什么电平?

CS WR

CS

7.12 怎样用8259A的屏蔽命令字来禁止IR3和IR5引腿上的请求?又怎样撤销这一禁止命

令?设8259A 的端口地址为90H 、92H 。 答:1. CLI

IN AL ,92H ;(AL)←(IMR)

OR AL ,28H ;禁止IR 3和IR 5引脚上的中断请求 OUT 92H ,AL ;OCW 1送奇地址端口 STI

2. CLI

IN AL ,92H ;(AL)←(IMR)

AND AL ,0D7H ;允许IR 3和IR 5引脚上的中断请求 OUT 92H ,AL ;OCW 1送奇地址端口 STI 7.32 程将8253计数器0设置为模式1,计数初值为3000H ;计数器1设置为模式2,计数

初值为2010H ;计数器2设置为模式4,计数初值为4030H ;地址设为0070H 、0072H 、0074H 、0076H 。 答: MOV AL ,32H ;设置计数器0为模式1

OUT 76H ,AL

MOV AX ,3000H ;写计数初值 OUT 70H ,AL MOV AL ,AH OUT 70H ,AL

MOV AL ,74H ;设置计数器1为模式2 OUT 76H ,AL

MOV AX ,2010H ;写计数初值 OUT 72H ,AL MOV AL ,AH OUT 72H ,AL

MOV AL ,0B8H ;设置计数器2为模式4 OUT 76H ,AL

MOV AX ,4030H ;写计数初值 OUT 74H ,AL MOV AL ,AH OUT 74H ,AL

8.2

在T 型电阻网络组成的D/A 转换器中,设开关K 0、K 1、K 2、K 3、K 4分别对应一位

二进制数,当二进制数据为10110时,流入运算放大器的电流为多少?画出这个T 型网络。

答:1.流入运算放大器的电流I 为:(n=5)

2.T 型网络如下图:

R 16V 1122R

2V )B 10110(R 2V N R 2V I REF

5REF 5REF N REF =?=?=?=

相关主题
文本预览
相关文档 最新文档