哈工程 微机原理 期末试题--微机原理习题(带答案)

更新时间:2023-11-24 21:11:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章 微型计算机的基础知识 习题 1. 计算机分那几类?各有什么特点?

2. 简述微处理器、微计算机及微计算机系统三个术语的内涵。 3. 80X86微处理器有几代?各代的名称是什么?

4. 将十进制数 (1)+107/128 (2)―35/64化成二进制数,再写出各自的原码、反码、补码表示(符号位和数值位共8位)。 5. 将十进制数 (1)―52,(2)―127化成二进制数,再写出各自的原码、反码、补码表示(符号位和数值位共8位)。 6. 下列数中最小的数为( )。

A、101001B B、52Q C、101001(BCD) D、233H 7. 下列数中最大的数为( )。

A、10010101B B、227Q C、96H D、143

8. 某数在计算机中用8421BCD码表示为0111 1000 1001,其真值为( )。 A、789 B、789H

C、1929 D、11110001001B 9. 计算机内部采用____数字进行运算 A.八进制 B.十进制 C.二进制 D.十六进制

10. 英文小写字母“c”的ASCII码为1100011,英文字母“f”的ASCII码为十进制____ A.100 B.101 C.102 D.103

11. 按对应的ASCII码值来比较,不正确的是____ A.“b”比”a”大 B.“f”比”F”大

C.“9”比”0”大 D.“F”比”f”大 参考答案

1. 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统, 存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 2. 答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。 3. 答:从体系结构上可分为3代:8080/8085:8位机;8086/8088/80286:16位机; 80386/80486:32位机。 4.答案:(1)原、反、补码都是:01101011,(2)原码:11000110,反码:10111010,补码:10111001 5.答案:(1)原码:10110100,反码:11001011,补码:11001100 (2)原码:11111111,反码:10000000,补码:10000001 6.C 7.B 8.A 9.C 10.C 11.D 第二章 8086微处理器 习题

1、8086是多少位的微处理器?为什么?

2、EU与BIU各自的功能是什么?如何协同工作?

3、8086/8088与其前一代微处理器8085相比,内部操作有什么改进?

4、8086/8088微处理器内部有那些寄存器,它们的主要作用是什么? 5、8086对存储器的管理为什么采用分段的办法?

6、在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。 7、给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。

8、8086/8088为什么采用地址/数据引线复用技术? 9、8086与8088的主要区别是什么?

10、怎样确定8086的最大或最小工作模式?最大最小模式产生控制信号的方法有何不同? 11、8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序? 12、8086基本总线周期是如何组成的?各状态中完成什么基本操作?

13、结合8086最小模式下总线操作时序图,说明ALE、M/IO#、DT/R#、RD#、READY信号的功能。

14、什么是总线请求?8086在最小工作模式下,有关总线请求的信号引脚是什么? 15、简述在最小工作模式下,8086如何响应一个总线请求?

16、在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的?BHE#信号起什么作用?

17、“80386是一个32位微处理器”,这句话的涵义主要指的是什么? 参考答案

1、答:8086是16位的微处理器,其内部数据通路为16位,对外的数据总线也是16位。 2、答:EU是执行部件,主要的功能是执行指令。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。

3〡答:8085为8位机,在执行指令过程中,取指令与执行执令都是串行的。8086/8088由于内部有EU和BIU两个功能部件,可重叠操作,揔高了处理器的性能。

4、答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。

5、答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。若不用分段方法,16位地址只能寻址64KB空间。

6、答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。

7、答:物理地址:320F8H。

8、答:考虑到芯片成本,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。

9、答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。

10、答:引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086

被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。

11、答:标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH存储单元取指令并开始执行。

12、答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。在T1期间8086发出访问目的地的地址信号和地址锁存选通信号ALE;T2期间发出读写命令信号RD#、WR#及其它相关信号;T3期间完成数据的访问;T4结束该总线周期。

13、答:ALE为外部地址锁存器的选通脉冲,在T1期间输出;M/IO#确定总线操作的对象是存储器还是I/O接口电路,在T1输出;DT/R#为数据总线缓冲器的方向控制信号,在T1输出;RD#为读命令信号;在T2输出;READY信号为存储器或I/O接口“准备好”信号,在T3期间给出,否则8086要在T3与T4间插入Tw等待状态。 14、答:系统中若存在多个可控制总线的主模块时,其中之一若要使用总线进行数据传输时,需向系统请求总线的控制权,这就是一个总线请求的过程。8086在最小工作模式下有关总线请求的信号引脚是HOLD与HLDA。

15、答:外部总线主控模块经HOLD引线向8086发出总线请求信号;8086在每个时钟周期的上升沿采样HOLD引线;若发现HOLD=1则在当前总线周期结束时(T4结束)发出总线请求的响应信号HLDA;8086使地址、数据及控制总线进入高阻状态,让出总线控制权,完成响应过程。

16、答:8086为16位处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,命名为偶字节体和奇字节体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接BHE#信号;BHE#信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。

17、答:指80386的数据总线为32位,片内寄存器和主要功能部件均为32位,片内数据通路为32位。

第三章 指令系统 习题

1. 根据下列要求编写一个汇编语言程序: (1)代码段的段名为COD_SG (2)数据段的段名为DAT_SG (3)堆栈段的段名为STK_SG

(4)变量HIGH_DAT所包含的数据为95

(5)将变量HIGH_DAT装入寄存器AH,BH和DL (6)程序运行的入口地址为START 2. 指出下列程序中的错误: STAKSG SEGMENT DB 100 DUP(?) STA_SG ENDS

DTSEG SEGMENT DATA1 DB ? DTSEG END

CDSEG SEGMENT

MAIN PROC FAR

START: MOV DS,DATSEG MOV AL,34H

ADD AL,4FH MOV DATA,AL START ENDP CDSEG ENDS END

3. 将下列文件类型填入空格:

(1) .obj (2) .exe (3) .crf (4) .asm (5) .lst (6) .map

编辑程序输出的文件有______________________________________; 汇编程序输出的文件有______________________________________; 连接程序输出的文件有______________________________________。 4. 下列标号为什么是非法的? (1) GET.DATA (2) 1_NUM (3) TEST-DATA (4) RET

(5) NEW ITEM

5. 下面的数据项定义了多少个字节?

DATA_1 DB 6 DUP(4 DUP(0FFH))

6. 对于下面两个数据段,偏移地址为10H和11H的两个字节中的数据是一样的吗?为什么?

DTSEG SEGMENT | DTSEG SEGMENT ORG 10H | ORG 10H DATA1 DB 72H | DATA1 DW 7204H DB 04H | DTSEG ENDS DTSEG ENDS |

7. 下面的数据项设置了多少个字节?

(1) ASC_DATA DB ?1234? (2) HEX_DATA DB 1234H

8. 执行下列指令后, AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 ENTRY DW 3 ..........

MOV BX,OFFSET TABLE ADD$ BX,ENTRY \ AX,[BX] 9. 指出下列指令的错误:

(1) MOV AH,BX (2) MOV [SI],[BX] (3) MOV AX,[SI][DI] (4) MOV AX,[BX][BP]

(5) MOV [BX],ES:AX (6) MOV BYTE PTR[BX],1000 (7) MOV AX,OFFSET [SI] (8) MOV CS,AX

(9) MOV DS,BP

10. DATA SEGMENT

TABLE_ADDR DW 1234H DATA ENDS ......

MOV BX, TABLE_ADDR LEA BX, TABLE_ADDR

请写出上述两条指令执行后, BX寄存器中的内容。

11. 设(DS)=1B00H, (ES)=2B00H, 有关存储器地址及其内容如右图 所示,请用两条指令把X装入AX寄存器。 1B00:2000H 8000H

1B00:2002H 2B00H

2B00:8000H X

12. 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H

DATAY DW 0237H DW 4052H

按下述要求写出指令序列:

(1)DATAX和DATAY中的两个字数据相加, 和存放在DATAY和DATAY+2中。 (2)DATAX和DATAY中的两个双字数据相加, 和存放在DATAY开始的字单元中。 (3)DATAX和DATAY两个字数据相乘(用MUL)。 (4)DATAX和DATAY两个双字数据相乘(用MUL)。 (5)DATAX除以23(用DIV)。

(6)DATAX双字除以字DATAY(用DIV)。 13. 试分析下面的程序段完成什么操作? MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL

14. 用其他指令完成和下列指令一样的功能:

(1) REP MOVSB (2) REP LODSB (3) REP STOSB (4) REP SCASB

15.编写程序段, 比较两个5字节的字符串OLDS和NEWS, 如果OLDS字符串与NEWS不同, 则执行NEW_LESS, 否则顺序执行程序。

16. 假定AX和BX中的内容为带符号数, CX和DX中的内容为无符号数, 请用比较指令和条件转移指令实现以下判断:

(1) 若DX的值超过CX的值,则转去执行EXCEED (2) 若BX的值大于AX的值,则转去执行EXCEED

(3) CX中的值为0吗? 若是则转去执行ZERO

(4) BX的值与AX的值相减, 会产生溢出吗? 若溢出则转OVERFLOW (5) 若BX的值小于AX的值,则转去执行EQ_SMA (6) 若DX的值低于CX的值,则转去执行EQ_SMA 17. 假如在程序的括号中分别填入指令:

(1) LOOP L20

(2) LOOPNE L20 (3) LOOPE L20

试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么? TITLE EXLOOP.COM CODESG SEGMENT

ASSUME CS:CODESG,DS:CODESG,SS:CODESG ORG 100H

BEGIN: MOV AX,01 MOV BX,02 MOV DX,03 MOV CX,04 L20: INC AX

ADD BX,AX SHR $ DX,1 ( \ ) RET

CODESG ENDS END BEGIN

18. 变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。 19. 有两个3位的ASCII数串ASC1和ASC2定义如下: ASC1 DB ?578? ASC2 DB ?694? ASC3 DB ?0000?

请编写程序计算ASC3←ASC1+ASC2。

20. 假设(CS)=3000H, (DS)=4000H, (ES)=2000H, (SS)=5000H, (AX)=2060H, (BX)=3000H, (CX)=5, (DX)=0, (SI)=2060H, (DI)=3000H, (43000H)=0A006H, (23000H)=0B116H, (33000H)=0F802H, (25060)=00B0H,.(SP)=0FFFEH, (CF)=1, (DF)=1, 请写出下列各条指令单独执行完后, 有关寄存器及存储单元的内容, 若影响条件码请给出条件码SF、ZF、OF、CF的值。

(1) SBB AX,BX (2) CMP AX,WORD PTR[SI+0FA0H]

(3) MUL BYTE PTR[BX] (4) AAM

(5) DIV BH (6) SAR AX,CL

(7) XOR AX,0FFE7H (8) REP STOSB

(9) JMP WORD PYR[BX] (10) XCHG AX,ES:[BX+SI} 参考答案 1. 答案:

DATSG SEGEMNT HIGH_DAT DB 95 DAT_SG $ ENDS

STK_SG \ SEGMENT DW 64 DUP(?) STK_SG ENDS COD_SG SEGMENT

MAIN PROC FAR ASSUME CS: COD_SG, DS: DAT_SG, SS: STK_SG START:

MOV AX, DAT-SG MOV DS, AX

MOV AH, HIGH_DAT MOV BH, AH MOV DL, AH MOV AH, 4CH INT 21H MAIN ENDP COD_SG ENDS END START 2. 答案:改正后:

STAKSG SEGMENT DB 100 DUP(?) STAKSG ENDS DTSEG SEGMENT DATA1 DB ? DTSEG ENDS

CDSEG SEGMENT MAIN PROC FAR

ASSUME CS: CDSEG, DS: DTSEG, SS: STAKSG START:

MOV AX, DTSEG MOV DS, AX MOV AL, 34H ADD AL, 4FH MOV DATA1, AL MOV AH, 4CH INT 21H

MAIN ENDP CDSEG ENDS END START 3. 答案:

编辑程序输出文件: (4)

汇编程序输出文件: (1), (3), (5) 连接程序输出文件: (2), (6)

4. 答案:非法标号: (1)因为?.?只允许是标号的第一个字符 (2)第一个字符不能为数字 (3)不允许出现?-?

(4)不能是保留字,如助记符 (5)不能有空格 5. 答案:24字节

6. 答案:不一样. 分别是72H, 04H和04H, 72H. 存储字时低8位存在低字节,高8位存在高字节.

7. 答案:(1) 设置了4个字芢 (2) 设置了2个字节 8n 答案:(AX)=40

9. 答案:(1) 源、目的字长不一致

(2) 源、目的不能同时举存贮器寻址方式 (3) 基坂变址方式不能有 SI和DI的组合 (4) 基址变址方式不能有 BX和BP的组合

(5) 在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式

(6) 1000超出一个字节的表数范围 (7) OFFSET只用于简单变量,应去掉 (8) CS不能作为目的寄存器

(9) 段地址不能直接送入数据段寄存器 10. 答案:

MOV BX,TABLE_ADDR ; 执行后(BX)=1234H

LEA BX,TABLE_ADDR ; 执行后(BX)=OFFSET TABLE_ADDR 11、答案:

LES BX, [2000H] MOV AX, ES: [BX] 12. 答案:

(1) MOV AX, DATAX ADD AX, DATAY MOV BX, DATAX+2 ADD BX, DATAY+2 MOV DATAY, AX MOV DATAY+2, BX (2) MOV AX, DATAX ADD DATAY, AX MOV AX, DATAX+2 ADC DATAY+2, AX

(3) MOV AX, DATAX MUL DATAY MOV DATAY,AX MOV DATAY+2,DX

(4) MOV AX,WORD PTR DATAX MOV BX,WORD PTR DATAY

MUL BX MOV RESULT,AX MOV RESULT+2,DX MOV AX,WORD PTR DATAX MOV AX,WORD PTR DATAY+2 MUL BX

ADD RESULT+2,AX ADC RESULT+4,DX

MOV AX,WORD PTR DATAX+2 MOV BX,WORD PTR DATAY MUL BX

ADD RESULT+2,AX ADC RESULT+4,DX

MOV AX,WORD PTR DATAX+2 MOV BX,WORD PTR DATAY+2 MUL BX

ADD RESULT+4,AX ADC RESULT+6,DX (5) MOV AX, DATAX MOV BL, 23 DIV BL MOV BL,AH MOV AH, 0

MOV DATAY, AX ;存放商 MOV AL,BL

MOV DATAY+2, AX ;存放余数 (6) MOV AX, DATAX MOV DX, DATAX+2 DIV DATAY MOV DATAY, AX MOV DATAY+2, DX

13. 答案: 将DX: AX中的双字左移4位(乘16) 14. 答案: (1)LOOP1:

MOV AL,BYTE PTR [SI] MOV ES:BYTE PTR [DI], AL

INC SI 或: DEC SI INC DI 或: DEC DI

LOOP LOOP1 (2) LOOP1:

MOV AL, BYTE PTR [SI]

INC SI 或: DEC SI LOOP LOOP1 (3) LOOP1:

MOV ES:BYTE PTR [DI], AL

INC DI 或: DEC DI LOOP LOOP1 (4) LOOP1:

CMP AL,ES:BYTE PTR [DI] JE EXIT

INC DI 或: DEC DI LOOP LOOP1 EXIT: 15. 答案:

LEA SI, OLDS LEA DI, NEWS MOV CX, 5 CLD

REPZ CMPSB

JNZ NEW_LESS 16. 答案:

(1) CMP DX, CX JA EXCEED (2) CMP BX, AX JG EXCEED (3) CMP CX, 0 JE ZERO (4) SUB BX, AX

JO OVERFLOW (5) CMP BX, AX JL EQ_SMA (6) CMP DX, CX JB EQ_SMA 17. 答案: (1)(AX)= 5 (BX)= 16 (CX)= 0 (DX)= 0 (2)(AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1 (3)(AX)= 3 (BX)= 7 (CX)= 2 (DX)= 0 18. 答案:

MOV AX, 0 MOV AL, N1+1 SUB AL, N2+1 AAS

dseg ends

cseg segment main proc far

assume cs:cseg,ds:dseg start: push ds

sub ax,ax push ax

mov ax,dseg mov ds,ax begin: mov ax,a mov bx,b xor ax,bx test ax,0001 jz class test bx,0001 jz exit xchg bx,a mov b,bx jmp exit class: test bx,0001 jz exit inc b inc a exit: ret main endp cseg ends

end start 5. 答案: dseg segment

grade dw 30 dup(?) rank dw 30 dup(?) dseg ends

cseg segment main proc far

assume cs:cseg, ds:dseg, es:dseg start: push ds sub ax,ax push ax mov ax,dseg mov ds,ax mov es,ax begin: mov di,0 mov cx,30 loop1: push cx

mov cx,30 mov si,0

mov ax,grade[di] mov dx,0

loop2: cmp grade[si],ax jbe go_on inc dx go_on: add si,2 loop loop2 pop cx inc dx

mov rank[di],dx sdd di,2 loop loop1 ret main endp cseg ends end start 6. 答案: 1000:0F2H B1

1000:0F4H 3

1000:0F6H B1

1000:0F8H 2

1000:0FAH B1

1000:0FCH 1

1000:0FEH RETN 1000:100H 7. 答案:

(1) 00048h (2) 00020h 8. 答案:

mov si, 0 mov di, 0

test12:in al, 0024h test al, 08 jnz exit

in al,0036h

test al, 08 jnz exit

dev1: in al, 0024h test al, 01 jz dev2

in al, 0026h mov buffer[si], al inc si

dev2: in al, 0036h test al, 01 jz test12 in al, 0038h mov buff2[di],al inc di jmp test12 exit: ret 9. 答案: (SP) = 00FA (SS) = 0300 (IP) = 0040

(FLAGS) = 0040 堆栈内容: 00A1H 0900H

0240H 10. 答案:

scode db 7,5,9,1,3,6,8,0,2,4 buffer db 10 dup(?) ; … … mov si,0 mov cx,10 lea bx,scode input: mov ah,01 int 21h

cmp al,0ah jz exit and al,0fh xlat

mov buffer[si],al inc si loop input exit: ret

第五章 输入输出接口概述 习题 1.试说明一般中断系统的组成和功能。

2.什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

3.什么是硬件中断和软件中断?在PC机中两者的处理过程有什么不同? 4.试叙述基于8086/8088的微机系统处理硬件中断的过程。 5.在PC机中如何使用“用户中断”入口请求中断和进行编程? 6.8259A中断控制器的功能是什么?

7.8259A初始化编程过程完成那些功能?这些功能由那些ICW设定?

8.8259A在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么? 9.8259A的初始化命令字和操作命令字有什么区别?它们分别对应于编程结构中那些内部寄存器?

10.8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别?

11.若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位? 12.试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H~27H,8259A的端口地址为B0H和B1H。 13.比较中断与DMA两种传输方式的特点。 参考答案

1.答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。

2.答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

3.答:硬件中断是通过中断请求线输入电信号来请求处理机进行中断服务;软件中断是处理机内部识别并进行处理的中断过程。硬件中断一般是由中断控制器提供中断类型码,处理机自动转向中断处理程序;软件中断完全由处理机内部形成中断处理程序的入口地址并转向中断处理程序,不需外部提供信息。

4.答:以INTR请求为例。当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。 5.答:PC机中分配给用户使用的中断是IRQ9,经扩展插槽B4引出,故把用户的中断请求线连接到B4上。在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对应0AH类型中断对应的中断向量表中去。在应用程序中把主片8259A D2屏蔽位清0,把从片8259A D1屏蔽位清0,使主片的IR2、从片的R1可以输入中断请求。中断服务程序结束前向主片8259A发中断结束命令。应用程序结束之前对主片的IR2和从片的IR1进行屏蔽,关闭用户中断请求。

6.答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。对8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对

中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。

7.答:初始化编程用来确定8259A的工作方式。ICW1确定8259A工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。ICW2用来指定8个中断请求的类型码。ICW3在多片系统中确定主片与从片的连接关系。ICW4用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据线缓冲等。

8.答:在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令,8259A将ISR中最高优先级位置0,结束该级中断处理以便为较低级别中断请求服务。

9.答:8259A的工作方式通过微处理器向其写入初始化命令字来确定。初始化命令字分别装入ICW1~ICW4内部寄存器。8259A在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。操作命令字分别装入OCW1~OCW3内部寄存器中。8259A占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。

10.答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

11.答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH。

12.答:ICW1=1BH (送B0H端口),ICW2=20H (送B1H端口),ICW4=03H (送B1H端口) 13.答:中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断 当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。

第六章 可编程接口芯片 习题

1、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。

2、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。 3、设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?

4、设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。 5、可编程计数/定时器芯片8253有几个通道?各采用几种操作方式?简述这些操作方式的主要特点。

6、某系统中8253芯片的通道0~通道2和控制字端口号分别为FFF0H~FFF2H,定义通道0工作在方式2,CLK0=5MHz,要求输出OUT0=lkHz方波;定义通道l工作在方式4,用

OUT0作计数脉冲,计数值为1000,计数器计到0,向CPU发中断请求,CPU响应这一中断后继续写入计数值1000,重新开始计数,保持每1秒钟向CPU发出一次中断请求,请编写初始化程序,画出硬件连接图。

7、什么叫DMA传送方式?DMA控制器8257的主要功能是什么?

8、某8086系统中使用8257完成从存储器到外设端口的数据传送任务,若已知通道0的地址寄存器、终点计数器、方式寄存器端口地址分别为置EEE0H,EEElH和EEE8H,要求通过通道0将存储器中偏移地址为1000H~10FFH的内容传送到显示器输出,请编写初始化程序。

9、用8255和8253编程,使扬声器发出600Hz的可听频率,击任一键停止。(其中主时钟为1.9318MHz,一个时钟周期为888.2229×10—9秒。) 10、设状态端口地址为86H,数据端口地址为87H,外部输入信息准备好状态标志为D7=1.请用查询方式写出读入外部信息的程序段。

11、设状态端口地址为76H,数据端口地址为75H,外设是否准备好信息由D7位传送,D7=l 为准备好,D7=0为未准备好(忙),请用查询方式写出CPU向外部传送数据的程序段。 12、什么是A/D、D/A转换器?

13、某接口设计采用一片8255A实现。其端口A连接并行打印机,端口B连接纸带读入机,如图所示。8255A工作于方式0,以查询方式查询数据。

14、CPU通过8255同开关K0~K3和LED显示器的接口见下图,开关设置的二进 制信息由B口输入,经程序转换成对应的七段LED段码后,通过A口输出,由七段LED显示开关二进制的状态值,试编写其控制程序(设8255的端口地址为80H~83H)。注:若B口读入的值为0000,则LED显示器将显示0;以此类推,若B口读入的值为1111,则LED显示器将显示F。

15、查询方式打印机接口如图所示,图中的8255A的B口作为输出打印数据口,工作于方式0,PC5引脚作为打印机的数据选通信号STB,由它产生一个负脉冲,将数据线D7-D0上的数据送入打印机,PC0引脚接收打印机的忙状态信号,当打印机在打印某字符时,忙状态信号BUSY为1。现要求打印的字符存于缓冲区BUF中,共有800个字符。设8255A的端口地址为800H--803H。利用查询BUSY信号,编写CPU与打印机之间数据交换的程序段(包括8255A初始化)。

16、计数器/定时器8253,振荡器(频率为2MHZ)振荡器的脉冲输出端接通道0的计数输入端CLK0,设8253的端口地址为200H---203H 请回答:

(1)该电路中一个通道的最大定时时间是多少? 如何计算?

(2)若要8253的OUT端,能产生周期为1秒的连续方波,该如何解决? (3)写出实现功能的8253初始化程序。

17、某数据采集系统中,有一片8255A芯片,其端口地址为40H--43H,其中A口作为现场数据的输入口,工作方式0。又有一频率为2MHz的信号源作为8253定时器CLK0输入。现要求8255A以2s为周期进行数据采集,利用一片8253实现系统定时,8253的端口地址为50H--53H,接线如图所示。计算各通道计数值,写出8255A、8253初始化程序段。 18、设计一个利用8255 PC5输出占空比1:1的方波电路,并编写相应的程序。

19、假设中断源类型码为58H,中断服务程序的标号为INTPT。分析下列程序,指出其功能。

PUSH DS

MOV AX,SEG INTPT MOV DS,AX

MOV DX,OFFSET INTPT MOV AH,25H MOV AL,58H INT 21H POP DS 参考答案 1、答:

MOV AL,80H OUT 200H,AL IN AL,203H MOV BL,AL IN AL,203H, MOV BH,AL MOV AX,BX

2、答: 要输出脉冲周期为1ms,输出脉冲的频率是1000 ,当输入时钟频率为2MHz时,计数器初值是2000。

使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器0的地址是202H。程序段如下: MOV DX,200H MOV AL,76H OUT DX,,AL MOV DX,202H MOV AX,2000 OUT DX,AL MOV AL,AH

OUT DX,AL

3、答: 1.91MHZ/25KHZ=76.4, 应向计数器装入的初值是76。

4、答: 计数器0工作在方式1,即可编程的单脉冲方式。这种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。

计数器1工作在方式2,即分频器的方式。输出波形的频率f=Foc/N=2MHz/3000=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5μs。 计数器2工作在方式3,即方波发生器的方式。

5、答:有0,1,2三个通道,各通道有六种工作方式,以完成定时,计数,脉冲发生器等多种功能。

(1)工作方式0:计数结束中断方式 (2)工作方式1:可编程单脉冲发生器 (3)工作方式2:速率波发生器 (4)工作方式3:方波发生器 (5)工作方式4:软件触发方式 (6)工作方式5:硬件触发方式 6、答:

STT:MOV DX,0FF0H MOV AL,34H

OUT DX,AL

MOV DX,通道0端口地址 MOV AX,1388H OUT DX,AL MOV AL,AH OUT DX,AL

MOV DX,0FFF1H MOV AL,78H OUT DX,AL

MOV DX,通道1端口地址 MOV AX,2710H OUT DX,AL MOV AL,AH OUT DX,AL

MOV DX,0FFF2H MOV AL,B1H OUT DX,AL

MOV DX,通道2端口地址 MOV AX,1000H OUT DL,AL MOV AL,AH OUT DX,AL 对8259A初始化(略) HH:HLT JMP HH

7、答:DMA传送方式就是用DMA控制器来接管CPU对总线的控制权。在存储器与局速外设之间建立直接进行数据块传送与高速通路。

主要功能有三个(1)DMA读操作—读存储器送外设(2)DMA写操作—对外设写存储器(3)DMA校验操作—通道不进行数据传送操作,只是完成校验操作。 8、答:

ST57:MOV DX,0EEE8H MOV AL,41H OUT DX,AL

MOV DX,0EEE0H MOV AX,1000H OUT DX,AL MOV AL,AH OUT DX,AL

MOV DX,0EEE1H MOV AL,0FFH OUT DX,AL HLT 9、答:

STACK SEGMENT PARA STACK?STACK?

DB 256 DUP(0) STACK ENDS

DATA SEGMENT PARA PUBLIC?DATA? FREG DW 1989; 600周方波计数值 DATA ENDS

CODE SEGMENT PART PUBLIC?CODE? START PROC FAR

ASSUME CS:CODE,DS:DATA PUSH DS MOV AX,0 PUSH AX

MOV AX,DATA MOV DS,AX IN AL,61H OR AL,3 OUT 61H,AL MOV AL,0B6H OUT 43H,AL MOV BX,FREG MOV AL,BL OUT 42H,AL MOV AL,BH OUT 42H,AL MOV AH,0 INT 16H IN AL,61H AND AL,0FCH OUT 61H,AL RET START ENDP CODE ENDS

END START

10、答:POLL:IN AL,86H;从状态端口输入状态信息 TEST AL,80H;检查READY是否是1 JE POLL;为准备好,循环

IN AL,87H;准备好,从数据端口输入数据

11、答:POLL:IN AL,76H;从状态端口输入状态信息 TEST AL,80H;检查忙标志位 JNE POLL;忙等待

MOV AL,DATA;从缓冲区取数据 OUT 75H,AL;从数据端口输出

12、答: 把模拟量信号转换成数字量的器件为模/数转换器,简称为A/D转换器。把数字量信号转换成模拟量的器件为数/模转换器,简称为D/A转换器。 13、答:

8255A初始化程序段 MOV AL,83H OUT 0E6H,AL MOV AL,09H OUT 0E6H,AL MOV AL,0BH OUT 0E6H,AL 打印机驱动程序段 LIST:IN AL,0E4H AND AL,04H JNZ LPST MOV AL,CL OUT 0E0H,AL MOV AL,08H OUT 0E6H,AL INC AL

OUT 0E6H,AL 纸带读入机驱动程序段

RDST: MOV AL,0AH OUT 0E6H,AL RDLP: IN AL,0E4H AND AL,08H JZ RDLP IN 0E2H

MOV CL,AL MOV AL,08H OUT 0E6H,AL 14、答:

SEGCODE DB 0C0H,0F9H,A4H,B0H,…,8EH …………….

MOV AL,10000010B OUT 83H,AL LOP: IN AL,81H AND AL,0FH

MOV BX,OFFSET SEGCODE XLAT

OUT 80H,AL JMP LOP 15、答:

BUF DB ?XXXXXXX……..? ……………………. MOV DX,803H

MOV AL,1xxx0001B OUT DX,AL

MOV AL,0BH OUT DX,AL MOV CX,800

MOV SI,OFFSET BUF LOP:MOV DX,802H IN AL,DX TEST AL,01H JNZ LOP

MOV AL,[SI] MOV DX,801H OUT DX,AL MOV AL,0AH MOV DX,803H OUT DX,AL MOV AL,0BH OUT DX,AL INC SI LOOP LOP HLT 16、答:

(1)输入脉冲周期=0.5Μs, 一个通道最大计数为65536=216, 所以最大定时时间=0.5μS×65536=65.536ms

(2)可以将8253的通道串联使用,各通道的计数:通道0=2000,通道1=1000 (3) MOV AL,00100101B MOV DX,203H OUT DX, AL MOV AL,20H MOV DX,200H OUT DX,AL

MOV AL ,01100101B MOV DX,203H OUT DX,AL MOV DX,201H MOV AL,10H OUT DX,AL

17、答:总计数值:2MHz / 0.5Hz=4x106

通道0计数值:T0=50000(C350H),工作于方式3 通道1计数值:T1=80,工作于方式2 MOV AL,1001xxxxB OUT 43H,AL MOV AL,54H OUT 53H,AL MOV AL,80 OUT 51H,AL

MOV AL,36H OUT 53H,AL MOV AL,50H OUT 50H,AL MOV AL,0C3H OUT 50H,AL

18、答:方波电路图: 程序:

MOV DX,34CH

MOV AL,80H ;PA、PB方式0输出,PC7-0输出

YYY1: MOV AL,0AH ;C端口置1/置0控制字,使PC5输出低电平 OUT DX,AL MOV CX,2000H

YYY2: ADD AX,0 ;让PC5输出低电平维持一段时间 LOOP YYY2

MOV AL,0BH ;C端口置1/置0控制字,使PC5输出高电平 OUT DX,AL MOV CX,2000H

YYY3: ADD AX,0 LOOP YYY3 JMP YYY1

19、类型码为58H,则中断矢量地址为58H×4=0160H。建立中断矢量表。

第七章 存储器 习题

1、在对存储芯片进行译码寻址时,如果只有部分高位地址参与,这种译码方法被称为部分译码。现有EPROM芯片2732(4KX8位),以及3-8译码器74LS138,各种门电路若干,要求在8088CPU上扩展容量为16KX8 EPROM内存,要求采用部分译码,不使用高位地址线A19、A18、A15,选取其中连续、好用又不冲突的一组地址,要求首地址为20000H。请回答:

1)2732的芯片地址线、数据线位数是多少? 2)组成16KX8需要2732芯片多少片? 3)写出各芯片的地址范围。

4)画出存储扩展图(要求画出地址线、数据线及控制线的连接) 2、有一个2732EPROM(4KX8)芯片的译码电路如下图所示,试求: (1)计算2732芯片的存储容量; (2)给出2732芯片的地址范围; (3)是否存在地址重叠区?

3、现在有静态RAM芯片2KX8,4KX8,8KX8,以及3—8译码器74LS138,各种门电路若干,供任意选择使用。要求在8088CPU上扩展容量为8KX8内存,地址从84000H开始。画出8088系统扩展图,写出内写储内存各芯片的起、止地址。 答案 1、答:(1)地址线12根,数据线8根; (2)4片; (3)1# 20000H~20FFFH 2# 21000H~21FFFH 3# 22000H~22FFFH 4# 23000H~23FFFH(4) 2、答:1)4KB 2)08000H---09FFFH

3)存在重叠区 08000H---08FFFH、09000H---09FFFH

本文来源:https://www.bwwdw.com/article/1q0t.html

Top