《微机原理与接口技术》复习提纲

更新时间:2024-01-19 15:16:01 阅读量: 教育文库 文档下载

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

《微机原理与接口技术》复习提纲

(含答案)

2014 -- 2015 学年 第 一 学期

考试科目: 微机原理与接口技术

(以下提纲中各提纲的问题答案用红色字体标明)

(以下提纲中各提纲的问题答案用红色字体标明)

1、计算机中通常采用补码表示 符号数 。

2.采用补码表示的8位二进制数真值范围是 -128 ~ +127 。

3. 8086(8088)CPU从功能上分成总线接口部件和执行部件,他们采用并行方式工作。

4、10000110B =( 134 )D=( 86 )H=(0001 0011 0100 )非压缩BCD

5、8086系统的外部中断请求分:(非屏蔽中断请求)和(可屏蔽中断请求)。

6.微机中构成主存储器的器件是RAM + ROM 。

7.在汇编语言程序上机过程中,用编辑EDIT程序建立汇编语言源程序文件,用汇编MASM程序将它转换成机器码表示的目标程序文件,然后再用连接LINK程序将目标文件转化成可执行文件。

8、汇编语言是一种面向机器的程序设计语言

9.系统总线根据其传送的内容不同,可分为数据总线、地址总线和控制总线;若按与CPU 的位置又可分为内部总线和外部总线。

10、有一SRAM芯片,地址线为A0~A15,数据线为D0~D7,则该芯片的存储容量为(64KB)。

11. INTR引脚上来的中断是可屏蔽中断,NMI引脚引入的中断是非屏蔽中断。

12、8086指令系统对存储器寻址方式有直接、寄存器间接、寄存器相对、基址变址、相对基址变址寻址方式 。

13、指令指针寄存器IP 中存放的是 CPU正在执行指令的下一条指令的偏移地址。

14、比较两数大小,大于转移时对无符号数应使使用JA指令,而对有符号数应使用 JG指令。

1

15、 USB是通用串行总线 ,是一种支持即插即用的新型万能接口。

16\\、在外设接口电路中,经常需要对传输过程中的信息进行放大、隔离以及锁存,能实现

上述功能的接口芯片最简单的就是缓冲器、数据收发器和锁存器。

17. 当8086CPU接受了中断请求后,在现行指令执行完后,暂停正在执行的程序,发出中断响应信号INTA,外设把一个中断类型号送到数据总线上,CPU就转入中断服务程序,同时清除TF和IF。在开中断情况,CPU正在进行中断服务,若系统中有更多的更高级中断源同时发出中断请求,CPU则中断当前正在执行的中断服务程序, 执行更 高级的中断服务程序。 18

19、变量和标号均有三种属性,它们是:类型属性、 (段值的属性)和( 偏移量属性 )。 20、数据总线的宽度指(数据总线的根数或可同时传输的数据的位数),数据传输率是(单位时间内总线上可传输的数据量)。

21.在8086CPU中,哪些寄存器通常用于下列目的:

A、累加器 AX B、表示运算结果的状态的寄存器 FLAGS C、指令代码的地址 IP D、表示基址的寄存器 BX

22.8086的内存容量最大可达到 1M ,它是分段的,段起始地址一定能被 16 整除的地方开始,最长可达 64K ,若某一逻辑地址表示为:1250H:1CA5H。 (1) 它的物理地址为__141A5H_________。

(2) 它的逻辑地址可表示为_____131A_________:1005H 。

23.8086被复位后,以下各寄存器的内容是:Flag:_0H___;IP:_0H_____;CS__0FFFFH____。

24.若中断矢量表中地址为0040H单元中存放的是2008,0042H单元中存放的是2000H,这些单元对应的中断类型编码是__10H____;该中断服务程序的起始地址是_22008H_____。

25A、逻辑地址为 2000H:1400H时,段地址是 2000H ,偏移地址是1400H,其物理地址是21400H 。

26、微机地址总线的宽度决定了 (内存容量的大小),8086有20位地址线,直接寻址空间为(2B=1MB)。

2

20

、74LS373在I/O接口中的作用是 地址锁存

器 。

27.基本的8086总线周期由4个T状态组成,TW称为___等待___状态,在__T3___和__T4____之间插入。

28.用2k×8的SRAM芯片组成16K×16的存储器,共需SRAM芯片___16___片,片内地址__11__ ______位,用全译码法产生片选信号的地址为_ 3_____位。

29、奔腾系列微机中的南桥芯片主要是负责I/O,北桥芯片用于CPU和内存、显卡、PCI交换数据。

30、以下存储器中,CPU 不能直接访问的是 ( D )。

A. 主存 B. Cache C. RAM D.

31、8086 中断系统中用来处理电源掉电的是 ( B )

A. 可屏蔽中断 B. 非屏蔽中断 C. 内部中断 D .软件中断

32、当前PC机系统采用的主要系统总线标准是(D )

A. PC总线 B. ISA总线 C. EISA总线

33、中断向量是 ( D )

A. 中断类型码 B. 中断服务程序入口 C. 子程序入口

D. 中断服务程序入口的地址指针

34、USB连接器为 ( A ) 芯连接器

A. 4

3

辅存 D. PCI总线 B. 5 C. 9 D 15

35.通常人们所说的微型计算机的“三总线”是指( C

A、地址总线、数据总线、控制总线 C、片总线、内总线、外总线

)。

B、物理总线、逻辑总线、控制总线 D、内总线、外总线、接口总线

36、奔腾系列微机中最靠近CPU的芯片是(北桥芯片)

A、南桥芯片 B、DMA控制器芯片 C、北桥芯片 D、中断控制器芯片

37.传送数据时,占用CPU 时间最长的传送方式是( A

A、查询

38.关于8086CPU的信号INTA,下列说法正确的是(

A、该信号对外设的中断请求作出响应 B、是中断请求信号输入端

C、该信号是位于连续周期中的两个负脉冲

D、外设收到该信号的第二个负脉冲后,往数据总线上发中断类型码

39.类型号为17H的中断所对应的中断向量存放在( A、0000:005CH

40.下列四条指令执行后不影响标志位的是( A

A、JNC NEXT

41.采用条件传送方式时,外设必须要有(

A、中断逻辑

42.下面( D )中断优先级最高。

A、NMI中断

43.使汇编程序执行某种操作的命令是 ( C )。

A、变量

4

)。

D、无条件

B、中断 C、DMA

D )。

A )开始的4个单元。

B、0000:005FH C、0000:0017H D、0000:001BH

)

D、OR AL, AL

B、CMP AX, BX C、SHL AX, 1

C )。

D、类型号

B、请求信号 C、状态端口

B、INTR中断 C、单步中断 D、断点中断

B、指令 C、伪指令 D、宏指令

44.一字节的压缩BCD码数 01110101 ,其真值是 ( D )。

A. 75H B. 01110101B C. 115 D. 75

45. 8086系统中内存储器的地址空间为1M,而在进行I/O读写时,有效的地址线是( B )。

A.高16位 B.低16位 C.高8位 D.低8位

46.直接寻址方式中,要寻找的操作数位于 ( B )中。

A. 堆栈 B。 内存单元 C. 通用寄存器 D. 段寄存器

47.下列指令中正确的是 ( C ).

A. MOV DH,CX B. SHL BX,5 C. MOV [2000H],BX D. MOV [BX],[SI]

48.汇编语言中,可执行的指令位于 ( B )中。

A. 数据段 B.代码段 C. 附加段 D. 堆栈段

49. 下列传送控制方式中效率高,不占用CPU的是( A )。

A.DMA方式 B.查询方式 C.中断方式 D.同步方式

50. 8086中断系统中,每个中断向量占用 ( B )个字节单元。

A. 1 B. 4 C. 3 D. 2

51、CPU的输入/输出方式有 ( A )种。

A. 4 B. 1 C. 3 D. 2

52.下列指令中错误的是 ( B )。

A. MOV [SI],1000 B. MOV AX,[SI+DI] C. SUB BX,[DI+1000H] D. AND BP,[BI]

5

53. CPU与I/O设备间传送的信号有( D ),为区分这些不同类的信息,需通过不同的端口进行访问。

A、控制信息 B、状态信息 C、数据信息 D、以上三种都有

54. 组成一个完整的汇编语言源程序有哪些逻辑段?写出定义这些段的指令和执行后返回DOS的指令。

一个完整的汇编源程序应由数据段、代码段和堆栈段等组成。 各逻辑段的指令语句为: DATA SEGMENT ??

DATA ENDS STACK SEGMENT

??

STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK STA: ?? MOV AH, 4CH INT 21H CODE ENDS END STA

55. 什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法? 端口是输入/输出接口中的寄存器。CPU与输入/输出设备交换的信息有3类:数据信息、状态信息和控制信息。相应的端口是数据端口、状态端口和控制端口。 I/O端口编址方式有独立编址和存储器映像编址。

56、什么是系统的主机板?由哪些部件组成?

CPU、RAM、ROM、I/O接口电路以及系统总线组成的计算机装置称为“主机”,主机的主体则是主机板。主机板上主要有CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接口、各种跳线和一些辅助电路等硬件。

57、8086CPU的内部结构有何特点?由哪两部分组成?它们的主要功能是什么?

8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。

8086微处理器内部安排了两个逻辑单元,即执行部件EU和总线接口部件BIU。EU主要负责

6

指令译码、执行和数据运算,包括计算有效地址;BIU主要完成计算物理地址、从内存中取指令、实现指令规定的读/写存储器或外部设备等信息传输类操作。

58、8086CPU内部寄存器有哪几种?各自的特点和作用是什么?

CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。 通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。 控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前指令在代码段的偏移位置;FLAG用于反映指令执行结果或控制指令执行的形式。

为了实现寻址1MB存储器空间,8086CPU将1MB的存储空间分成若干个逻辑段进行管理,4个16位的段寄存器来存放每一个逻辑段的段起始地址。

59、解释逻辑地址、偏移地址、有效地址、物理地址的含义,8086存储器的物理地址是如何形成的?怎样进行计算?

逻辑地址:表示为段地址:偏移地址,书写程序时用到,一个存储单元可对应出多个逻辑地址;

偏移地址:是某一存储单元距离所在逻辑段的开始地址的字节个数。 有效地址:是指令中计算出的要访问的存储单元的偏移地址。

物理地址:是CPU访问存储器时用到的20位地址,是存储单元的唯一的编号。 物理地址计算公式:物理地址 = 段地址×10H+有效地址(或偏移地址)

60、8086系统中的存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么?

8086CPU将1MB的存储空间分成逻辑段来进行管理:每个逻辑段最小为16B。所以最多可分成64K个段;每个逻辑段最大为64KB,最少可分成16个逻辑段。各段的起始位置由程序员指出,可以彼此分离,也可以首尾相连、重叠或部分重叠。

4个16位的段寄存器用来存放每一个逻辑段的段起始地址:CS中为代码段的起始地址;DS中为数据段的起始地址;SS中为堆栈段的起始地址;ES中为附加段的起始地址。

60-1、画图说明微机存储系统是如何构造,以解决速度、容量、价格的矛盾。

采用分层结构:3级存储器:内存、Cacheh和外存;两个层次结

构:cache-内存层次和内存-外存层次 ② cache-内存层次,采用硬件手段解决速度问题 (3分) ③ 内存—外存层通过软件,硬件解决容量与价格问题 (3分) 从而提供了具有cache的高速度、外存的大容量和低价格的统一存储体系

7

CPU 高速缓存

61. 外设和内存间数据传送可以采用DMA方式,请简述DMA方式的特点、DMA传送方式的过程和应用场合。

直接在外设和存储器间进行数据传送,是一种不需要CPU干预也不需要软件介入,硬件复杂。 1)CPU对DMA控制器做初始化工作,继续执行主程序,与外设并行工作。

2)外设准备好,发DMA请求;

3)DMAC向CPU发HRQ,CPU响应后,发HLDA; 4)DMAC接管总线控制权,发DMA响应;

5)发地址信息,发存储器写命令,把外设输入数据写到内存;

6)修改地址指针、计数器,检查传送是否结束;若未结束,循环传送;

7)若计数器为0,DMAC撤消HRQ,交还总线控制权,CPU使HLDA无效,收回总线控制权。 适用于高速、大批量的数据传送方式。

62. 8086中断向量表的内容是什么?存放在存储器的什么位置?说明中断类型号是2CH的中断向量存于哪个地址开始的4个主存单元之中,如果中断子程序的入口地址为5110H:2030H时,那么这4个主存单元分别存放什么内容?

8086中断向量表的内容是用以指示中断服务程序的入口地址。存放在存储器的0000:0000~0000:03FFH位置。中断类型号是2CH的中断向量存于0B0H地址开始的4个主存单元之中,如果中断子程序的入口地址为5110H:2030H时,那么这4个主存单元分别存放30H,20H,10H,51H?

63、在内存有一个由20个字节组成的数据区,其起始地址为1100H:0020H。计算出该数据区在内存的首末单元的实际地址。

逻辑地址1100H:0020H对应的物理地址为PA=1100H×10H+0020H= 11020H,即该数据区

8

主存储器 I/O控制电路 磁盘 光盘 辅助存储器 磁带 图6-1 存储系统的层次结构 在内存中的首单元的物理地址为11020H;因为存储空间中每个字节单元对应一个地址,所以20个字节对应20个地址,则该数据区在内存中的末单元的物理地址PA = 11020H+20D = 11020H+14H = 11034H。

64、已知两个16位的字数据268AH和357EH,它们在8086存储器中的地址分别为00120H和00124H,试画出它们的存储示意图。

【解答】存储示意图参见图1。

65、找出字符串“Pentium”的ASCII码,将它们依次存入从00510H开始的字节单元中,画出它们存放的内存单元示意图。

8AH 00120H 50H 00510H

26H 00121H 65H 00511H

00122H 6EH 00512H 00123H 74H 00513H 7EH 00124H 69H 00514H 35H 00125H 75H 00515H

6DH 00516H 图1 数据的存储 图2 字符的存储示意 示意

【解答】存储示意图参见图2。

66、简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式? 【解答】8086的指令格式由操作码和操作数字段组成。 操作码:要完成的操作。 操作数:参与操作的对象。

寻址:寻找操作数或操作数地址的过程。

寻址方式:指令中给出的找到操作数或操作数地址采用的方式。

8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址(其中前三种是操作数寻址、后一种是对端口寻址)。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。

67、分析下列指令的正误,对于错误的指令要说明原因并加以改正。 (1) MOV AH,BX (2) MOV [BX],[SI]

(3) MOV AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX

9

(5) MOV BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI] (7) MOV CS,AX (8) MOV DS,BP 【解答】

(1) MOV AH,BX

错误,寄存器类型不匹配,可改为MOV AX,BX (2) MOV [BX],[SI]

错误,两个操作数不能都为存储单元,可改为MOV BX,[SI]或MOV [BX],SI (3) MOV AX,[SI][DI]

错误,寻址方式中只能出现一个变址寄存器,可改为MOV AX,[BX][DI]。 (4) MOV MYDAT[BX][SI],ES:AX

错误,AX签不能有段跨越前缀,去掉ES:,改为MOV MYDAT[BX][SI],AX (5) MOV BYTE PTR[BX],1000 错误,1000超出字节空间存储范围

(6) MOV BX,OFFSET MAYDAT[SI] ;正确 (7) MOV CS,AX

错误,MOV指令CS不能做目的操作数,可改为MOV DS,AX (8) MOV DS,BP ;正确

注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。

68、写出能够完成下列操作的8086CPU指令。 (1) 把4629H传送给AX寄存器; (2) 从AX寄存器中减去3218H; (3) 把BUF的偏移地址送入BX中。 【解答】

(1) MOV AX,4629H (2) SUB AX,3218H (3) LEA BX,BUF

69、根据以下要求写出相应的汇编语言指令。

(1) 把BX和DX寄存器的内容相加,结果存入DX寄存器中;

(2) 用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存器中;

(3) 用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中;

(4) 用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中;

10

(5) 把数25H与(AL)相加,结果送回寄存器AL中。 【解答】 (1) ADD DX,BX (2) ADD AL,[BX][SI] (3) ADD 21B5H[BX],CX

(4) ADD WORD PTR [2158H],3160H (5) ADD AL,25H

70、执行完下列程序后,回答指定的问题。 MOV AX,0 MOV BX,2 MOV CX,50 LP:ADD AX,BX ADD BX,2 LOOP LP

问:(1) 该程序的功能是什么? 。 (2) 程序执行完成后,(AX)= 。 【解答】

(1)完成0到100间所有偶数求和的功能。 (2)2550

71.中断适用于何场合?8086的中断分为哪两大类?简述中断的处理过程。 中断传送用于小批量的数据输入/输出。

8086的中断分为外部中断和内部中断两大类。

中断处理由中断申请、中断响应、中断服务和中断返回4个过程组成。

72、软件中断和硬件中断有何特点?两者的主要区别是什么?

【解答】硬件中断由外部硬件产生,是由CPU外部中断请求信号触发的一种中断,分为非屏蔽中断NMI和可屏蔽中断INTR。

软件中断是CPU根据某条指令或者对标志寄存器的某个标志位的设置而产生的,也称为内部中断。通常有除法出错中断、INTO溢出中断、INT n中断、断点中断和单步中断等。 两者的主要区别:硬件中断由外部硬件产生,而软件中断与外部电路无关。

73、8237A DMA控制器有哪两种工作状态?其工作特点如何?

【解答】一种是系统总线的主控者,这是它工作的主方式。在取代CPU控制DMA传送时,它

11

应提供存储器的地址和必要的读写控制信号,数据是在I/O设备与存储器之间通过数据总线直接传递;另一种是在成为主控者之前,必须由CPU对它编程以确定通道的选择、数据传送的模式、存储器区域首地址、传送总字节数等。在DMA传送之后,也有可能由CPU读取DMA控制器的状态。这时8237A如同一般I/O端口设备一样,是系统总线的从设备,这是8237A工作的从方式。

74、试分析波特率和数据传输率的区别和联系。

【解答】波特率是指每秒传输字符的位数,单位为“位/秒”。

数据传输率为每秒传输的字符数,单位为“字符/秒”,每个字符包括起始位、数据位和停止位。

两者间的联系为:

波特率(位/秒)= 二进制位数/字符(位/字符)×数据传输率(字符/秒)

75、简要叙述常用的人机交互设备有哪几类?各自有何特点?在什么场合下使用? 【解答】连接在计算机上的人机交互设备主要有键盘、鼠标器、显示器、打印机等,能够完成各种常规信息的输入和输出。这些设备的输入输出是以计算机为中心,信息以二进制、十六进制码或ASCII码的形式进行传送。

键盘工作时要完成键开关状态的可靠输入、键的识别和将键值送给计算机等3项任务。鼠标是一种快速定位器,它可以方便地将光标准确定位在要指定的屏幕位置,是计算机图形界面人机交互必不可少的输入设备。显示器是计算机中用来显示各类信息以及图形和图像的输出设备,常用的有CRT显示器和LCD液晶显示器。CRT显示器一般采用15芯D形插座作为与CPU联系的接口电路,再通过显示卡与主机联接。打印机也是常用的输出设备,它将计算机中的各类信息打印到纸上,可以长期保存。

76、模拟量输入输出通道主要由哪几个部件组成?各部件的主要功能有哪些? 【解答】

(1)传感器:把外部的物理量转换成电流或电压信号。

(2)A/D转换器:是输入通道的核心部件,将电压表示的模拟量转换成数字量,并送计算机进行相应的处理。

(3)信号处理部件:放大传感器输出的信号,加入接滤波电路,滤去干扰安装在现场的传

12

感器及其传输线路的信号。

(4)多路开关:实际控制现场需要监测或控制的模拟量多于一个时,使用多路模拟开关轮流接通其中的一路,使多个模拟信号共用一个ADC进行A/D转换。

(5)采样/保持电路:A/D转换期间保持输入信号不变。转换开始之前,采样;转换进行过程中,向A/D转换器保持固定的输出(保持)。如果处理的是缓慢变化的模拟量,采样/保持电路可以省去不用。

(6)D/A转换器:将成数字量转换成模拟量输出。

77、接口电路的硬件一般由哪几部分组成? 接口电路的硬件一般由以下几部分组成:

(1)基本逻辑电路:包括命令寄存器、状态寄存器和数据缓冲寄存器,是接口电路中的核心(2)端口地址译码电路:实现设备的选择功能(3)供选电路:根据不同任务和功能要求而添加的功能模块电路。

78、微型计算机的接口一般应具备那些功能?

微机的接口一般有如下的几个功能:(1)执行CPU命令的功能:CPU将对外设的控制命令发到接口电路中的命令寄存器(命令口)中,在经分析去控制外设(2)返回外设状态的功能:通过状态寄存器(状态口)完成,包括正常 工作状态和故障状态(3)数据缓冲的功能:接口电路中的数据寄存器(数据口)对CPU与外 设间传送的数据进行中转(4)设备寻址的功能:CPU某个时刻只能和一台外设交换数据,CPU发出的地址信号经过接口电路中的地址译码电路来选中I/O设备(5)信号转换的功能:当CPU与外设的信号功能定义、逻辑关系、电平高低及工作时序不兼容时接口电路要完成信号的转换功能 (6)数据宽度与数据格式转换的功能:由于CPU处理的数据都是并行的,当外设采用串行传送方式时,接口电路就要完成串、并之间的转换,并进行数据格式的转换。

79、为什么要在CPU与外设之间设置接口?

在CPU与外设之间设置接口主要有4个原因:(1)CPU与外设二者的信号不兼容,包括信号线的功能定义、逻辑定义 和时序关系 (2)CPU与外设的速度不匹配,CPU的速度快,外设的速度慢(3)若不通过接口,而由CPU直接对外设的操作实施控制,会使CPU 处于穷于应付与外设打交道之中,大大降低CPU的效率(4)若外设直接由CPU控制,会使外设的硬

13

件结构依赖于CPU,对外设本身的发展不利。

80 .设计一个128KB 的存储器系统,需要用2K×1位RAM芯片几片,需几位片内寻址,至少需要几位高位地址译码,若系统为20位地址线,用全译码方式,需几位高位地址译码? 需要用512片,需11位片内寻址,至少需要6位高位地址译码,若系统为20位地址线,用全译码方式,需9位高位地址译码。

80-1、采用存储芯片2114组成

1024×8位RAM,每片2114是1K×4位,

有10根地址线和4根数据线。每片2114 的10根地址线正好满足整个存储系统存

储单元数量的要求,所以要进行字扩展,但2114只有4根数 据线,不能满足存储器位数要求,所以 还要进行位扩展,字位扩展如右图所示。

14

来自译码A9 ~ A0地址总线数D0据总线D7CS21141K×4 I/OCS21141K×4 I/O

81.试比较指令中断与子程序调用有什么异同?

CALL调用子程序只需要保护断点,即该指令的下一条指令的地址(段内调用只保护IP,段间调用要保护CS和IP);

中断调用子程序不但要保护断点(即该指令的下一条指令的CS和IP),还要保护标志寄存器FLAGS。

82.源程序经过MASM汇编过后,可生成OBJ文件和EXE文件,这两个文件的作用是什么? .obj文件是源文件经编译后的目标文件,.exe是连接了库文件后的可执行文件。 .obj文件不能执行,因为它们之间,以及它们与目标文件库(Library)之间有相互依靠的关系。所以把各个目标文件以及目标文件库连接起来,就生成了可执行程序。

83、什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法? (6分)

端口是输入/输出接口中的寄存器。CPU与输入/输出设备交换的信息有3类:数据信息、状态信息和控制信息。相应的端口是数据端口、状态端口和控制端口。 I/O端口编址方式有独立编址和存储器映像编址。

84、输入/输出接口电路有哪些寄存器,各自的作用是什么?

【解答】通常有数据输入、数据输出、控制和状态寄存器等。在CPU与外部设备之间进行数据传输时,各类信息写入接口中相应的寄存器,或从相应寄存器读出。CPU从数据输入寄存器和状态寄存器中读出数据和状态,但不能向其中写内容; CPU往数据输出寄存器和控制寄存器中写数据和控制信息,但不能从其中读内容。

15

85、相对于条件传送方式,中断方式有什么优点?和DMA方式比较,中断传送方式又有什么不足之处?

【解答】中断传送方式下,当外设要求交换数据时,向CPU发中断请求,CPU在执行完当前指令后,即可中断当前任务的执行,并根据中断源转入相应的中断处理服务程序,实现对请求中断外设的管理。CPU与外设实现了并行工作,大大提高了工作效率。

DMA方式是在存储器与外设间开辟一条高速数据通道,使外设与内存之间直接交换数据,不需要CPU的干预。

86.用符号定义语句如下:(4分)

VAR1 DB 2,3,4,60 VAR2 DB 0 VAR3 DW 50 DUP(?) M EQU LENGTH VAR3

L

EQU VAR2 – VAR1

问L 的值是 4 ,M的值是 50 。

87. 当外设需向内存输入时以DMA方式传送数据,试叙述外设提出请求和CPU的响应过程。

HOLD DREQ DMAC CPU

8237 8086

HLDA DACK 硬 盘 ① I/O设备接口向DMA控制器发出请求信号,请求DMA传送。

② DMA控制器接到I/O设备请求后,向CPU发出总线请求信号,请求取得总线控制权。 ③ CPU在执行完当前总线周期后,响应请求,向DMA控制器发出总线响应信号;释放总

线的控制权,暂停执行主程序,处于等待状态。由DMA控制器取得对总线的控制权。 ④ DMA控制器接到CPU总线响应信号后,向I/O设备接口发出DMA响应信号。 ⑤ 由DMA控制器发出DMA传送所需的外设输入和存储器写控制信号。

⑥ DMA控制器内部的地址寄存器值加l,字节计数器值减1,如果计数器值不为0,则继

续下个地址单元的传送。

⑦ 当设定的字节数传送完成,结束DMA传送。DMA控制器释放对总线的控制权。CPU

重新获得总线的控制权,于是主程序从中断了的当前指令的总线周期开始继续执行。

88.描述以下这段子程序中的各语句功能和该子程序的总体功能

16

GETNUM PROC ;定义过程GETNUM

XOR BL, BL ;BL清0

GGG: MOV AH,01H ;1号功能,键盘输入

INT 21H ;执行DOS功能调用

CMP AL,0DH ;是回车吗? JZ PPP ;是结束

SUB AL,30H ;把ASCII码变成数字 CMP AL,0AH ;是A~F吗?

JB GETS ;是0~9直接送入寄存器

SUB AL,07H ;是A~F则减7 GETS: MOV CL,04H ;设置移位次数 SAL BL,CL ;左移4位

OR BL,AL ;高低4位拼成8位 JMP GGG ;继续键盘输入

PPP: RET ;子程序返回 GETNUM ENDP ;子程序结束

此子程序的总体功能是:从键盘输入8位二进制数放BL中。

89、程序阅读和分析 源程序如下: DATA SEGMENT

DA DB 2AH,6FH,33H,54H,15H,76H,4DH,38H

5CH,0AH,45H,10H,61H,38H,24H,65H

SDZ DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START : MOV AX,DATA MOV DS,AX LEA SI,DA MOV CX,15

MOV DL,[SI] ; 1) ADD SI,01H ; 2)

LP : CMP DL,[SI]

JNC NEXT ; 3) MOV DL,[SI] ; 4) NEXT: INC SI

LOOP LP ; 5) MOV SDZ,DL

17

MOV AH,4CH

INT 21H CODE ENDS

END START

(1) 结合本程序的具体功能,在划线处写出可执行指令的执行目的。 1)将第一个数据送到DL中

2)地址指针SI增1,指向第二个数据 3)DL大于等于(SI),程序转 NEXT 处 4)DL 小于(SI),则将(SI)中的大数送到DL 中 5)16个数据没有比较完,返回到 LP处,继续比较 (2)简述本程序段的功能。(5分)

从指定数据区中的16个字节数据中找出最大的数76H,并将最大数76H存放到内存单元 SDZ

中,即( SDZ ) = 76H。

90、程序阅读和分析 源程序如下:

DATA SEGMENT DAT1 DB 2,-1,7,-5,8,-3,9 COUNT EQU $-DAT1 RS DB ? DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV BX,OFFSET DAT1 MOV CX,COUNT

XOR DL,DL ;1) LOOP1: MOV AL,[BX] ;2) CMP AL,0

JGE NEXT ;3)

18

INC DL

NEXT: INC BX

LOOP LOOP1 ;4) MOV RS,DL ;5) MOV AH, 4CH INT 21H CODE ENDS

END START

(1)结合本程序的具体功能,在划线处写出指令性语句的执行目的。

1)DL清零

2)将内存数据送到AL中

3)AL大于等于0,程序转 NEXT 处

4)10个数据没有比较完,返回到 LOOP1处,继续比较 5)小于0的个数存入RS

(2)简述整个程序的功能。(3分)

统计指定数据区中的10个字节数据中的负数个数,并将其存放到RS中。

(3)程序执行完以后,RS= 3 。(2分)

91.编写一段完整的、运行后返回DOS的源程序,要求能够从键盘读入一行长度不超过80的字符串STRING。在该字符串中寻找空格符,若找到则显示‘FOUND’,若找不到则显示‘NO FOUND’。

(要求写出完整的数据段,代码段和算法源程序)

完整的源程序如下:

data segment

String db 80

db ?

db 80 dup( ?)

B1 db ‘FOUND$’ B2 db ‘NO FOUND$’ data ends

19

code segment assume cs:code,ds:data start: mov ax,data mov ds,ax

mov dx,offset string mov ah,0ah int 21h mov bx,offset string+2 mov cx,[offset string+1] lop: mov al,[bx]

cmp al,’ ’ jz fd inc bx loop lop jmp nofd

fd: mov dx,offset B1 mov ah,9 int 21h jmp end

nofd:mov dx,offset B2 mov ah,9 int 21h end: mov ah,4ch int 21h code ends end start

92 . 编制程序:打印用“*”号组成的三角形

题目要求:从键盘输入3至9之间的数字,用“*”号组成一个三角形图案。如输入数字6,屏幕上应显示如下图案。 ****** ***** **** *** ** *

20

(提示:回车符CR的ASCII码值为0DH;LF换行的ASCII码是0AH ;0-9的ASCII码值分别为30H-39H。)

正确的源程序应为如下语句: CODE

SEGMENT

ASSUME CS:CODE START: MOV AH,01H INT 21H CMP AL,33H JB START CMP AL,39H JA START SUB AL,30H MOV CL , AL

MOV CH,0 MOV DL,0DH

MOV AH , 02H

INT 21H MOV DL,0AH

INT 21H PUSH CX

AA:

BB: MOV DL,‘*’ MOV AH , 02H INT 21H

LOOP BB

MOV DL,0DH

INT 21H

93\\ 从内存存放的10个无符号字节整数数组中找出最小数,将其值保存在AL寄存器中。

汇编语言源程序如下:

21

DATA DATA STACK STACK CODE START:

SEGMENT ;定义数据段 BUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,FFH ;定义数据区 CN EQU $-BUF ENDS

SEGMENT ;定义堆栈段 STA DB 10 DUP(?)

TOP EQU $-STA ENDS

SEGMENT ;定义代码段 ASSUME CS:CODE,DS:DATA,SS:STACK

PUSH DS ;汇编开始

XOR AX,AX ; 这条指令在程序中很常见,一般有两个功能(见备注)

PUSH AX

MOV AX,DATA

MOV DS,AX ;初始化DS MOV BX,OFFSET BUF MOV CX,CN DEC CX MOV AL,[BX] INC BX

LP: CMP AL,[BX] ;两数比较 JBE NEXT NEXT: CODE

备注:

MOV AL,[BX] INC BX DEC CX JNZ LP

MOV AH,4CH INT 21H ENDS

;若(AL)<[BX],转NEXT ;将较小数存入AL中

;返回DOS

1、将AX清零; 2、将CF标志位也清零。

也就是说相当于以下两条指令:

MOV ax,0 CLC可用AND AX,0之类的指令代替,不过XOR AX,AX指令比AND AX,0指令占存储空间要小,执行速度更快,因此更常用。 XOR AX,AX

XOR是异或操作符,它的输出规则为异则输1,否则输0,AX与AX8个位当然都是一样,即全部输出为0,同样也可达到AX清零目的.

不过现在一般书上都是用XOR AX,AX实现清零操作..因为在CPU中位操作指令是要比算术操作指令要快.

22

94、编制程序完成求1+2+3+??+N的累加和,直到累加和刚超过1000为止, 统计被累加

的自然数的个数送CN单元,累加和送SUM单元。

该题的循环次数预先是不确定的,只能按照循环过程中的某个特定条件来决定循环

是否继续执行。可通过测试条件是否成立来实现对循环的控制。 程序设计如下。

DATA SEGMENT SUM DW ? CN DW ? DATA CODE

ENDS SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AX,0 MOV BX,0 LP:

;初始化DS ;0送AX ;0送BX

INC BX ;BX加1

ADD AX,BX ;求累加和

CMP AX,1000

;比较

;结果≤1000转LP

JBE LP

MOV SUM,AX MOV CN,BX

;送结果

23

MOV AH,4CH INT 21H CODE

ENDS

;汇编结束 ;返回DOS

END START

95、大写字母转换为小写字母

编程要求:

从键盘读入一行长度不超过50个的用字符&结束的字符串。将其中的所有大写字母转换为小写字母,而保持其他字母不变,统计出需转换的字母的个数,并存放在rs单元中。

源程序如下: Data segment

BUF db 50 db ? db 50 dup( ?) rs db ? data ends code segment

assume cs:code,ds:data

start:

mov ax,data mov ds,ax

24

mov dx,offset BUF ;dx 指向字符串首地址 mov ah,0ah ;键盘输入到缓冲区 int 21h

xor dl,dl ;dl清零,计数清零

mov bx,offset BUF+2 ;取键入的第一个字符送bx

lop:

mov al,[bx] cmp al,’&’

jz stp cmp al,'a'

jb next cmp al,'z'

ja next add al,20h

inc dl next: inc bx

jmp lop stp:

mov rs,dl mov ah,4ch

int 21h

code ends

;等于’&’转stp ;小于'A'转next ;大于'Z'转next

; 大写字母的ASCII码加20h,则转换为小写字母 ;dl+1,计数加1

;(bx)+1送(bx) ; 转lop

;dl送rs ;返回DOS 25

end start ;运行结束

26

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

Top