微机原理和接口技术课后习题和参考答案解析

更新时间:2024-03-25 12:46:01 阅读量: 综合文库 文档下载

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

完美WORD格式

第一章 课后习题

1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。

① 16.25 ② 35.75 ③ 123.875 ④ 97/128 1.2 把下列二进制数转换成十进制数。

① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.1 1.3 把下列八进制数转换成十进制数和二进制数。

① 756.07 ② 63.73 ③ 35.6 ④ 323.45 1.4 把下列十六进制数转换成十进制数。

① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC 1.5 求下列带符号十进制数的8位补码。

① +127 ② -1 ③ -0 ④ -128

1.6 求下列带符号十进制数的16位补码。 ① +355 ② -1

1.7 计算机分那几类?各有什么特点?

1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。 1.9 80X86微处理器有几代?各代的名称是什么? 1.10 你知道现在的微型机可以配备哪些外部设备? 1.11 微型机的运算速度与CPU的工作频率有关吗? 1.12 字长与计算机的什么性能有关?

习题一参考答案

1.1 ① 16.25D=10000.01B=20.2Q=10.4H

② 35.75D=100011.11B=43.6Q=23.CH

③ 123.875D=1111011.111B=173.7Q=7B.EH

④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H 1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D ③ 111.01B=7.25D ④ 1010.1B=10.5D

1.3 ① 756.07Q=111101110.000111B=494.109D ② 63.73Q=110011.111011B=51.922D

③ 35.6Q=11101.110B=29.75D ④ 323.45Q=11010011.100101B=211.578D

1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D

③ B7C.8D=2940.551D ④ 1ECH=492D

1.5 ① [+127]补=01111111 ② [-1] 补= 11111111

③ [-0] 补=00000000 ④[-128] 补=10000000

1.6 ① [+355] 补= 0000000101100011 ② [-1] 补= 1111 1111 1111 1111 1.7 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统, 存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 1.8 答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影

专业整理 知识分享

完美WORD格式

响。微计算机包括微处理器、存储器、I/O接口电路及系统总线。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。

1.9 答:从体系结构上可分为5代:4004:4位机;8080/8085:8位机;8086/8088/80286:16位机;80386/80486:32位机;Pentium系列机:64位。

第二章 课后习题

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

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

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

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

2.8、怎样确定8086的最大或最小工作模式?最大、最小模式产生控制信号的方法有何不同

2.9、8086被复位以后,有关寄存器的状态是什么?微处理器从何处开始执行程序?

2.10、8086基本总线周期是如何组成的?各状态中完成什么基本操作? 2.11、在基于8086的微计算机系统中,存储器是如何组织的?是如何与处理器总线连接的?

BHE#信号起什么作用? 2.12、80X86系列微处理器采取与先前的微处理器兼容的技术路线,有什么好处?有什么不足?

2.13、80386内部结构由哪几部分组成?简述各部分的作用。 2.14、80386有几种存储器管理模式?都是什么?

2.15、在不同的存储器管理模式下,80386的段寄存器的作用是什么? 2.16、描述符的分类及各描述符的作用。

2.17、80386的分段部件是如何将逻辑地址变为线性地址的? 2.18、803866中如何把线性地址变为物理地址?

习题二参考答案

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

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

专业整理 知识分享

完美WORD格式

理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。

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

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

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

7、答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。 8、答:引线MN/MX#的逻辑状态决定8086的工作模式,MN/MX#引线接高电平,8086被设定为最小模式,MN/MX#引线接低电平,8086被设定为最大模式。 最小模式下的控制信号由相关引线直接提供;最大模式下控制信号由8288专用芯片译码后提供,8288的输入为8086的S2#~S0#三条状态信号引线提供。 9、答:标志寄存器、IP、DS、SS、ES和指令队列置0,CS置全1。处理器从FFFFOH存储单元取指令并开始执行。

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

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

12、答:好处是先前开发的软件可以在新处理器组成的系统中运行,保护了软件投资。缺点是处理器的结构发展受到兼容的约束,为了保持兼容性增加了硅资源的开销,增加了结构的复杂性。

13、答:80386内部结构由执行部件(EU)、存储器管理部件(MMU)和总线接口部件(BIU)三部分组成。EU包括指令预取部件、指令译码部件、控制部件、运算部件及保护检测部件,主要功能是执行指令。存储器管理部件包括分段部件、分页部件,实现对存储器的分段分页式的管理,将逻辑地址转换成物理地址。总线接口部件作用是进行片外访问:对存储器及I/O接口的访问、预取指令;另外的作用是进行总线及中断请求的控制 14、答:80386有三种存储器管理模式,分别是实地址方式、保护方式和虚拟8086方式

15、答:在实地址方式下,段寄存器与8086相同,存放段基地址。在保护方式下,每个段寄存器还有一个对应的64位段描述符寄存器,段寄存器作为选择器存放选

专业整理 知识分享

完美WORD格式

择符。在虚拟8086方式下,段寄存器的作用与8086相同。

16、答:描述符分为三类:存储器段描述符、系统段描述符、门描述符。存储器段描述符由8字节组成,它用来说明一个段中保存信息的情况。32位段基地址和20位段界限值定位了该段在存储空间中的位置,其它有关位决定访问权限及段的长度单位。系统段描述符与存储器段描述符大多数字节段相同,有关访问权及属性字节段有些不同。门描述符用来改变程序的特权级别、切换任务的执行以及指出中断服务程序的入口。 17、答:分段部件根据段选择符从全局描述符表或局部描述符表中取出对应的段描述符。把段描述符32位段基地址与逻辑地址中的32位偏移量相加就形成了线性地址。

18、答:分段部件形成的32位线性地址中高10位作为寻址页目录表的偏移量,与控制寄存器CR3中页目录表基地址共同形成一个32位的地址指向页表中的一个页项,即为一个页面描述符。该页面项中高20位作为页面基地址,线性地址的低12位为偏移量,相加后形成指向某一存储单元的32位物理地址。若禁止分页功能,线性地址就是物理地址。

第三章 课后习题

3.1、 8086/8088微处理器有哪些寻址方式?并写出各种寻址方式的传送指令2条(源操作数和目的操作数寻址)。

3.2、 有关寄存器和内存单元的内容如下:

DS=2000H,SS=1000H,BX=0BBH,BP=02H,SI=0100H,DI=0200H,(200BBH)=1AH,(201BBH)=34H,(200CCH)=68H,(200CDH)=3FH,(10202H)=78H,(10203H)=67H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H,(201CCH)=56H, (201CDH)=5BH,(201BCH)=89H,(200BCH)=23H,试写出下表中源操作数的寻址方式和寄存器AX的内容。

表3-7 习题1

指令 MOV AX,1200H MOV AX,BX MOV AX,[1200H] MOV AX,[BX] MOV AX,[BX+11H] MOV AX,[BX+SI] MOV AX,[BX+SI+11H] MOV AX,[BP+DI] 3.3、指出下列语句的错误。 (1)MOV [SI],34H (2)MOV 45H,AX

专业整理 知识分享

源操作数寻址方式 AX的内容 完美WORD格式

(3)INC 12

(4)MOV [BX],[SI+BP+BUF] (5)MOV BL,AX (6)MOV CS,AX (7)OUT 240H,AL (8)MOV SS,2000H (9)LEA BX,AX (10)XCHG AL,78H

3.4、已知DS=2000H,(21000H)=2234H,(21002H)=5566H,试区别以下3条指令。

MOV SI,[1000H] LEA SI,[1000H] LDS SI,[1000H]

3.5、简述堆栈的性质。如果SS=9B9FH,SP=200H,连续执行两条PUSH指令后,栈顶的物理地址是多少?SS,SP的值是多少?再执行一条POP指令后,栈顶的物理地址又是多少?SS、SP的值又是多少?

3.6、 写出将AX和BX寄存器内容进行交换的堆栈操作指令序列,并画出堆栈变化过程示意图。

3.7、用两条指令把FLAGS中的SF位置1。 3.8、用一条指令完成下列各题。 (1)AL内容加上12H,结果送入AL。

(2)用BX寄存器间接寻址方式把存储器中的一个内存单元加上AX的内容,并加上CF位,结果送入该内存单元。

(3)AX的内容减去BX的内容,结果送入AX。

(4)将用BX、SI构成的基址变址寻址方式所得到的内容送入AX。 (5)将变量BUF1中前两个字节的内容送入寄存器SI中。 3.9、下面的程序段执行后,DX、AX的内容是什么? MOV DX,0EFADH MOV AX,1234H MOV CL,4 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL

3.10、写出下面的指令序列中各条指令执行后的AX内容。

专业整理 知识分享

完美WORD格式

MOV AX,7865H MOV CL,8 SAR AX,CL DEC AX MOV CX,8 MUL CX NOT AL AND AL,10H

3.11、 如果要将AL中的高4位移至低4位,有几种方法?请分别写出实现这些方法的程序段。

3.12、利用串操作指令,将AREA1起始的区域1中的200个字节数据传送到以AREA2为起始地址的区域2(两个区域有重叠)。

3.13、寄存器BX中有4位0~F的十六进制数,编写程序段,将其转换为对应字符(即ASCII码),按从高到低的顺序分别存入L1、L2、L3、L4这4个字节单元中。 3.14、 试将BUF起始的100个字节的组合BCD码数字,转换成ASCII码,并存放在以ASC为起始地址的单元中。已知高位BCD码位于较高地址中。 3.15、 请给出以下各指令序列执行完后目的寄存器的内容。 (1)MOV BX,-78 MOVSX EBX,BX (2)MOV CL,-5 MOVSX EDX,CL (3)MOV AH,9 MOVZX ECX,AH (4)MOV AX,87H MOVZX EBX,AX

3.16、 请给出以下各指令序列执行完后EAX和EBX的内容。 MOV ECX,12345678H BSF EAX,ECX BSR EBX,ECX

3.17、 给以TAB为首地址的100个ASCII码字符添加奇偶校验位(bit7),使每个字节中的“1”的个数为偶数,在顺序输出到10H号端口。

3.18、 编写一段程序,要求在长度为100H字节的数组中,找出正数的个数并存入字节单元POSIT中,找出负数的个数并存入字节单元NEGAT中。

习题三 参考答案

3.1答:寻址方式是指计算机在执行指令时寻找操作数的方式。8086/8088微处理

专业整理 知识分享

完美WORD格式

器有以下几种寻址方式:

①立即寻址。操作数(仅限源操作数)直接放在指令中。例如:mov cx,100;mov ah,20h。

②寄存器寻址。操作数在CPU的内部寄存器中。例如:mov es,ax;mov dl,bh。 ③直接寻址。指令中直接给出了操作数的偏移地址。例如:mov ax,[3000h];mov buf,100。

④寄存器间接寻址。操作数的偏移地址放在寄存器bp,bx,si,di四个寄存器中的一个里。例如:mov ax,[si];mov [bx],cx。

⑤寄存器相对寻址。操作数的有效地址为基址寄存器或变址寄存器的内容与指令中指定的位移量之和。例如:mov ax,cnt[si];mov str[bx],ax。

⑥基址变址寻址。操作数的有效地址是一个基址寄存器和一个变址寄存器的和。例如:mov ax,[si+bx];mov [bx+di],dx。

⑦相对基址变址寻址。操作数的有效地址为一个基址寄存器、一个变址寄存器的内容与指令中指定的位移量三者之和。例如:mov ax,cnt[bx][si];mov cnt[bx][si],ax。 3.2. 答:

指令 MOV AX,1200H MOV AX,BX MOV AX,[1200H] MOV AX,[BX] MOV AX,[BX+11H] MOV AX,[BX+SI] MOV AX,[BX+SI+11H] MOV AX,[BP+DI] 3.3 答:

(1)MOV [SI],34H;目的操作数必须指出是字节操作还是字操作,比如可改成MOV BYTE PTR [SI],34H

(2)MOV 45H,AX;目的操作数不能是立即数 (3)INC 12;操作数不能是立即数

(4)MOV [BX],[SI+BP+BUF];两个操作数不能同是存储单元 (5)MOV BL,AX;操作数不匹配

(6)MOV CS,AX;CS不能作为目的操作数

(7)OUT 240H,AL;对于IN和OUT指令,端口号大于FFH时,必须先将端口号放入DX寄存器中

(8)MOV SS,2000H;段寄存器不能用立即数来赋值,可改成MOV SS,AX

专业整理 知识分享

源操作数寻址方式 立即寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址 基址变址寻址 AX的内容 1200H 0BBH 4C2AH 231AH 3F68H 8934H 5B56H 6778H 完美WORD格式

(9)LEA BX,AX;源操作数必须是内存,如LEA BX,BUFFER (10)XCHG AL,78H;交换指令不能对立即数操作 3.4答:MOV SI,[1000H];(SI)=2234H LEA SI,[1000H];(SI)=1000H

LDS SI,[1000H];(SI)=2234H,(DS)=5566H 3.5答:先进后出。 9BBF0H-4=9BBECH 9BBECH+2=9BBEEH 3.6答:PUSH AX PUSH BX POP AX

POP BX

3.7 答:MOV AX,7FH ADD AX,1

3.8答:⑴ADD AL,12H ⑵ADC [BX],AX ⑶SUB AX,BX ⑷MOV AX,[BX+SI] ⑸MOV SI,BUF1

3.9答:DX=FAD1H,AX=2340H 3.10答:AX=300H 3.11答:①循环左移

mov cl,4 rol al,cl ②循环右移

mov cl,4 ror al,cl ③右移

mov cl,4 shr al,cl

3.12答:从末端开始传送即可解决重叠问题。

mov cx,200

mov si,offset aera1 add si,200

mov di,offset aere2 add di,200

专业整理 知识分享

完美WORD格式

std;DF=1,进行地址减量 rep movsb 3.13答:

MOV CL,4

MOV AL,BL ;处理最低位十六进制数 AND AL,0FH CMP AL,0AH JC DIGT4 ADD AL,7

DIGT4: ADD,AL,30H MOV L4,AL

MOV AL,BL ;处理次低位十六进制数 SHR AL,CL CMP AL,0AH JC DIGT3 ADD AL,7

DIGT3: ADD,AL,30H MOV L3,AL

MOV AL,BH ;处理次高位十六进制数 AND AL,0FH CMP AL,0AH JC DIGT2 ADD AL,7

DIGT2: ADD,AL,30H MOV L2,AL

MOV AL,BH ;处理最高位十六进制数 SHR AL,CL CMP AL,0AH JC DIGT1 ADD AL,7

DIGT1: ADD,AL,30H MOV L1,AL 3.14答:

专业整理 知识分享

完美WORD格式

LEA SI,BUF

LEA BX,ASC MOV CH,100 MOV CL,4

AGAIN: MOV AL,[SI] ;处理低位BCD码 AND AL,0FH ADD AL,30H MOV [BX],AL INC BX

MOV AL,[SI] ;处理高位BCD码 SHR AL,CL ADD AL,30H MOV [BX],AL INC BX INC SI DEC CH JNZ AGAIN

3.15答:(1)MOV BX,-78;(BX)=FFB2H MOVSX EBX,BX;(EBX)=FFFFFFB2H (2)MOV CL,-5;(CL)=FBH MOVSX EDX,CL;(EDX)=FFFFFFFBH (3)MOV AH,9;(AH)=9H MOVZX ECX,AH(ECX)=00000009H (4)MOV AX,87H;(AX)=87H MOVZX EBX,AX;(EBX)=00000087H

3.16答:MOV ECX,12345678H;(ECX)=12345678H BSF EAX,ECX ;(EAX)=00000003H BSR EBX,ECX;(EBX)=0000001CH 3.17答: MOV CX,100 LEA BX,TAB AGN: MOV AL,[BX] ADD AL,0 JP NEXT OR AL,80H

NEXT: OUT 10H,AL

专业整理 知识分享

完美WORD格式

INC BX LOOP AGN

3.18 答:假设数组的起始地址是BUFFER LEA BX,BUFFER MOV DX,0 MOV CX,100

ONCE: MOV AL,[BX]

TEST AL,80H;是正数还是负数 JNZ FUSHU;是负数,跳转 CMP AL,0;是0吗? JZ NEXT

INC DH;是正数,则DH加1

JMP NEXT

FUSHU: INC DL;是负数,则DL加1 NEXT: INC BX DEC CX JNZ ONCE

MOV POSIT,DH MOV NEGAT,DL

第四章 课后习题

4.1、汇编语言有何特点?编写汇编语言源程序时,一般的组成原则是什么? 4.2、.MODEL伪指令是简化段定义源程序格式中必不可少的语句,它设计了哪几种存储模式,各用于创建什么性质的程序?

4.3、如何规定一个程序执行的开始位置,主程序执行结束应该如何返回DOS,源程序在何处停止汇编过程?

4.4、逻辑段具有哪些属性?完整代码段定义时的默认属性是什么?小型模式下的简化代码段定义具有的默认属性是什么?

4.5、 DOS支持哪两种可执行程序结构,编写这两种程序时需要注意什么? 4.6、给出下列语句中,指令立即数(数值表达式)的值: (1)mov al,23h AND 45h OR 67h (2)mov ax,1234h/16+10h (3)mov ax,254h SHL 4

(4)mov al,’a’ AND (NOT(‘b’一 ‘B’)) (5)mov ax,(76543 LT 32768)XOR 7654h

4.7、画图说明下列语句分配的存储空间及初始化的数据值:

专业整理 知识分享

完美WORD格式

(1) byte_var db ‘BCD’,10,10h,’EF’,2 dup (一l,?,3 dup(4)) (2) word_var dw 1234h,一5,6 dup(?) 4.8、设置一个数据段,按照如下要求定义变量:

(1)myl_b为字符串变量,表示字符串“Personal Computer!” (2)my2_b为用十六进制数表示的字节变量,这个数的大小为100 (3)my3_w为100个未赋值的字变量 (4)my4_c为100的符号常量

(5)my5_c为字符串常量,代替字符串“Personal Computer!”

4.9、假设opw是一个字变量,opbl和opb2是两个字节变量,指出下列语句中的具体错误原因并改正错误。

(1) mov byte ptr [bx],256 (2) mov bx,offset opw[si] (3) add opbl,opb2 (4) mov opbl,al+l (5) sub al,opw (6) mov [di],1234h

4.10、编制一个程序,把字变量X和Y中数值较大者存入MAX字单元;若两者相等,则把-1存入MAX中。假设变量存放的是有符号数。

4.11、设变量DAT为有符号16位数,请编写程序将它的符号状态保存在sign字节单元,即:如果变量值大于等于0,保存0;如果变量值小于0,保存-1。 4.12、 X、Y和Z是3个有符号字节数据,编写一个比较相等关系的程序: (1)如果这3个数都不相等,则显示N;

(2)如果这3个数中有两个数相等,则显示X; (3)如果这3个数都相等,则显示Y。

4.13、编制程序完成12H,23H,F3H,6AH,20H,FEH,10H,C8H,25H和34H共10个无符号字节数据之和,并将结果存入字变量SUM中。

4.14、求出主存从2000H:0开始的一个64KB物理段中共有的空格个数,存入DX中。

4.15、过程定义的一般格式是什么?子程序开始为什么常有PUSH指令,返回前为什么有POP指令?下面完成16位无符号数累加的子程序是否正确?若有错,请改正。 jiafa PROC

push ax xor ax,ax xor dx,dx

again: add ax, [bx]

专业整理 知识分享

完美WORD格式

adc dx,0 inc bx

inc bx loop again ret

ENDP jiafa

4.16、编写一个程序,统计寄存器AX中二进制数位“0”的个数,结果以二位十进制数形式显示到屏幕上。

4.17、子程序的参数传递有哪些方法?

4.18、编写一个求32位数据补码的子程序,通过寄存器传递入口参数。

4.19、所谓“校验和”是指不记进位的累加,常用于检查信息的正确性。编写一个计算字节校验和的子程序。主程序提供入口参数:数据个数和数据缓冲区的首地址。子程序回送求和结果这个出口参数。

4.20、编制一个子程序,把一个16位二进制数用4位16进制形式在屏幕上显示出来。

4.21、在以BUF为首地址的字缓冲区中有3个无符号数,编程将这3个数按升序排列,结果存回原缓冲区。

4.22、在DAT字节单元中有一个有符号数,判断其正负,若为正数,则在屏幕上显示“+”号;若为负数,则显示“-”号;若是0,则显示0。

4.23、编程求1~400中所有奇数的和,结果以十六进制数形式显示到屏幕上。 4.24、在以DAT为首地址的字节缓冲区中存有100H个无符号字节数据,编程求其最大值与最小值之和,结果存入RESULT字单元。

4.25、在内存单元CNT中有一个字数据,编程将其二进制数显示到屏幕上。 4.26、在以STRG为首地址的缓冲区中有一组字符串,长度为100,编程实现将其中所有的英文小写字母转换成大写字母,其它的不变。

4.27、在以DAT为首地址的内存中有100个无符号数(数的长度为字),编程统计其中奇数的个数,结果以十进制形式显示到屏幕上。要求分别用子程序完成奇数个数统计,用宏完成十进制数显示。

4.28、编写一段程序,使汇编程序根据SIGN的值分别产生不同的指令。

如果SIGN=0,则用字节变量DATB中的无符号数除以字节变量SCALE;如果SIGN=1,则用字节变量DATB中的有符号数除以字节变量SCALE,结果都存放在字节变量RESULT中。

习题四 参考答案

4.1答:汇编语言是计算机能够提供给用户使用的最快速有效的语言,它是以处理器指令系统为基础的低级程序设计语言,采用助记符表示指令操作码,采用标

专业整理 知识分享

完美WORD格式

识符表示指令操作数。利用汇编语言编写程序的主要优点是可以直接、有效地控制计算机硬件,因而容易创建代码序列短小、运行快速的可执行程序。在对程序的空间和时间要求高的应用领域,汇编语言的作用是不容置疑和无可替代的。然而,汇编语言作为一种低级语言也存在很多不足,例如,功能有限、编程难度大、依赖处理器指令,这也限制了它的应用范围。

汇编语言源程序由若干语句组成,通常,这些语句可以分为3类,分别是: (1)指令语句;(2) 宏指令语句;(3) 伪指令语句。汇编语言也由段组成,8086/8088按照逻辑段组织程序,具有代码段、数据段、附加段和堆栈段,段与段之间的顺序可以任意排列。需要独立运行的程序必须包含一个代码段,一个程序只有一个起始点,且必须指示程序的起始点。 4.2答:七种存储模型:

①Tiny 所有数据和代码都放在一个段内,其数据和代码都是近访问。Tiny程序可以写成.COM文件格式 ,COM程序必须从0100H的存储单元开始。这种模型一般用于小程序。

②Small 所有数据放在一个64KB的数据段内,所有代码放在另一个64KB的代码段内,数据和代码也都是近访问的。这是一般应用程序最常用的一种模型。

③Medium 代码使用多个段,一般一个模块一个段,而数据则合并成一个64KB的段组。这样,数据是近访问的,而代码则可远访问。

④Compact 所有代码都放在一个64KB的代码段内,数据则可放在多个段内,形成代码是近访问的,而数据则可为远访问的格式。

⑤Large 代码和数据都可用多个段,所以数据和代码都可以远访问。 ⑥Huge 与Large模型相同,其差别是允许数据段的大小超过64KB。 ⑦Flat 允许用户用32位偏移量,但DOS下不允许使用这种模型,只能在OS/2下或其他保护模式的操作系统下使用。MASM 5版本不支持这种模型,但MASM 6可以支持。

4.3答:需要使用一个标号,如start。对于有数据段的程序,简化段定义下应该这样开始:

start:mov ax,@data mov ds,ax

汇编语言程序设计过程中,有多种返回DOS的方法,但一般用DOS功能调用的4CH子功能来实现。应用程序的终止代码是: mov ax,4c00h int 21h

汇编结束是指汇编程序结束将源程序翻译成目标模块代码的过程。源程序的最后必须有一条end伪指令:end [标号];其中,可选的标号是程序指定的开始执行点,连接程序以此设置CS和IP。如:

专业整理 知识分享

完美WORD格式

end start

4.4答:逻辑段具有4个属性:(1)定位类型(align_type)说明段的起始地址应有怎样的边界值;(2)组合类型(combine_type)说明程序连接时的段合并方法;(3)使用类型(use_type)只适用于386及其后继机型,它用来指定寻址方式。(4)类别(‘class’)在引号中给出连接时组成段组的类型名。 完整代码段定义时的默认属性是:PARA、PRIVATE、USEl6

4.5答:COM和EXE程序结构。EXE程序有独立的代码段、数据段和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过64KB。COM程序只有一个逻辑段,其中包含数据区、代码区和堆栈区,程序代码长度不超过64KB,程序从100H处开始执行。

4.6 答:(1)mov al,23h AND 45h OR 67h;67H (2)mov ax,1234h/16+10h;133H (3)mov ax,254h SHL 4;2540H

(4)mov al,’a’ AND (NOT(‘b’- ‘B’));21H (5)mov ax,(76543 LT 32768)XOR 7654h;89ABH

4.7.答:(1)

42H 43H 44H 0AH 10H 45H 46H FFH - 04H 04 专业整理 知识分享

完美WORD格式

H 04H FFH - 04(2)

4.8答:(1)myl_b db ‘Personal Computer!’(2)my2_b db 64H

H 04H 04H 34H 12H FBH FFH - - - - - - - - - - - -

专业整理 知识分享

完美WORD格式

(3)my3_w dw 100 dup(?) (4)my4_c equ 100

(5)my5_c equ

4.9答:(1) mov byte ptr [bx],256;改正――mov word ptr [bx],256

(2) mov bx,offset opw[si];改正――mov bx,offset opw (3) add opbl,opb2;改正――add al,opb2 (4) mov opbl,al+l;改正――mov opbl,al (5) sub al,opw;改正――sub al,opb1

(6) mov [di],1234h;改正――mov word ptr [di],1234h 4.10答: .MODEL SMALL .DATA X DW 1234H Y DW 4321H MAX DW ? .CODE

START: MOV AX,@DATA MOV DS,AX MOV AX,X CMP AX,Y JNZ NEQU MOV MAX,0FFFFH JMP STOP NEQU: JC NEXT MOV MAX,X JMP STOP

NEXT: MOV MAX,Y STOP: MOV AX,4C00H INT 21H END START

4.11答:.MODEL SMALL .DATA

DAT DW 9234H SIGN DW ? .CODE

START: MOV AX,@DATA

专业整理 知识分享

完美WORD格式

MOV DS,AX

MOV AX,DAT

CMP AX,0 JZ STOP TEST AX,8000H JNZ FU MOV SIGN,0 JMP STOP

FU: MOV SIGN,0FFH STOP: MOV AX,4COOH INT 21H END START 4.12答: DISPLAY MACRO

MOV AH,2 INT 21H ENDM

.MODEL SMALL .DATA X DW 1230H Y DW 1234H Z DW 1234H

.CODE

START: MOV AX,@DATA

MOV DS,AX MOV AX,X MOV BX,Y CMP AX,Z JNZ N1 CMP AX,BX JNZ N2 MOV DL,'Y' DISPLAY

STOP: MOV AX,4C00H

INT 21H N1: CMP AX,BX

专业整理 知识分享

完美WORD格式

JNZ N3 N2: MOV DL,'X'

DISPLAY JMP STOP N3: CMP BX,Z

JNZ N4 JMP N2 N4: MOV DL,'N'

DISPLAY JMP STOP END START 4.13答: .MODEL SMALL .DATA

DAT DB 12H,23H,0F3H,6AH,20H,0FEH,10H,C8H,25H,34H SUM DW ?

.CODE

START: MOV AX,@DATA

MOV DS,AX MOV CX,10 MOV DX,0 LEA BX,DAT AGAIN: MOV AL,[BX] CBW

MOV DX,AX INC BX LOOP AGAIN MOV SUM,DX MOV AX,4C00H INT 21H END START 4.14答:

.MODEL SMALL .CODE

START: MOV AX,2000H

MOV DS,AX

专业整理 知识分享

完美WORD格式

MOV SI,0 MOV DX,0 MOV CX,0FFFFH AGAIN: MOV AL,[SI] CMP AL,20H JNZ NEXT INC DX

NEXT: INC SI LOOP AGAIN MOV AX,4C00H INT 21H END START

4.15. 答:procname PROC [attributes field][USES register list][,parameter field] ┇

Procname ENDP

push和pop的使用是为了保护子程序的调用的现场,比如寄存器的值。本例中要保护的寄存器是ax和dx。

jiafa PROC;用CX,BX传参数――数据的个数和数据的起始地址,结果放在字内存单元SUM和SUM+1

push ax push dx xor ax,ax xor dx,dx

again: add ax, [bx]

adc dx,0 inc bx

inc bx loop again mov sum,ax mov [sum+1],dx pop dx pop ax ret

jiafa ENDP

4.16答: .MODEL SMALL

专业整理 知识分享

完美WORD格式

.CODE

START: MOV CX,16

MOV BL,0;BL中放0的个数 AGN: SHL AX,1;数0的个数 JC NEXT INC BL

NEXT: LOOP AGN MOV AL,BL DAA

MOV DL,AL;显示高位 AND DL,0F0H MOV CL,4 SHR DL,CL ADD DL,30H MOV AH,2 INT 21H

MOV DL,AL;显示低位 AND DL,0FH ADD DL,30H MOV AH,2 INT 21H

MOV DL,0DH;显示回车 MOV AH,2 INT 21H

MOV DL,0AH;显示换行 MOV AH,2 INT 21H MOV AX,4C00H INT 21H END START

4.17.答:1、用寄存器传参数。2、用共享变量传参数。3、用堆栈传参数。 4.18.答:设这个32位数放在DX.AX中,求补后的结果也放在DX.AX中。 BUMA PROC PUSH BX PUSH CX XOR BX,BX

专业整理 知识分享

完美WORD格式

XOR CX,CX SUB BX,AX MOV AX,BX SBB CX,DX MOV DX,CX POP CX POP BX RET

BUMA ENDP

4.19答:设数据个数在CX中,数据缓冲区的首地址为BUF。出口参数:校验和放在SUM字节单元。 CHKSUM PROC PUSH AX PUSH BX DEC CX LEA BX,BUF MOV AL,[BX] AGN: ADD AL,[BX] INC BX LOOP AGN MOV SUM,AL POP BX POP AX RET

CHKSUM ENDP

4.20答:设这个十六进制的字放在数据段的TEMP字单元中。 BTOH PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV CL,4

MOV BX,TEMP

MOV DL,BH;最高位 SHR DL,CL CMP DL,0AH

专业整理 知识分享

完美WORD格式

JC N1 ADD DL,7 N1: ADD DL,30H MOV AH,2 INT 21H

MOV DL,BH;次高位 AND DL,0FH CMP DL,0AH JC N2 ADD DL,7 N2: ADD DL,30H MOV AH,2 INT 21H

MOV DL,BL;次低位 SHR DL,CL CMP DL,0AH JC N3 ADD DL,7 N3: ADD DL,30H MOV AH,2 INT 21H

MOV DL,BL;最低位 AND DL,0FH CMP DL,0AH JC N4 ADD DL,7 N4: ADD DL,30H MOV AH,2 INT 21H POP DX POP CX POP BX POP AX RET

BTOH ENDP

4.21答:

专业整理 知识分享

完美WORD格式

.MODEL SMALL

.DATA

BUF DW 9273H,0F3H,6A20H .CODE

START: MOV AX,@DATA MOV DS,AX LEA BX,BUF MOV AX,[BX] CMP AX,[BX+2] JB N1

XCHG AX,[BX+2] MOV [BX], AX N1: MOV AX,[BX+2] CMP AX,[BX+4] JB N2

XCHG AX,[BX+4] MOV [BX+2],AX N2: MOV AX,[BX] CMP AX,[BX+2] JB STOP

XCHG AX,[BX+2] MOV [BX], AX STOP: ;INT 3 MOV AX,4C00H INT 21H END START

4.22答: DISPLAY MACRO MOV AH,2 INT 21H ENDM

.MODEL SMALL

.DATA DAT DB 9CH .CODE

START: MOV AX,@DATA

专业整理 知识分享

完美WORD格式

MOV DS,AX MOV AL,DAT CMP AL,0 JZ ZERO JNS POSI MOV DL,’-’ DISPLAY

STOP: MOV AX,4C00H INT 21H

ZERO: MOV DL,’0’ DISPLAY JMP STOP

POSI: MOV DL,’+’ DISPLAY JMP STOP END START

4.23答: .MODEL SMALL .CODE

START: XOR BX,0 MOV CX,200 MOV DX,1

AGN: ADD BX,DX; 求和INC DX INC DX LOOP AGN CALL BTOH MOV AX,4C00H INT 21H BTOH PROC MOV CL,4

MOV DL,BH;最高位 SHR DL,CL CMP DL,0AH JC N1 ADD DL,7

专业整理 知识分享

完美WORD格式

N1: ADD DL,30H MOV AH,2 INT 21H

MOV DL,BH;次高位 AND DL,0FH CMP DL,0AH JC N2 ADD DL,7 N2: ADD DL,30H MOV AH,2 INT 21H

MOV DL,BL;次低位 SHR DL,CL CMP DL,0AH JC N3 ADD DL,7 N3: ADD DL,30H MOV AH,2 INT 21H

MOV DL,BL;最低位 AND DL,0FH CMP DL,0AH JC N4 ADD DL,7 N4: ADD DL,30H MOV AH,2 INT 21H RET

BTOH ENDP END START

4.24答:

.MODEL SMALL .DATA

DAT DB ……;准备100个数 RESULT DW ?

.CODE

专业整理 知识分享

完美WORD格式

START: MOV AX,@DATA

MOV DS,AX MOV CX,99 LEA SI,DAT MOV DL,[SI] MOV DH,DL INC SI MOV BX,SI

AGN1: CMP DH,[SI];求出最大值

JNB NEXT1 MOV DH,[SI] NEXT1: INC SI

LOOP AGN1 MOV CX,99

AGN2: CMP DL,[BX];求出最小值

JB NEXT2 MOV DL,[BX] NEXT2: INC BX

LOOP AGN2 XOR AX,AX;求和 ADD DH,DL MOV AL,DH ADC AX,0 MOV RESULT,AX ;int 3 MOV AX,4C00H INT 21H END START 4.25答: DPLY0 MACRO MOV DL,30H MOV AH,2 INT 21H ENDM

DPLY1 MACRO MOV DL,31H

专业整理 知识分享

完美WORD格式

MOV AH,2 INT 21H ENDM

.MODEL SMALL

.DATA

CNT DW 0AB3FH;准备数

.CODE

START: MOV AX,@DATA

MOV DS,AX MOV BX,CNT MOV CX,16 AGN: SHL BX,1 JC NEXT DPLY0 LOOP AGN NEXT: DPLY1 LOOP AGN MOV AX,4C00H INT 21H END START

4.26答:

.MODEL SMALL .DATA

STRG DB ……;准备字符串

.CODE

START: MOV AX,@DATA

MOV DS,AX LEA SI,STRG MOV CX,100 AGN: MOV AL,[SI] CMP AL,61H JB N1 CMP AL,7AH JA N1 SUB AL,20H N1: INC SI

专业整理 知识分享

完美WORD格式

LOOP AGN MOV AX,4C00H INT 21H

4.27答:

DISPLAY MACRO ;将BL中的数以十进制显示 MOV AL,BL;百位 MOV AH,0 MOV BH,100 DIV BH

MOV BL,AH;保留余数 CMP AL,1 JNZ NO MOV DL,31H MOV AH,2

INT 21H

NO: MOV AL,BL;十位 MOV AH,0

MOV BH,10

DIV BH

MOV BL,AH;保留余数 MOV DL,AL ADD DL,30H MOV AH,2

INT 21H

MOV DL,BL;个位

ADD DL,30H MOV AH,2

INT 21H

ENDM

.MODEL SMALL .DATA

DAT DB ……;准备100无符号字数据

.CODE

START: MOV AX,@DATA

MOV DS,AX LEA SI,DAT

专业整理 知识分享

完美WORD格式

MOV CX,100 CALL TONGJI DISPLAY MOV AX,4C00H INT 21H

TONGJI PROC;统计起始地址为SI,长度为CX内存中的奇数个数,结果放在BL MOV BL,0

AGN: MOV AL,[SI] TEST AL,01H JZ NEXT INC BL

NEXT: INC SI LOOP AGN RET

TONGJI ENDP END START

4.28答:学习条件汇编的使用。 MOV AL,DATB MOV BL,SCAlE IFE SIGN MOV AH,0 DIV BL ENDIF IF SIGN CBW IDIV BL ENDIF

MOV [RESULT],AL;商 MOV [RESULT+1],AH;余数

第五章 课后习题

5.1、选择题

(1)EPROM 虽然是只读存储器,但在编程时可向内部写入数据。()

A.正确B.不正确

(2)连接到64000h~6FFFFh地址范围上的存储器是用8k×8 RAM芯片构成的,

专业整理 知识分享

完美WORD格式

该芯片要( )片。

A.8片B.6片C.10片D.12片

(3)RAM 6116芯片有2K×8位的容量,它的片内地址选择线和数据线分别是() A.A0~A15和D0~D15 B.A0~A10和D0~D7 C.A0~A11和D0~D7 D.A0~A11和D0~D15

(4)对存储器访问时,地址线有效和数据线有效的时间关系应该是( )

A.数据线较先有效B.二者同时有效 C.地址线较先有效D.同时高电平

(5)一台微型机,其存储器首地址为2000H,末地址为5FFFH,存储容量为()KB。

A. 8 B. 10 C. 12 D.16

(6)下列哪一种存储器存取速度最快()? A.SRAM B.磁盘C.DRAM D.EPROM

(7)用2164 DRAM芯片构成8086内存的最小容量是()。 A.16KB B.32KB C.64KB D.128KB 5.2、微机硬件存储器分成哪几级? 5.3、计算机的内存和外存有什么区别? 5.4、半导体存储器有哪些优点?

5.5、RAM与CPU的连接主要有哪几部分?

5.6、EPROM存储器芯片还没有写入信息时,各个单元的内容是什么?

5.7、在对存储器芯片进行片选时,全译码方式、部分译码方式和线选方式各有何特点?

5.8、某ROM芯片有11根地址线,8根数据线,该芯片的存储容量是多少? 5.9、某ROM存储容量为16K×1位,芯片应该有多少根地址线,多少根数据线? 5.10、SRAM靠_____________存储信息,DRAM靠_____________存储信息,为保证DRAM中内容不丢失,需要进行_______________操作。

5.11、用2k×8的SRAM芯片组成16K×16的存储器,共需SRAM芯片__________片,片内地址和产生片选信号的地址分别为__________位。

5.12、已知某微机控制系统中,RAM的容量为8K×8位,首地址为4800H,求其最后一个单元的地址。

5.13、某以8088为CPU的微型计算机内存RAM区为00000H~3FFFFH,若采用6264(8KX8)、62256(32KX8)、2164(8KX4)、21256(32KX4)各需要多少芯片?其各自的片内和片间地址线分别是多少(全地址译码方式)?

5.14、利用全地址译码将6264芯片接在8088系统总线上,地址范围为BE000H~BFFFFH,试画出连接电路图。

5.15、用两片64K×8位的SRAM芯片,组成8086最小模式下的存储器子系统,要

专业整理 知识分享

完美WORD格式

求起始地址为C0000H。试画出连接图,指出偶地址存储体和奇地址存储体,并对连接图作详细说明。

5.16、计算机中为什么要采用高速缓存(Cache)? 5.17、Cache有哪几种组织方式?它们各有什么特点?

5.18、在Cache系统中,同一个数据既可能存储在Cache中,又有可能存储在内存中,这时数据的一致性如何解决?

习题五 参考答案

5.1(1)( A )(2)( B )(3)( B )(4)( C )(5)(D )(6)(A ) (7)( D )

5.2答:寄存器、Cache、内存、外存。

5.3答:内存:由DRAM构成,CPU可以直接访问,用来存放当前正在使用或要经常使用的程序或数据,内存的地址空间受CPU地址总线位数的限制,容量较小,读写速度快,价格相对较高。

外存:一般由磁盘、光盘及U盘构成,CPU不能直接访问,需要专门的驱动设备,读写速度较慢,容量较大,价格相对较低。

5.4答:集成度高,存取速度快。计算机内存一般都使用半导体存储器。 5.5答:数据线、地址线、片选线、读写控制线。 5.6答:FFH

5.7答:全译码方式:所有的系统地址线都参与对存储单元的译码寻址。其中,低位地址线对片内存储单元进行译码寻址(片内译码),高位地址线对存储芯片进行译码寻址(片选译码),在此方式下,每个存储单元的地址都是唯一的,无重复地址,但译码电路复杂,连线较多。

部分译码方式:只有部分高位地址线参与对芯片的译码,对于被选中的芯片,这些未参与译码的高位地址可以是0也可以是1,因此,每个存储单元对应多个地址(地址重复),需要选取一个可用地址。此译码方式可简化译码电路的设计,但地址重复,系统的部分地址空间被浪费。

线选方式:只有少数几根高位地址线参与芯片的译码,且每根负责选中一个芯片(组),此方法构成简单,但地址空间严重浪费,有地址重复现象。 5.8答:2KB。

5.9答:14根地址线,1根数据线。

5.10答:触发器电路(6个晶体管) 、电容、 刷新 5.11答: (16)、 (11、3 5.12 答:67FFH。

5.13答:6264(8K×8):片内13根和片间5根地址线。 62256(32K×8):片内15根和片间3根地址线。 2164(8K×4):片内13根和片间5根地址线。

专业整理 知识分享

完美WORD格式

21256(32K×4):片内15根和片间3根地址线。

5.14答:一片6264的存储容量是8K×8位,而地址范围为BE000H~BFFFFH,所以只要一片。

低13位地址线是片内译码,高7位是片选译码(A19~A13为:1010111)。

5.15答:低16位地址线是片内译码,高4位是片选译码(A19~A16为:1100)。只有A19~A16为1100与A0=1同时出现才能选中偶地址存储体;只有A19~A16为1100与

=0同时出现才能选中奇地址存储体。只有器;只有

和IO/

同时为0才能写存储器。

和IO/

同时为0才能读存储

5.16 答:为了解决CPU和内存速度差距大的问题。

5.17答:全相联:主存的一个块可能放置到Cache的任何一块。命中率最高,查找机制复杂,代价大。

直接映像:主存的一个块可能放置到Cache的唯一一块。失效率最高,查找机制简单,代价小。

组相联:主存的一个块可能映像到Cache的任何一组。命中率和查找机制介于前两者之间。

5.18答:有如下三个解决方法: ① 通写式(write through)

如果用这种方法,那么,每当CPU把数据写到Cache中时,Cache控制器会立即把数据写入主存对应位置。所以,主存随时跟踪Cache的最新版本,从而,也就

专业整理 知识分享

完美WORD格式

不会出现主存将新数据丢失的问题。此方法的优点是简单,缺点就是每次Cache内容有更新,就有对主存的写入操作,这样,造成总线活动频繁,系统速度较慢。 ② 缓冲通写式(buffered write through)

这种方式是在主存和Cache之间加一个缓冲器,每当Cache中作数据更新时,也对主存作更新,但是,要写入主存的数据先存在缓冲器中,在CPU进入下一个操作时,缓冲器中的数据写入主存,这样,避免了通写式频繁写主存而导致系统速度较低的缺点。不过用此方式,缓冲器只能保持一次写入数据,如果有两次连续的写操作,CPU还是要等待。

③ 回写式(write back)

用这种方式时,Cache每一个块的标记中都要设置一个更新位,CPU对Cache中的一个块写入后,其更新位置1。当Cache中的块要被新的主存块替换时,如更新位为1,则Cache控制器先把Cache现有内容写入主存相应位置,并把更新位清0,再作替换。所以,用回写式时,只要更新的块不被替换,那么就不会写入主存,这样,真正写入主存的次数可能少于程序的写入次数,从而,可以提高效率。但是,用这种方式,Cache控制器比较复杂。

习题6

6.1、 试说明一般中断系统的组成和功能。

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

6.3、 什么是硬件中断和软件中断?在PC机中两者的处理过程有什么不同? 6.4、 试叙述基于8086/8088的微机系统处理硬件中断的过程。

6.5、 在PC机中如何使用“用户中断”入口请求中断和进行编程? 6.6、8259A中断控制器的功能是什么?

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

6.8、8259A在初始化编程时设置为非中断自动结束方式,中断服务程序编写时应注意什么?

6.9、8259A的初始化命令字和操作命令字有什么区别?它们分别对应于编程结构中那些内部寄存器?

6.10、8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别? 6.11、80X86的中断系统有哪几种中断类型?其优先次序如何?

6.12、什么是中断向量表?若编制一个中断服务程序,其中断类型约定为80H,则它的入口地址(包括段地址和偏移地址)应放置在中断向量表中的哪几个单元?

6.13、简述80X86CPU对可屏蔽中断INTR的响应过程。

6.14、若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE24H,则对应该中断源的中断向量表内容是什么,如何定位?

6.15、试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中

专业整理 知识分享

完美WORD格式

断自动结束方式。中断类型码为20H~27H,8259A的端口地址为B0H和B1H。 6.16、给定SP=0100H、SS=2010H、PSW=0240H,在存储单元中已有内容为(00084)=107CH、(00086H)=00A7H,在段地址为13C2H及偏移地址为0210H的单元中,有一条中断指令INT 21H。试指出在执行INT 21H指令,刚进入它的中断服务程序时,SS、SP、CS、IP、PSW的内容是什么?栈顶的3个字的内容是什么(用图表示)?

6.17、中断处理程序的入口处为什么通常需要使用STI指令?

6.18、试编写这样一个程序段,它首先读出8259A中IMR寄存器的内容,然后屏蔽掉除IR1以外的其它中断。设8259A的偶地址端口为20H,奇地址端口为21H。 6.19、假设某80X86系统中采用一片8259A芯片进行中断管理。设8259A工作在全嵌套工作方式下,采用非自动结束中断命令,中断请求采用边沿触发方式,IR0所对应的中断类型号为80H。8259A在系统中的端口地址为280H和281H,试编写该系统中8259A的初始化程序段。

习题六 参考答案

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

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

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

6.4、答:以INTR请求为例。当8086收到INTR的高电平信号时,在当前指令执行完且IF=1的条件下,8086在两个总线周期中分别发出INTA#有效信号;在第二个INTA#期间,8086收到中断源发来的一字节中断类型码;8086完成保护现场的操作,CS、IP内容进入堆栈,清除IF、TF;8086将类型码乘4后得到中断向量入口地址,从此地址开始读取4字节的中断处理程序的入口地址,8086从此地址开始执行程序,完成了INTR中断请求的响应过程。

6.5、答:PC机中分配给用户使用的中断是IRQ9,经扩展插槽B4引出,故把用户的中断请求线连接到B4上。在应用程序中,利用25H号系统调用将中断服务程序的入口地址写入对应0AH类型中断对应的中断向量表中去。在应用程序中把主片8259A D2屏蔽位清0,把从片8259A D1屏蔽位清0,使主片的IR2、从片的IR1可以输入中断请求。中断服务程序结束前向主片8259A发中断结束命令。应用程序结束之前对主片的IR2和从片的IR1进行屏蔽,关闭用户中断请求。

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

专业整理 知识分享

完美WORD格式

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

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

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

6.9、答:8259A的工作方式通过微处理器向其写入初始化命令字来确定。初始化命令字分别装入ICW1~ICW4内部寄存器。8259A在工作过程中,微处理器通过向其写入操作命令字来控制它的工作过程。操作命令字分别装入OCW1~OCW3内部寄存器中。8259A占用两个端口号,不同的命令字对应不同的端口,再加上命令字本身的特征位及加载的顺序就可以正确地把各种命令字写入对应的寄存器中。 6.10、答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

6.12、 答:中断服务程序第一条指令所在的地址称为该中断服务程序的中断向

量。存放在00200H、00201H 、00202H、00203H四个内存单元中,其中00200H、00201H两个单元中存放的是偏移地址,00202H、00203H两个单元中存放的是段地址。

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

6.15、答:ICW1=1BH (送B0H端口),ICW2=20H (送B1H端口),ICW4=03H (送B1H端口)

6.16、答:SS=2010H, SP=00FAH, CS=00A7H, IP=107CH, PSW=0040H。

栈顶三个字的内容为:

000FAH 12H 000FBH 02H 000FCH C2H 000FDH 13H 000FEH 40H 000FFH 02H 6.17、答:因为在CPU响应中断时,会把中断允许标志位设置为0,即禁止CPU再响应可屏蔽中断,在中断处理程序的入口处使用STI指令开放中断,允许响应更高级的中断,实现中断嵌套。 6.18、答:IN AL, 21H

OR AL, 0FDH OUT 21H, AL

6.19、答:MOV AL, 13H

OUT 280H, AL

MOV AL, 10H

专业整理 知识分享

完美WORD格式

OUT 21H, AL MOV AL, 01H OUT 21H, AL

习题7

7.1、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。试编写程序片段,读出计数器2的内容,并把读出的数据装入寄存器AX。 7.2 、设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。

7.3 、设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?

7.4 、 设8253的计数器0,工作在方式1,计数初值为2050H;计数器1,工作在方式2,计数初值为3000H;计数器2,工作在方式3,计数初值为1000H。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。

7.5 、试简述微机系统中定时器/计数器的必要性和重要性,以及定时实现的常用方法。

7.6、可编程定时器/计数器8253/8254有几个通道?各通道有几种工作方式?各种工作方式的主要特点是什么?8254与8253有什么区别?

7.7、8253的初始化编程包括哪几项内容?它们在顺序上有无要求,如何要求? 7.8、何谓日时钟?日时钟运行原理是什么? 7.9、日时钟定时中断的作用是什么?修改日时钟定时中断的一般步骤和方法是什么?

7.10、8253通道0的定时中断是硬中断(8号中断),它不能被用户调用,当用户对系统的时间进行修改时,需采用软中断INT 1AH。试问这两种中断有何关系?

习题七 参考答案

7.1 答:

MOV AL,80H OUT 200H,AL IN AL,203H MOV BL,AL

IN AL,203H, MOV BH,AL MOV AX,BX

7.2 答: 要输出脉冲周期为1ms,输出脉冲的频率是时钟频率为2MHz时,计数器初值是

,当输入

专业整理 知识分享

完美WORD格式

使用计数器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

7.3 答:

= 76.4

应向计数器装入的初值是76。

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

=

=666.7HZ,其周期为1.5ms,输出负脉冲的宽度等于CLK的周期为0.5μs。

计数器2工作在方式3,即方波发生器的方式。输出频率f=三个OUT的输出波形如下:

习题8

= 2000Hz的对称方波。

8.1、比较中断与DMA两种传输方式的特点。

8.2、 DMA控制器应具有那些功能?

8.3、8237A只有8位数据线,为什么能完成16位数据的DMA传送? 8.4、8237A的地址线为什么是双向的?

8.5、 说明8237A单字节DMA传送数据的全过程。

8.6、 8237A单字节DMA传送与数据块DMA传送有什么不同?

8.7、 8237A什么时候作为主模块工作,什么时候作为从模块工作?在这两种工作模式下,各控制信号处于什么状态,试作说明。 8.8、 说明8237A初始化编程的步骤。

专业整理 知识分享

完美WORD格式

8.9、 8237A选择存储器到存储器的传送模式必须具备那些条件? 8.10、DMA传送方式为什么能实现高速传送? 8.11、简述8237A的主要功能。

8.12、用DMA控制器8237A进行内存到内存传输时,有什么特点?

8.13、利用8237A的通道2,由一个输入设备输入一个32KB的数据块至内存,内存的首地址为34000H,采用增量、块传送方式,传送完不自动初始化,输入设备的DREQ和DACK都是高电平有效。请编写初始化程序,8237A的首地址用标号DMA表示

习题八 参考答案

8.1、答:中断方式下,外设需与主机传输数据时要请求主给予中断服务,中断当前主程序的执行,自动转向对应的中断处理程序,控制数据的传输,过程始终是在处理器所执行的指令控制之下。

直接存储器访问(DMA)方式下,系统中有一个DMA控制器,它是一个可驱动总线的主控部件。当外设与主存储器之间需要传输数据时,外设向DMA控制器发出DMA请求,DMA控制器向中央处理器发出总线请求,取得总线控制权以后,DMA控制器按照总线时序控制外设与存储器间的数据传输而不是通过指令来控制数据传输,传输速度大大高于中断方式。

8.2、答:DMA控制器应有DMA请求输入线,接收I/O设备的DMA请求信号;DMA控制器应有向主机发出总线请求的信号线和接收主机响应的信号线;DMA控制器在取得总线控制权以后应能发出内存地址、I/O读写命令及存储器读写命令控制I/O与存储器间的数据传输过程。

8.3、答:I/O与存储器间在进行DMA传送过程中,数据是通过系统的数据总线传送的,不经过8237A的数据总线,系统数据总线是具有16位数据的传输能力的。 8.4、答:8237A的A0~A3地址线是双向的,当8237A被主机编程或读状态处于从属状态,A0~A3为输入地址信号,以便主机对其内部寄存器进行寻址访问。当8237A取得总线控制权进行DMA传送时,A0~A3输出低4位地址信号供存储器寻址对应单元用,A0~A3必需是双向的。

8.5、答:8237A取得总线控制权以后进行单字节的DMA传送,传送完一个字节以后修改字节计数器和地址寄存器,然后就将总线控制权放弃。若I/O的DMA请求信号DREQ继续有效,8237A再次请求总线使用权进行下一字节的传送。 8.6、答:单字节传送方式下,8237A每传送完一个字节数据就释放总线,传送下一字节时再请求总线的控制权。块传送方式下8237A必须把整个数据块传送完才释放总线。

8.7、答:8237A取得总线控制权后,开始进行DMA传送过程,此时8237A作为主模块工作。8237A在被处理器编程或读取工作状态时,处于从模块工作状态。 8237A处于从模块时,若CS#=0、HLDA=0说明它正被编程或读取状态,IOR#与IOW#为输入,A0~A3为输入。8237A处于主模块时,输出地址信号A0~A15 (低8位经A0~A7输出,高8位经DB0~DB7输出)。8237A还要输出IOR#、IOW#、MEMR#、MEMW#、AEN、ADSTB等有效信号供DMA传送过程使用。

8.8、答:(1)写屏蔽字,阻止某通道的DMA请求。(2)写命令字(8号地址),确定信号有效电平、优先级方式、通道工作允许等。(3)写模式字(B号地址),确定

专业整理 知识分享

完美WORD格式

某通道传送方式、传送类型、地址寄存器变化方式等。(4)置0先/后触发器。(5)设置地址寄存器、字节数寄存器的初值。(6)清除某通道屏蔽位,允许8237A响应其DMA请求。

8.9、答:必须使用8237A内部的暂存器作为数据传送的缓冲器。8237A通道0的地址寄存器存放存储器的源地址、通道1的地址寄存器存放存储器的目的地地址、字节计数器存放传送的字节数,建立通道0的软件DMA请求来启动这一传输过程。 8.13、答:设存储器页面寄存器内容已被置为3。8237A初始化程序如下: MOV AL, 06H ;屏蔽通道2 MOV DX, DMA+0AH ; OUT DX, AL ;

MOV AL,80H ;写通道2命令字:DREQ、 MOV DX, DMA+08H ;DACK高电平有效,正常

DUT DX,AL ;时序、固定优先级、允许8237A工作等。 MOV AL,86H ;写通道2模式字:块传

MOV DX,DMA+0BH ;输、写传输、地址增、 OUT DX, AL ;禁止自动预置等。 MOV DX,DMA+0CH ;置0先/后触发器 OUT DX,AL ;

MOV AL,00H ;设通道2基地址为4000H MOV DX,DMA+04H ; OUT DX,AL ; MOV AL, 40H ; OUT DX, AL ;

MOV AL, 0FFH ;设通道2基字节数为 MOV DX, DMA+05H ;7FFFH (32767D) OUT DX, AL ; MOV AL, 7FH ; OUT DX, AL ;

MOV AL,02H ;清除通道2屏蔽。 MOV DX, DMA+0AH ; OUT DX, AL ;

MOV AL, 06H ;通道2发DMA请求 MOV DX,DMA+09H ; OUT DX,AL ;

习题9

9.1、填空题

(1)8255A端口C按位置位/复位控制字的( )位用来指定置位或复位的端口C的具体位置。

(2)8255A端口C按位置位/复位控制字的( )位决定对端口C的某一位置位或复位。

(3)8255A端口A工作在方式2时,使用端口C的( )作为CPU和外部设备的

专业整理 知识分享

完美WORD格式

联络信号。

(4)8255A与CPU连接时,地址线一般与CPU的地址总线的( )连接。 (5)8255A控制的最高位的D7=( )时,表示该控制字为方式控制字。 (6)8255A的端口A的工作方式是方式控制字的( )位决定。 (7)8255A的端口B的工作由方式控制字的( )位决定。 (8)Intel 8255A是一个( )端口。

(9)8255A内部只有端口( )没有输入锁存功能。

9.2、8255A的方式0一般使用在什么场合?在方式0时,如果使用应答信号进行联络,应该怎么办?

9.3、当8255A工作在方式2并且采用中断时,CPU如何区分是输入或输出引起的中断?

9.4、设8255A的4个端口地址为0060H~0063H,试编写下列各种情况下的初始化程序。

(1)将A组和B组设置方式0,A口、B口为输入,C口为输出。

(2)将A组工作方式设置方式2,B组为方式1,B口作为输出。 (3)将A口,B口均设置方式1,均为输入,PC6和PC1为输出。

(4)A口工作在方式1,输入;B口工作在方式0,输出;C口高4位配合A口工作,低4位为输入。

9.5、已知8255的A口外接8个发光二极管,B口的PB0外接一个按键,A、B组均工作在方式0,试编写一段程序,循环检测按键是否按下,若按下(低电平有效),则把8个二极管点亮,否则全灭。

9.6、若8255A的端口A定义为方式0,输入;端口B定义为方式1,输出 ;端口C的上半部定义方式0,输出。试编写初始化程序(设端口地址为80H~83H)。 9.7、试编程实现采用动态扫描方法在LED数码管上显示0000~9999,硬件图可参照例题2图9-9。设8255A的端口地址为300H~303H。

习题九 参考答案

9.1、填空题

(1)D1 ~D3 (2)D0 (3)PC3~PC7 (4)A1、A0

(5)1 (6)D3~D6 (7)D0~D2 (8)可编程的并行 (9)B

9.2、82555A工作在方式0,4个端口相互独立,它们之中每个端口既可作为输入端口,也可作为输出端口,各端口之间没有必然关系。4个端口的输入/输出可以有16种组合,所以可适用于多种使用场合。在方式0时, CPU采用无条件读写方式与8255A交换数据,也可采有查询方式与8255A交换数据。采用查询方式时,可利用端口C作为与外设的联络信号。

9.3、当8255A工作在方式2并且采用中断时,CPU根据INTE1和INTE2的状态来确定。INTE1为输出中断允许,由端口C的PC6置位/复位,INTE2为输入中断允许,由端口C的PC4置位/复位。

专业整理 知识分享

完美WORD格式

9.4、(1)MOV AL,82H MOV DX,0063H OUT DX,AL

(2)MOV AL,C4H MOV DX,0063H OUT DX,AL

(3)MOV AL,B6H

MOV DX,0063H

OUT DX,AL MOV AL,0BDH OUT DX,AL

(4)MOV AL,B1H MOV DX,0063H OUT DX,AL

9.5、 设8255A的4个端口地址为90H~93H CODE SEGMENT

ASSUME CS: CODE,DS: DATA START: MOV AX,DATA MOV DS,AX MOV AL,82H

MOV DX,93H OUT DX,AL IN AL,91H TEST AL,01H JNZ LOOP1 MOV AL,00H OUT 90H,AL

LOOP1:MOV AL,FFH OUT 90H,AL CODE ENDS

END START

9.6、MOV AL,94H MOV DX,83H

OUT DX,AL

9.8、答:8255A的A端口,作为数据的输入、输出端口使用时都具有锁存功能。B端口和C端口当作为数据的输出端口使用时具有锁存功能,而作为输入端口使用时不带有锁存功能。

专业整理 知识分享

完美WORD格式

9.9、答:当数据从8255A的C 端口读入CPU时,8255A的片选信号

应为低电平,

才能选中芯片。A1,A0为10,即A1接高电平,A0接低电平,才能选中C端口。应为低电平(负脉冲),数据读入CPU,

为高电平。

9.10、答:数据锁存就是延长数据存在时间,便于与外设存取时间配合。在外设速度与主机相匹配时,可以不需要锁存。

9.11、答:主要特点:数据并行传输,传输速度快,但距离较近。

主要功能:并行传输数据,在主机与外设之间起到数据缓冲和匹配的作用。 9.12、答:8255A有3种工作方式:方式0:基本I/O方式;方式1:单向选通I/O方式;方式2:双向选通I/O方式。

习题10

10.1、 串行通信与并行通信相比,有那些基本特点?

10.2、 在串行通信中有哪几种数据传送模式,各有什么特点? 10.3、什么是波特率?试举出几种常用的波特率系列。

10.4、已知异步通信接口的帧格式由1个起始位、7个数据位、1个奇偶校验位和1个停止位组成。当该接口每分钟传送3600个字符时,其传送波特率是多少? 10.5、异步通信的特点是什么?同步通信的特点是什么?

10.6、RS-232C总线的主要特点是什么?它的逻辑电平是如何定义的? 10.7、RS-232C标准与TTL之间进行什么转换?如何实现这种转换?

10.8、RS-485是什么?它为什么比RS-232C直接传输的距离远,速率高,而且可靠性高?

10.9、串行通信接口电路的基本功能有哪些? 10.10、试简述8251A内部结构及工作过程?

10.11、试分别说明8251A的工作方式控制字、操作命令控制字和状态控制字的作用?

10.12、异步方式下,8251A初始化包括哪几部分?初始化的顺序是怎样的?为什么要采用这种顺序?

10.13、某系统中使可编程串行接口芯片8251A工作在异步方式,8位数字,不带校验,2位停止位,波特率系数为64,允许发送也允许接收。假设8251A的两个端口地址分别为0C0H和0C2H,试编写初始化程序。 10.14、编写一段通过8251A采用查询方式接收数据的程序。8251A采用异步方式工作,波特率系数为16,偶校验,1位停止位,8位数据位。

10.15、编写使8251A发送数据的程序。将8251A定为异步传送方式,波特率系数为64,采用偶校验,2位停止位,8位数据位。8251A与外设有握手信号,采用查询方式发送数据。

10.16、编写接收数据的初始化程序。要求8251A采用同步传送方式、2个同步字符、内同步、奇校验、8位数据位和同步字符为16H。

10.17、 甲乙两机进行串行通信,串行接口电路以8251A为核心,两个端口地址为04A0H(数据口)、04A2H(命令/状态口)。要求甲机接收字符,并将接收的字

专业整理 知识分享

完美WORD格式

符求反,然后又向乙机发送出去。数据格式为:字符长度为8位,2位停止位,无奇偶校验,波特率系数为16。试编写实现这一功能的通信程序。

习题十 参考答案

10.1 答:串行通信与并行通信相比,其基本特点有:

(1) 信息在1根传输线上,一位一位按位串行传送,且数据和控制联络信息混

在一起进行传送。

(2) 串行传送的数据有固定的格式。

(3) 串行通信,既可用于近距离,也可用于远距离,远距离传送要使用MODEM。 (4) 串行通信,采用负逻辑和高压电平,与TTL电平不兼容。

(5) 串行通信要求双方的传输速率必须一致,故须进行传输速率控制。 (6) 串行通信易受干扰,出错难以避免,故须进行差错控制。

10.2 答:在串行通信有三种数据传送模式:单工传送,半双工传送和全双工传送。

单工传送方式仅支持一个方向上的数据传送,即由设备A传送到设备B。在这种传送模式中,A只作为发送器,B只作为接收器。

半双工传送方式支持在设备A和设备B之间交替地传送数据,即设备A为发送器,发送数据到设备B,设备B为接收器。也可以设备B为发送器发送数据到设备A,设备A为接收器,由于A、B之间仅与一根数据传送线,它们都有独立地发送器和接收器,所以在同一个时刻只能进行一个方向地传送。

全双工传送方式支持数据在两个方向同时传送。即设备A可发送数据到设备B,设备B也可以发送数据到设备A,它们都有独立地发送起去和接收器,并有两条传送线。

10.3 答:波特率是指串行传送线上每秒钟所能传送的二进制位数。国际上规定了标准波特率系列,最常用的标准波特率是:110波特、300波特、600波特、1200波特、1800波特、2400波特、4800波特、9600波特和19200波特。 10.4 答:波特率

10.5 答:异步通信是指字符与字符之间的传送是异步的,而字符内部位与位之间的传送是同步的。因为异步通信是以字符为单位进行传送的,发送端何时发送1个字符,接收端预先并不知道。也就是说,“异步”主要体现在字符与字符之间的传送没有严格的定时要求。

同步通信是指不仅字符内部位与位之间的传送是同步的,字符与字符之间的传送也是同步的。因为,同步通信是以数据块为单位进行传送的,而1个数据块包含了若干个字符,它作为1个整体,一旦传送开始,要求数据块内的每一位的传送都必须是同步的。也就是说,“同步”主要体现在数据块内字符与字符之间和字符内位与位自荐的传送都必须是同步的。

10.6 答:RS-232C总线是为了电话网络进行数据通信而制定的标准。该标准属于异步通信总线,主要用于主机与CRT或调制解调器之间的通信,以及某些多机通信的情况。RS-232C总线的逻辑电平是负逻辑,以+3~+25之间的任意电压表示逻辑“0”,以-3~-25V之间的任意电压表示逻辑“1”,在实际使用中,电平常为 12V或 15V。

专业整理 知识分享

完美WORD格式

10.7 答:RS-232C标准与TTL之间要进行逻辑关系(正逻辑 负逻辑)及逻辑电平(低电平/低摆幅 高电压/高摆幅)的转换。这种转换可通过专用芯片如MC1488/MC1489,MAX232/MAX233等接口电路实现。

10.8 答:RS-485是一种多发送器/多接收器的串行接口标准。RS-485采用共线电路结构,在一对平衡传输线的两端配置终端电阻,其发送器、接收器、组合收发器可刮在平衡传输线的任何位置,实现多个驱动器和多个接收器共用同一传输线的多点通信。它也是RS-232C的改进型标准,并且也是一种平衡传输方式的接口标准。因此,它的直接传输距离、传输速率以及可靠性都比单线传输方式的RS-232C标准要高得多。

10.9 答:串行通信接口电路的基本功能有 : (1)实现数据格式化; (2)进行并-串转换; (3)进行错误检验;

(4)提供符合RS-232C标准所定义的接口信号线;

(5)进行TTL与RS-232C标准的逻辑关系及逻辑电平转换; (6)进行数据传输速率控制。

10.10 答:8251A是一个通用的串行输入/输出接口芯片,可用来将CPU传送给外设的信息以串行方式向外发送,或将外设输入给CPU的信息以串行方式接收并转换为并行数据传送给CPU。其内部结构包括发送器和接收器,数据总线缓冲器,读/写控制电路,调制解调控制等几个部分。

发送器和接收器是8251与外设交换信息的通道。 发送器的工作过程是:

(1) 接收到来自CPU的数据存入发送缓冲器。

(2) 发送缓冲器存有待发送的数据后,使引脚TXRDY变为低电平,表示发

送缓冲器满。

(3) 当调制解调器作好接收数据的准备后,向8251A输入一个低电平信号,

引脚有效。

(4) 在编写初始化命令时,使操作命令控制字的TXEN位为高,让发送器

处于允许发送的状态下。

(5) 满足以上(2)、(3)、(4)条件时,若采用同步方式,发送器将

根据程序的设定自动送一个(单同步)或两个(双同步)同步字符,然后由移位寄存器从数据输出线TXD串行输出数据块;若采用异步方式,由发送控制器在其首尾加上起始位及停止位,然后从起始位开始,经移位寄存器从数据输出线TXD串行输出。

(6) 待数据发送完毕,使TXENPTY有效。

(7) CPU可向8251A发送缓冲器写入下一个数据。 与发送器有关引脚信号如下:

TXD: 数据发送端,输出串行数据送往外部设备。

TXRDY: 发送器准备好信号。TXRDY=1,发送缓冲器空;TXRDY=0发送缓冲器满。当TXRDY=1、TXEN=1、CTS=0时,8251A已作好发送准备,CPU可以往8251A传输下一个数据。当用查询方式时,CPU可从状态寄存器的D0位检测这个信号,判断发送缓冲器所处状态。当用中断方式时,此信号作为中断请求信号。 TXEMPTY: 发送移位寄存器空闲信号。TXEMPTY=0,发送移位寄存器满;

专业整理 知识分享

使

完美WORD格式

TXEMPTY=1,发送移位寄存器空,CPU可向8251A的发送缓冲器写入数据。在同步方式时,若CPU来不及输出新字符,则TXEMPTY=1,同时发送器在输出线上插入同步字符,以填充传送间隙。

TXC: 发送时钟信号,外部输入。对于同步方式,TXC的时钟频率应等于发送数据的波特率。对于异步方式,由软件定义的发送时钟可是发送波特率的1倍(×1)、16倍(×16)或64倍(×64)。

接收器包括接收缓冲器、接收移位寄存器及接收控制器三部分。 工作过程:

(1) 当控制命令字的“允许接收”位RXE和“准备好接收数据”位DTR有效时,接收控制器开始监视RXD线。

(2) 外设数据从RXD端逐位进入接收移位寄存器中,接收中对同步和异步两种方式采用不同的处理过程。

异步方式时,当发现RXD线上的电平由高电平变为低电平时,认为是起始位到来,然后接收器开始接收一帧信息。接收到的信息经过删除起始位和停止位,把已转换成的并行数据置入接收数据缓冲器。

同步方式时,每出现一个数据位移位寄存器就把它移一位,把移位寄存器数据与程序设定的存于同步字符寄存器中的同步字符相比较,若不相等重复上述过程,直到与同步字符相等后,则使SYNDET=1,表示已达到同步。这时在接收时钟RXC的同步下,开始接收数据。RXD线上的数据送入移位寄存器,按规定的位数将它组装成并行数据,再把它送至接收数据缓冲器中。 (3) 当接收数据缓冲器接收到由外设传送来的数据后,发出“接收准备就绪”RXRDY信号,通知CPU取走数据。 与接收器有关的引脚信号如下:

RXD: 数据接收端,接收由外设输入的串行数据。

RXRDY: 接收器准备好信号。RXRDY=1表示接收缓冲器已装有输入的数据,通知CPU取走数据。若用查询方式,可从状态寄存器D1位检测这个信号。若用中断方式,可用该信号作为中断申请信号,通知CPU输入数据。RXRDY=0表示输入缓冲器空。

SYNDET/BRKDET: 双功能检测信号,高电平有效。

对于同步方式,SYNDET是同步检测信号,该信号既可工作在输入状态也可工作在输出状态。内同步工作时,该信号为输出信号。当SYNDET=1,表示8251A已经监测到所要求的同步字符。若为双同步,此信号在传送第二个同步字符的最后一位的中间变高,表明已经达到同步。外同步工作时,该信号为输入信号。当从SYNDET端输入一个高电平信号,接收控制电路会立即脱离对同步字符的搜索过程,开始接收数据。

对于异步方式,BRKDET为间断检出信号,用来表示RXD端处于工作状态还是接收到断缺字符。BRKDET=1表示接收到对方发来的间断码。

RXC: 接收时钟信号,输入。在同步方式时,RXC等于波特率;在异步方式时,可是波特率的1倍、16倍或64倍。

10.11 答:8251A的方式命令、工作命令和状态字的作用如下:

(1) 工作方式控制字是用来设置通信方式及该方式下的数据格式,因为

8251A支持同步和异步两种通信方式,所以工作方式控制字的各位在不同的通信方式下,其功能有所不同。

(2) 操作命令控制字是用来控制串行接口的内部复位、发送、接收、清

专业整理 知识分享

完美WORD格式

如果是异 联络信号有效的。 、

步方式,且不使用MODEM,则工作命令字8位中,只有4个关键位需要使用。

(3) 状态控制字的作用是向CPU提供何时才能开始接收或发送1个字符,

以及接收数据中有无错误的信息。如果是异步方式,且不使用MODEM,则只使用5个关键位。

10.12 答:异步方式下,8251A的初始化内容包括按顺序先写内部命令,并根据设计要求再写工作方式控制字,最后,写操作命令控制字。这个顺序不能改变。为了提高可靠性,往往还在写内部复位命令之前,向命令口写一长串0,作为空操作。

10.13 答:初始化程序如下: MOV DX , 0C2H

MOV AL, 11001111 B ; 8位数字,不带校验,2位停止位,波特率系数为64 OUT DX , AL

MOV AL , 00010101B ; 允许发送也允许接受 OUT DX , AL

10.14 答:设8251A数据口地址为0C0H,控制口地址为0C2H。

MOV DX,0C2H

MOV AL,01111110B ;工作方式控制字 OUT DX,AL

MOV AL,14H ;写操作命令控制字 OUT DX,AL

WAIT∶IN AL,DX ;读入状态控制字 AND AL,02H

JZ WAIT ;检查RXRDY是否为1 MOV DX,0C0H

IN AL,DX ;输入数据

10.15 答:设8251A数据口地址为0C0H,控制口地址为0C2H。

MOV DX,0C2H

MOV AL,01111111B ;写工作方式控制字 OUT DX,AL

MOV AL,31H ;写操作命令控制字 OUT DX,AL

WAIT∶ IN AL,DX

AND AL,01H ;检查TXRDY是否为1 JZ WAIT

MOV DX,0C0H

MOV AL,36H ;输出的数据送AL OUT DX,AL

10.16 答:设8251A数据口地址为0C0H,控制口地址为0C2H。

MOV DX,0C2H ;控制口地址送DX

MOV AL,01011100B ;写工作方式控制字 MOV DX,AL

专业整理 知识分享

除错误标志等操作以及设置

完美WORD格式

MOV AL,16H ;同步字符送AL OUT DX,AL

OUT DX,AL ;输入两个同步字符 MOV AL,96H ;写操作命令控制字 OUT DX,AL

10.17 答:程序如下:

INT514: MOV DX , 04A2H ;初始化 MOV AL , 0EEH ;写工作方式控制字 OUT DX , AL

MOV AL , 15H ;写操作命令控制字 OUT DX , AL

CHKRX: MOV DX , 04A2H ;查接收状态 IN AL , DX ROR AL , 1H

ROR AL , 1H ;接收是否准备好? JNC CHKRX ;未,等待

MOV DX , 04A0H ;已,接收1个字符 IN AL , DX

NOT AL ;接收的字符求反

MOV BL , AL ;暂存接收的字符

CHKTX: MOV DX , 04A2H ;查发送状态 IN AL , DX

ROR AL , 01H ;发送是否准备好? JNC CHKTX ;未,等待

MOV DX , 04A0H ;已,发送已经求反的字符 MOV AL , BL OUT DX, AL

JMP CHKRX ;重发上述过程

习题11

11.1、什么是总线?简述微机总线的分类。

11.2、简要说明PC总线和ISA总线的区别与联系。 11.3、简述PCI总线的特点。

11.4、简述USB总线的应用场合与特点。

11.5、采用一种总线标准进行微型计算机的硬件结构设计具有什么优点? 11.6、 一个总线的技术规范应包括哪些部分? 11.7、总线的定义是什么?简述总线的发展过程。

11.8、 微型计算机系统总线由哪三部分组成?它们各自的功能是什么? 11.9、 扩充总线的作用是什么?它与系统总线的关系是什么? 11.10、 为什么要引入局部总线?它的特点是什么? 11.11、总线定时协议分哪几种?各有什么特点?

11.12、 总线上数据传输分哪几种类型?各有什么特点?

11.13、 总线的指标有哪几项,它工作时一般由哪几个过程组成?

专业整理 知识分享

完美WORD格式

11.14、 为什么要进行总线仲裁?

11.15、 为什么集中式总线仲裁方式优于菊花链式?

11.16、ISA总线信号分为多少组,它的主要功能是什么?

11.17、ISA 16位总线是在ISA 8位总线基础上扩充了哪些信号而形成的? 11.18、PCI总线访问时,怎样的信号组合启动一个总线的访问周期,又怎样结束一个访问周期?

习题十一 参考答案

11.5、答:为适应用户不断变化的要求,微机系统设计必须采用模块化设计,不同的模块组合形成一定的功能。模块之间的连接关系采用标准的总线结构可使不同功能的模块便于互连,兼容性好、生命周期长。模块采用标准化总线结构设计可使模块的生产供应规模化、多元化、价格低、有利于用户。

11.6、答:总线技术规范应包括:(1)机械结构规范:模块尺寸、总线插头插座形式与结点数以及模块与插头插座的机械定位。(2)功能规范:总线信号名称、功能以及相互作用的协议。(3)电气规范:总线中每个信号工作时的有效电平、动态转换时间、负载能力以及电气性能的额定值与最大值。

11.7、答:总线就是两个以上模块(或子系统)间传送信息的公共通道,通过它模块间可进行数据、地址码及命令的传输。

最早的标准化总线是S-100总线(1975),80年代初IBM PC/XT个人计算机采用8位ISA总线,之后又在IBM PC/AT机上推出16位ISA总线。随着外设接口对总线性能要求的不断提高,出现了EISA总线及PCI总线。PCI总线目前已被个人计算机广泛采用,成为新的工业标准。

11.8、答:由地址总线、数据总线和控制总线三部分组成。地址总线用于指出数据的来源或去向;数据总线提供了模块间数据传输的路径;控制总线用来传送各种控制信号以便控制数据、地址总线的操作及使用。

11.9、答:扩充总线是将许多I/O接口连接在一起,集中起来经桥接电路与系统总线相连,减轻系统总线的负载,提高系统性能。系统总线与扩充总线的之间有专门的连接电路,它们各自工作在不同的频宽下,可适应不同工作速度的模块的需要。

11.10、答:早期的扩充总线(ISA总线)工作频率低,不能满足象图形、视频、网络接口等高数据传输率I/O设备的要求。在处理器的系统总线与传统扩充总线之间插入一个总线层次,它的频率高于传统扩充总线,专门连接高速I/O设备,满足它们对传输速率的要求。这一层次的总线就是局部总线。局部总线与系统总线经桥接器相连,局部总线与传统扩充总线也经桥接器相连,三个层次的总线相互隔开,各自工作在不同的频宽上,适应不同模块的需要。

11.11、答:总线有三种定时方法。(1)同步定时,信息传输由公共时钟控制,总线信号中包括一个时钟信号,各模块上所有的操作都在时钟开始时启动。(2)异步定时,信息的传输的操作均由源或目的的特定信号跳变所确定,总线上每一个操作的发生均取决于前一个操作的发生,总线操作过程不用公共时钟来同步。(3)半同步定时,总线上各操作之间的时间间隔可以变化,但这个变化只允许为公共时钟周期的整数倍,信号的出现,采样和结束以公共时钟为基础。

11.12答:分单周期方式和突发方式两种。在单周期方式中,每个总线周期只传送一个数据。在突发方式下,占用一次总线要进行多个数据的传输,源模块发出

专业整理 知识分享

完美WORD格式

首地址去访问目的模块的数据1,以后的数据是在首地址的基础上按一定的规则去寻址目地模块。 11.13、答:总线的指标有(1)总线宽度,一次总线操作可以传输的数据位数;(2)总线工作频率,总线上基本定时时钟的频率,它代表总线操作的最高频率;(3)单个数据传输所用时钟周期数。总线上信息传输过程可分解为:(1)请求总线;(2)总线裁决;(3)寻址;(4)数据传送;(5)错误检查。

11.14、答:总线结构的特点是,一个传送信息的公共通路总线为多个模块共同使用。但在某一时刻,只能允许一个主模块使用总线进行数据传输。当有多个主模块要占用总线进行数据传输时,要有一个总线的请求及转交的过程,首先按一定规则进行总线使用权的仲裁,把总线的使用权交给优先级最高的请求者。 11.15、答:菊花链式为串行总线仲裁逻辑,离处理器较远的主模块因前级主模块的占用而在较长时间内得不到响应,优先权的级别与逻辑上级连位置有关,因此灵活性差,缺少公平性。 集中式为并行总线仲裁逻辑,请求与响应信号都是独立与仲裁逻辑相连,优先级的处理可采用多种方式,不至因为某个请求设备的故障而造成整个仲裁逻辑的瘫痪,灵活性好。

11.16、答:分为总线基本信号、总线访问信号及总线控制信号。总线基本信号主要用来提供基本定时时钟、系统复位、电源和地信号。总线访问信号主要用来提供对总线目标模块访问的地址、数据、访问应答控制信号。总线控制信号的主要功能是提供中断、DMA处理时的请求及响应信号以及扩展模块主控状态的确定信号。

11.17、答:ISA 16位总线在ISA 8位总线基础上把数据线由8位扩充到16位,把地址线由20位扩充到24位;还扩充了中断请求信号、DMA请求与响应信号;还增加了16位数据访问的控制信号等。 11.18、答:PCI总线上的主设备取得总线控制权以后,在CLK-1期间发出FRAME#有效信号、要访问的从设备的地址信号及操作类型的命令字,从而启动了一个总线访问周期。结束一个访问周期是通过使FRAME#信号变为无效且保持主设备准备就绪信号IRDY#为有效,完成最后的数据传送后结束这个总线操作。此外用STOP#信号从设备可以主动仃止数据访问周期。

习题12

12.1、 什么是编码键盘?什么是非编码键盘?

12.2、 什么是线性键盘?什么是矩阵键盘?各有什么特点? 12.3、 键盘接口的基本功能有哪些?

12.4、行扫描法矩阵键盘的工作原理是什么?

12.5、设键盘上有3×4个键,通过并行接口芯片8255A与微机相连。8255A的A口定义为输出口,其端口地址为PORTA,与键盘行线相连;B口定义为输入口,其端口地址为PORTB,与键盘列线相连;8255A控制口为PORTC。画出硬件连接图,并设计一个用“行扫描法”识别闭合键的扫描程序。 12.6、PC键盘的工作原理是什么?

12.7、鼠标器的基本工作原理是什么?

专业整理 知识分享

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

Top