当前位置:文档之家› 微机原理总基础知识

微机原理总基础知识

微机原理总基础知识
微机原理总基础知识

习题一

1.1 电子计算机分成几代?各代计算机有那些特点?

解:大体上可以分为五代(电子管、晶体管、集成电路、VLSI,以及智能超级计算机时代),但是第五代计算机的定义尚未统一,也有第六代计算机的说法。

1.2

电子计算机有那些特点?有那些主要的应用?

解:速度快、精度高、具有记忆与逻辑判断能力、自动执行程序,交互性能好,多种信息表达方式,等等。

主要应用包括:科学计算、自动控制、信息处理、辅助设计、办公自动化、娱乐教育、通讯、电子商务,等等。

1.3 微型计算机与大中型计算机的主要区别是什么?

解:微型计算机广泛采用高集成度的器件,尽量做到小型化,以便家庭、办公室和移动便携的商业应用。

1.4 当前微型计算机的发展趋势是什么?

解:(1)发展高性能的32位微处理器;(2)发展专用化的单片微型计算机;(3)发展带有软件固化的微型计算机;(4)发多微处理机系统和计算机网络;(5)充实和发展外围接口电路。

1.6 为什么计算机采用二进制作为运算的基础?为什么计算机中同时又采用十进制和十六进制表示数字?

解:二进制数的运算简单且易于进行逻辑判断,与此相对应的两电平数字电路也容易实现且工作可靠。采用十六进制是为了简化表达,因为一位十六进制数字等于四位二进制数字。采用十进制是为了与常人的思维方式兼容,便于一般人员使用计算机。

1.7 二进制数字与十六进制数字之间有什么关系?

解:一位十六进制数字等于四位二进制数字。例如1010B用十六进制表示即为0AH

1.8 什么是模?钟表系统中小时、分钟、秒计数的模各是多少?

解:模数从物理意义上讲,是某种计量器的容量。在计算机中,机器表示数据的字长是固定的。对于n位数来说,模数的大小是:n位数全为1,且最末位再加1。

小时的模是12,分钟的模是60,秒的模是60。

1.9 计算机中为什么大都采用补码表示数据?它有什么优点?

解:数的原码表示形式简单,适用于乘除运算,但用原码表示的数进行加减法运算比较复杂,引入补码之后,减法运算可以用加法来实现,从而简化机器内部硬件电路的结构,且数的符号位也可以当作数值一样参与运算,因此在计算机中大都采用补码来进行加减法运算。而且用补码表示数据,0就只有一种表示方法。

1.10 什么是ASCII码?它能表示多少信息?

解:ASCII码英文全称America Standard Code for Information Interchange,中文意思:美国信息交换标准码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII 码。第0~32号及第127号(共34个)是控制字符或通讯专用字符,第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。

1.11 什么是计算机发展中的“摩尔定律”?

解:30多年前,37岁的美国科学家戈登?摩尔在一本杂志上发表了一篇文章,大胆提出了后来为世人称之为"摩尔定律"的论述。摩尔在文中提出了这样的观点:处理器(CPU)的功能和复杂性每年(其后期减慢为18个月)会增加一倍,而成本却成比例地递减。

1.12 分别用二进制、八进制和十六进制表示下列十进制数据:

(1)100 (2)200

(3)1000 (4)10000

解:(1)1100100,144,64

(2)11001000,310,C8

(3)1111101000,1750,3E8

(4)10011100010000,23420,2710

1.13 将下列十进制数转换为二进制数:

(1)175 (2)257

(3)0.625 (4)0.156250

解:(1)10101111(2)100000001(3)0.101(4)0.00101

1.14 将下列二进制数转换为BCD码:

(1)1101 (2)0.01

(3)10101.101 (4)11011.001

解:(1)00010011(2)0.00100101

(3)00100001.011000100101

(4)00100111.000100100101

1.15 将下列二进制数分别转换为八进制数和十六进制数:(1)10101011 (2)1011110011

(3)0.01101011 (4)11101010.0011

解:(1)253,AB(2)1363, 2F3(3)0.326,0.6B(4)352.14,EA.3 1.16 分别选取字长为8位和16位,写出下列数据的原码、反码。(1)X= +31 (2)Y= -31

(3)Z= +169 (4)W= -169

解:(1)00011111,00011111;0000000000011111,0000000000011111 (2)10011111,11100000;1000000000011111,1111111111100000 (3)0000000010101001,0000000010101001

(4)1000000010101001,1111111101010110

1.17 分别选取字长为8位和16位,写出下列数据的原码、补码。(1)X= +65 (2)Y= -65

(3)Z= +129 (4)W= -257

解:(1)01000001,01000001;0000000001000001,0000000001000001 (2)11000001,10111111;1000000001000001,1111111110111111 (3)0000000010000001,0000000010000001

(4)1000000100000001,1111111011111111

1.18 已知数的补码形式表示如下,分别求出数的原码与真值。

(1)[X]补= 0 .10011 (2)[Y]补= 1 .10011

(3)[Z]补= FFFH (4)[W]补= 800H

解:(1)0.10011,0.59375

(2)1.01101,-0.40625

(3)801H,-1

(4)800H,-0

1.19 如果将FFH与01H相加,会产生溢出吗?

解:不会(FF=-1,-1+1=0)

1.20 选取8位字长,分别用补码计算下列各式,并且判断是否有进位及溢出?

(1)01111001+01110000 (2)-01111001-01110001

(3)01111100-01111111 (4)-01010001+01110001 解:(1)11101001 最高有效位有进位,符号位无进位,有溢出(2)00010110 最高有效位无进位,符号位有进位,有溢出

(3)11111101 最高有效位无进位,符号位无进位,无溢出

(4)00100000 最高有效位有进位,符号位有进位,无溢出

1.21 用16位补码计算下列各式,并判断结果是否有进位及溢出:(1)1234+5678H (2)8888H-9999H

(3)-3456H-8899H (4)-7788H+0FFFFH

解:(1)68ACH,最高有效位无进位,符号位无进位,无溢出

(2)8001H, 最高有效位有进位,符号位有进位,无溢出

(3)4311H,最高有效位有进位,符号位有进位,无溢出

(4)0879H,最高有效位无进位,符号位有进位,有溢出

1.22 分别写出用下列表示方法所能够表示的有符号和无符号数据的范围:

(1)8位二进制(2)10位二进制

(3)16位二进制(4)32位二进制解:(1)-128--+127,0—255

(2)-512--+511,0—1023

(3)-32768--+32767,0—65535

(4)-2147483648--+2147483647,0--4294967296

1.23 分别写出下列字符串的ASCII码:

(1)10abc (2)RF56 (3)Z#12 (4)W=-2

解:(1)00110001001100000110000101100010

(2)01010010010001100011010100110110

(3)01011010001000110011000100110010

(4)01010111001111010010110100110010

1.24 写出下列数字所代表的无符号数、有符号数和ASCII码:(1)89H (2)48H

(3)1234H (4)8899H

解:(1)137,-9,0011100000111001

(2)72,+72,0011010000111000

(3)4660,+4660,00110001001100100011001100110100

(4)34969,-2201,00111000001110000011100100111001

1.25 已知[x+y]补=7001H,[x-y]补=0001H,试求[2x]补,[2y]补,[x]补,[y]补,x和y。

解:7002H,7000H,3801H,3800H,3801H,3800H

1.26 对于字长为24位和32位的二进制补码,分别写出其数据的表示范围的一般表达式。

各自所能够表示的负数的最小值与正数的最大值是多少?

解:-2 -- +2 -1,-8388608,+8388607

-2 -- +2 -1,-2147483648,+2147483647

1.27 将下列十进制数转换为24位(8位阶符阶码+16位符号及尾数)浮点数:

(1)+8.5 (2)-4.825

(3)12.48 (4)-8800

解:(1)00000100 0100010000000000

(2)00000011 1100110100110011

(3)00000100 0110001111010111

(4)00001110 1100010011000000

1.28 设二进制浮点数的阶码为3位、阶符1位,尾数为6位、尾符1位,分别将下列各数

表示成规格化的浮点数:

(1)1111.0111B (2)-1111.10101B

(3)-12/128 (4)189/64

解:(1)010******** (2)010********

(3)10111110000 (4)00100101111

习题二

2.1 典型的“与”门、“或”门与“非”门是用什么电路实现的?解:可以用简单的二极管和三极管实现(详见电子技术基础教材)。2.3 试利用三种基本门电路设计Y=A?B?C的逻辑电路。

2.4 什么是三态门?什么情况下需要使用三态门?试分析三态门的工作原理。

解:高电平,低电平,高阻态称为三态。可以具备这三种状态的门器件就叫做三态门。

2.5 试利用3-8译码器74LS138设计一个4-16译码器。

解:

2.6 组合逻辑电路与时序逻辑电路有什么区别?各自的用途是什么?解:组合逻辑电路可以有若个输入变量和若干个输出变量,其每个输出变量是其输入的逻辑函数,其每个时刻的输出变量的状态仅与当时的输入变量的状态有关,与本输出的原来状态及输入的原状态无关,也就是输入状态的变化立即反映在输出状态的变化。

时序逻辑电路任意时刻的输出不仅取决于该时刻的输入,而且还和电路原来的状态有关。也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能。

2.7 布尔代数和真值表是怎样的关系?各自的特点是什么?

解:布尔代数亦称开关代数或逻辑代数,可写成下述表达式:Y=f(X,Y,Z, …)。它有两个特点:1、其中的变量X,Y,Z, …等都只有两种可能的数值:0和1。2、函数f只有三种基本逻辑操作:“与”、“或”及“非”。

真值表又称功能表,它是指由自变量的各种取值组合而成,反映与函数值之间对应关系的一种表格。函数取值为“1”的项数,表明函数运算多项式中的项数。

从真值表写出布尔代数式的方法可以用下面两段话来描述:

⑴写布尔代数式先看真值表中结果为1的项,有几项就有几个“或”项;

⑵每一项的各因素间是“与”关系。写该项时每个因素都写上,然后酌情取“反”。至于哪个因素要取反,要看该因素在这项里是否是“0”状态,是“0”状态则取“反”,否则不取“反”。

2.8 简述TTL电路和CMOS电路的异同之处和各自的特点。

解:TTL和CMOS电路比较:

1)TTL电路是电流控制器件,而CMOS电路是电压控制器件。

2)TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。

CMOS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。

CMOS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。

3)CMOS电路的锁定效应:

CMOS电路由于输入太大的电流,内部的电流急剧增大,除非切断电源,电流一直在增大。这种效应就是锁定效应。当产生锁定效应时,CMOS的内部电流能达到40mA以上,很容易烧毁芯片。

特点:

1. TTL逻辑电平即Transistor-Transistor Logic。最小输出高电平VOHmin:

2.4V ,输出低电平VOLmax:0.4V。在室温下,一般输出高电平是

3.5V 输出低电平是0.2V。最小输入高电平VIHmin:2.0V ,最大输入低电平VILmax:0.8V ;它的噪声容限是0.4V。

2. CMOS逻辑电平即Complementary metal-oxide-semiconductor 。逻辑电平电压接近于电源电压,0逻辑电平接近于0V。而且具有很宽的噪声容限。

2.9 请列出常用的TTL组合逻辑电路型号和CMOS组合逻辑电路型号。解:TTL组合逻辑电路型号:

5400/7400系列是最流行的TTL集成器件,如:74--、74S--、74LS--、74AS--、74ALS--、74F--。

CMOS组合逻辑电路型号:

4000系列(前缀为MC的产品,则标为MC14000),40000系列为互补场效应管系列;54/74HC,54/74HCT,54/74AHC,54/74AHCT及54/74HCU 系列为高速CMOS电路。

2.10 为什么常用数字电路中有2-4译码器和3-8译码器,却没有1-2译码器?

解:用反相器即可完成1-2译码器的功能。

2.11 电子计算机主要包括哪几个组成部分?其基本功能是什么?解:电子计算机主要包括输入设备、输出设备、存储器、运算器和控制器。

输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。

输出设备把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出。

存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

控制器是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

2.12 半加器与全加器之间的主要区别是什么?

解:半加器电路要求有两个输入端,用以两个代表数字(A0,B0)的电位输入;有两个输出端,用以输出总和S0及进位C1。从真值表得出布尔代数式:

C1=A0×B0,S0=A0⊕B0

可以用“与门”及“异或门”(或称“异门”)来实现真值表的要求。全加器电路的要求是:有3个输入端,以输入Ai,Bi和Ci,有两个输出端,即Si及Ci+1。布尔表达式如下:

Si = Ai⊕Bi⊕Ci

Ci+1 = Ai Bi + Ai Ci + Bi Ci

故Si可用“异或门”来实现,进位Ci+1可用3个“与门”及一个“或门”来实现。

2.13 判断溢出的方法有几种?各自有何特点?在电路中如何实现?解:设:被操作数为:[X]补=Xs,X1X2…Xn

操作数为:[Y]补=Ys,Y1Y2…Yn

其和(差)为:[S]补=Ss,S1S2…Sn

⑴采用一个符号位

采用一个符号位检测溢出时,当Xs=Ys=0,Ss=1时,产生正溢;当Xs=Ys=1,Ss=0时,产生负溢。

溢出判断条件为:

溢出=Ss+Xs Ys

⑵采用进位位判断

两数运算时,产生的进位为:Cs,C1C2…Cn,其中:Cs为符号位产生的进位,C1为最高数值位产生的进位。

两正数相加,当最高有效位产生进位(C1=1)而符号位不产生进位(Cs=0)时,发生正溢;两负数相加,当最高有效位不产生进位(C1=0)而符号位产生进位(Cs=1)时,发生负溢。

故溢出条件为:溢出=Cs⊕C1

⑶采用变形补码(双符号位补码)

在双符号位的情况下,把左边的符号位Ss1叫做真符,两个符号位都作为数的一部分参加运算。这种编码又称为变形补码。

双符号位的含义如下:

Ss1Ss2=00 结果为正数,无溢出

Ss1Ss2=01 结果正溢

Ss1Ss2=10 结果负溢

Ss1Ss2=11 结果为负数,无溢出

溢出条件为:溢出=Ss1⊕Ss2

2.14 什么是锁存器?它在计算机的电路中有什么作用?

解:锁存器是一种存储逻辑信号的电路,由触发器构成,它的输出端

有输出使能控制,它可以使输出状态不随输入端状态的变化而改变,处在保持状态。

它把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。

2.15 什么是ALU?它在计算机中起什么作用?

解:ALU(Arithmetic Logical Unit)计算机的中央处理器(CPU)中的算术与逻辑单元;运算器。

主要负责执行所有数学与逻辑功能。

2.16 微处理器内部是由哪些主要部件所组成的?

解:CPU的内部结构可分为控制单元、逻辑单元和存储单元三大部分。2.17 简述冯?诺依曼计算机的体系结构与工作原理。

解:工作原理:存储程序(或程序存储)。

体系结构:

1.计算机完成任务是由事先编号的程序完成的;

2.计算机的程序被事先输入到存储器中,程序运算的结果,也被存放在存储器中。

3.计算机能自动连续地完成程序。

4.程序运行的所需要的信息和结果可以通输入\输出设备完成。

5.计算机由运算器、控制器、存储器、输入设备、输出设备所组成;2.18 计算机中的三种总线分别是什么?控制总线传输的信号大致有哪些?

解:地址总线、数据总线和控制总线。

控制总线传输控制信号和状态信号,使得计算机各部分协调工作。2.19 微处理器、微型计算机与微型计算机系统有何区别?

解:微处理器:一般也称中央处理器(CPU),是本身具有运算能力和控制功能,是微型计算机的核心。

微型计算机:由CPU、存储器、输入输出接口电路和系统总线构成。

微型计算机系统:以微型计算机为主体,配上系统软件和外部设备以后,就成为了计算机系统。

2.20 微型计算机的分类方法有几种?可以分为几个类别?

解:1. 按CPU字长分类:微型计算机按字长可以分为:8位机、16位机、32位机、64位机。

2. 按结构分类:按结构可以分为:单片机,单板机,多板机。

3. 按用途分类:按用途可分为:工业控制机,数据处理机。

4. 按CUP型号分类:按CPU的型号可以分为:286机、386机、486机、Pentium。

习题三

3.1 8086 CPU有多少根数据线和地址线?它能寻址多少内存单元和I/O端口?

8088 CPU又有多少根数据线和地址线?为什么要设计8088 CPU?

解:16,20,1M

8,20,为了方便与8位外部接口或设备相连。

3.2 8086 CPU按功能可以分为哪两大部分?它们各自的主要功能是什么?

解:8086微处理器从功能结构上可以划分为执行部件EU(Execution Unit)和总线接口部件BIU (Bus Interface Unit)两大部分.

总线接口部件具有下列功能:物理地址的形成、预取指令、指令队列排队、读/写操作数和总线控制。

指令执行部件的功能是进行指令译码并执行指令。

3.3 什么是微处理器的并行操作功能?8086 CPU是否具有并行操作功能?

在什么情况下8086的执行单元EU才需要等待总线接口单元BIU 提取指令?

解:并行操作是同时完成取指/操作数和执行指令操作,有。

在遇到系统复位或执行转移指令等特殊情况,指令队列被刷新时,EU 才需要等待BIU进行取指操作。或者在EU需要操作数而BIU正忙时,EU需要等待BIU执行完当前的操作,再去取操作数,等到EU得到操作数以后,才能进行这条指令的执行操作。

3.4 逻辑地址和物理地址有何区别?段加偏移的基本含义是什么?解:逻辑地址也称相对地址或虚拟地址,它是目标程序中的地址。物理地址也称绝对地址或实地址,它是物理存贮器的单元地址。物理地址=段基地址×16+偏移地址。

3.5 基址指针BP和堆栈指针SP在使用中有何区别?

解:BP则是用来存放位于堆栈段中的一个数据区基址的偏移地址的,称作基址指针寄存器。SP给出栈顶的偏移地址,称为堆栈指针寄存器。3.6 段地址和段起始地址是否相同?两者是什么关系?解:段地址为段的起始单元的物理地址(低4位一般为0)除以16的结果。

段起始地址为段的起始单元的物理地址,它必须能被16整除。

段地址=段起始地址/16

3.7 8086 CPU一般使用哪个寄存器来保存计数值?

解:CX

3.8 寄存器IP的用途是什么?它提供的是什么信息?

解:用于微处理器在程序中顺序寻址代码段中的下一条指令。

给出接着要执行的指令在代码段中的偏移。

3.9寄存器FLAGES的用途是什么?它提供的是什么信息?

解:反映处理器的状态和运算结果的某些特征。

进位标志,零标志,符号标志,溢出标志,奇偶标志,辅助进位标志,方向标志,中断允许标志,追踪标志

3.10 对于数字0,对应的零标志是否为1?

解:不是,零标志是用于反映运算结果的。

3.11 在实模式下,对于如下段寄存器内容,写出相应的段起始地址和结束地址:

(1) 1000H (2) 1234H

(3) E000H (4) AB00H

解:(1)10000H~1FFFFH (2)12340H~2233FH

(3)E0000H~EFFFFH (4)AB000H~BAFFFH

3.12 在实模式下,对于如下的CS:IP组合,写出相应的存储器地址:(1) 1000H:2000H (2) 2400H:1A00H

(3) 1A00H:E000H (4) 3456H:AB00H

解:(1)12000H (2)25A00H (3)28000H (4)3E060H

3.13 什么是总线周期?微处理器在什么情况下才执行总线周期?

解:把执行外部总线对存储器或I/O端口进行一次信息的输入或输出所需要的时间

称为总线周期。

①在指令的执行过程中,根据指令的需要,由执行单元EU,请求BIU 执行一个总线周期。

②当指令队列寄存器已经空出两个字节,BIU必须填写指令队列的时候。3.14 一个基本的总线周期由几个状态组成?在什么情况下需要插入等待状态?

解:至少由4个状态组成,分别成为T1,T2,T3,T4.

在总线周期的T3和T4之间插入一些必要的等待状态

3.15 什么叫做非规则字?微处理器对非规则字的存取是如何进行的?

解:其低位字节可从奇数地址开始,这种方式为非规则存放,这种存放的宇为非规则字

若存放的数据为8位,则将它们按顺序进行存放;若存入的数据为一个16位的字,则将字的最高字节存于高地址单元,低位字节存于低地址单元;若存放的数据为32位的双字(这通常是指地址指针数据),则将地址指针的偏移量(字)存于低地址的字单元中,将地址指针的段基址(字)存于高地址的字单元中。对非规则字的存取需要两个总线周期。

3.16 什么是存储器的分体结构?用什么信号来实现对两个存储体的选择?

解:1M字节的存储空间分成两个512K字节的存储体,一个是偶数地址存储体,其数据线与系统总线高8位相连,用BHE=0作为选通信号;一个是奇数地址存储体。其数据总线与系统总线低8位相连,用A0=0作为选通信号

两个存储体采用字节交叉编址方式

3.17 为什么8086微处理器要采用分体结构?而8088微处理器不采用分体结构?

解:8086是16位数据总线,故在组织1MB的存储器时,被分成两个512KB的存储体,分别叫做高位库和低位库。高位库与8086数据总线中的D15~D8相连,库中每个单元的地址均为奇数;低位库与数据总线中的D7~D0相连,库中每个单元的地址均为偶数。

8088因为外中数据总线为8位,因此,它所对应的1MB的存储空间是一个不分高位库和低位库的单一存储体。

3.18 堆栈的深度由哪个寄存器确定?为什么一个堆栈的深度最大为64KB?

解:堆栈的深度由SP值决定,由于16位的SP=FFFFH可最大寻址64KB,故深度最大为64KB。

3.19 在实模式下,若SS=1000H,SP=2000H,AX=3000H,写出执行PUSH AX指令后SS、

SP和相应的堆栈中的内容。

解:SS=1000H SP=1FFEH

(2000H)=30H (1FFFH)=00H

3.20 在实模式下,若SS=2200H,SP=1100H,写出执行POP AX指令后SS、SP的内容。

解:SS=2200H SP=1102H

3.21 微处理器的WR ̄ ̄和RD ̄ ̄引脚信号各表示什么操作?

解:WR ̄ ̄写控制,有效时,表示CPU正在写出数据给存储器或I/O端口

RD ̄ ̄读控制,有效时,表示CPU正在从存储器或I/O端口读入数据3.22 微处理器的ALE信号有什么作用?

解:地址锁存允许有效时,表示复用引脚:AD7~AD0和A19/S6~A16/S3正在传送地址信息

3.23 微处理器的DT/R ̄信号有什么作用?它在什么情况下被浮置为高阻状态?

解:数据发送/接收,表明当前总线上数据的流向.

在DMA方式下,DT/R ̄被浮置为高阻状态

3.24 8086系统的最小模式和最大模式的区别是什么?是由什么引脚的信号决定的?

解:工作在最小模式时,是一个单处理器系统,所有总线控制信号有CUP直接产生。

工作在最大模式时,系统中除了主CPU外,还有其他协处理器,是一个多处理器系统,这时CPU仅向总线控制器8288提供状态信号S2 S1 S0,,而由8288产生所有总线控制信号,以支持构成多处理器系统。MN/MX

3.25 微处理器中为什么要使用堆栈这样的数据结构?

解:因为硬件和软件堆栈已经用于支持4个主要的计算领域:表达式计算,子程序返回地址存储,动态分配局部变量存储器和子程序参数传递。

习题四

4.1 简述存储介质和半导体存储器的基本分类情况。

解:存储器按存储介质分,有半导体存储器、磁存储器和光存储器。半导体存储器按工作方式分,有随机存取存储器(RAM)和只读存储器(ROM);RAM又可分为双极型半导体和单极MOS型;MOS型RAM还可以分为静态和动态的。ROM可分为掩膜ROM和可编程ROM,可编程ROM又分为可编程PROM,可擦除可编程EPROM和电可擦除可编程EEPROM。4.2 简述静态RAM与动态RAM的区别与各自的优缺点。

解:静态RAM是靠双稳态触发器来记忆信息的;动态RAM是靠MOS电路中的栅极电容来记忆信息的。动态RAM需要设置刷新电路。但动态RAM比静态RAM集成度高、功耗低,从而成本也低,适于作大容量存储器。所以主内存通常采用动态RAM,而高速缓冲存储器(Cache)则使用静态RAM。

4.3 简述掩模ROM、PROM、EPROM和EEPROM的主要特点和应用场合。解:MASK ROM价格便宜,但程序在出厂时已经固化,适合程序固定不变的应用场合。

OTP ROM的价格适中,同时又拥有一次性可编程能力,适合既要求一定灵活性,又要求低成本的应用场合,尤其是功能不断翻新、需要迅速量产的电子产品。

EPROM的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压。特点是具有可擦除功能,擦除后即可进行再编程,但是缺点是擦除需要使用紫外线照射一定的时间。

EEPROM的擦除不需要借助于其它设备,它是以电信号来修改其内容的,而且是以Byte为最小修改单位,不必将资料全部洗掉才能写入,彻底摆脱了EPROM Eraser和编程器的束缚。它的最大优点是可直接用电信号擦除,也可用电信号写入。

4.4 当前新型存储器都有哪些?今后的发展趋势如何?

解:铁电存储器(FeRAM),具有高速、高密度、低功耗和抗辐射等优点;磁性随机存储器(MRAM);相变存储器(OUM),优点在于产品体积较小、成本低、可直接写入(即在写入资料时不需要将原有资料抹除)和制造简单。

向更高密度、更大带宽、更低功耗、更短延迟时间、更低成本的主流DRAM技术方向发展。

4.5 存储器和CPU连接时应考虑哪几方面的问题?

解:存储器与CPU连接,要遵循三条总线对应连接的总原则,同时还要考虑:CPU总线的负载能力;CPU与存储器速度的配合问题;存储器的地址空间分配;读/写控制信号的连接;数据线的连接;地址线的连接与存储芯片片选信号的产生。

4.6 一片静态RAM芯片通常包含哪些引脚?这些引脚各起什么作用?解:A -A 是地址输入信号引脚;是芯片选择引脚;是写入启用引脚;V 是供电引脚;D 是数据输入引脚;D 是数据输出引脚;GND是接地引脚。有的SRAM还有OE引脚,功能同引脚相对,它让SRAM知道要进行读取操作而不是写入操作。

4.7 下列存储器各需要多少条地址线和数据I/O线?

(1)1K×8 (2)4K×4

(3)16K×1 (4)256K×8

解:(1)10条地址线,8条数据线

(2)12条地址线,4条数据线

(3)14条地址线,1条数据线

(4)18条地址线,8条数据线

4.8 分别用1K×4位16K×1位芯片构成64K×8位的存储器,各需要多少片芯片?

解:128;32

4.9 试为某8位微机系统设计一个具有16KB的ROM和48KB的RAM的存储器。ROM选用2716(2K*8),地址从0000H开始;RAM紧随其后,芯片采用6264(8K×8)。

4.10 某RAM芯片的引脚中有12根地址线,8根数据I/O线,该存储器芯片的容量为多大?若该芯片在系统中的起始地址为1000H,其结束地址是多少?

解:4K*8,5095H

4.11 某CPU有16根地址线(A0~A15),试分析下图中片选信号CS1 ̄ ̄、CS2 ̄ ̄所指定的存储器地址范围。

解:CS1 ̄ ̄:0000H-6FFFH,或者1000H-7FFFH,或者8000H-EFFFH

CS2 ̄ ̄: 0000H-6FFFH

4.12 试为8088CPU设计192K×8位存储器系统。其中程序区为64K ×8位,置于CPU寻址空间最高端,采用27256(32K×8位);数据区为128K×8位,采用62256(32K×8位),置于寻址空间最低端。写出地址分配关系,画出所设计的电路图。

解:

RAM: 00000-07FFFH ROM: 20000-27FFFH 08000-0FFFFH 28000-2FFFFH

10000-17FFFH

18000-1FFFFH

习题五

5.1 分别指出下列指令中源操作数和目的操作数的寻址方式。

(1) MOV BX,1000H (2) MOV BL,[BX]

(3) MOV BUF[BX],AX (4) MOV BX,[BP][SI]

(5) MOV [DI],DL (6) MOV AX,RESULT

解:(1)源:立即数寻址;目的:寄存器寻址

(2)源:寄存器间接寻址;目的:寄存器寻址

(3)源:寄存器寻址;目的:寄存器相对寻址

(4)源:基址变址寻址;目的:寄存器寻址

(5)源:寄存器寻址;目的:寄存器间接寻址

(6)源:直接寻址;目的:寄存器寻址

(7)源:寄存器寻址:目的:直接寻址;

(8)源:相对基址变址寻址;目的:寄存器寻址

5.2 设已知:(BX)=2000H,(SI)=120H,(DS)=1200H,(SS)=200H,(BP)=3000H,符号地址VARE=1000H。试回答在以下各种寻址方式下操作数存放于何处,如果是在存储单元中,则计算单元的物理地址是什么?

(1)使用BX的寄存器寻址(例如:MOV AX,BX)

(2)立即数寻址(例如:MOV AX,1234)

(3)使用BX的寄存器相对寻址(例如:MOV AX,[BX])

(4)直接寻址(例如:MOV AX,[1234])

(5)使用SI的寄存器间接寻址(例如:MOV AX,[SI])

(6)使用BP和SI的基址变址寻址(例如:MOV AX,[BP][SI])(7)使用BX和SI的相对基址变址寻址(例如:MOV AX,[BX][SI])解:(1)操作数在BX寄存器中;

(2)操作数在指令中;

(3)操作数在存储单元中,物理地址=15000H;

(4)操作数在存储单元中,物理地址=13000H;

(5)操作数在存储单元中,物理地址=12120H;

(6)操作数在存储单元中,物理地址=05120H;

(7)操作数在存储单元中,物理地址=15120H。

5.3 现有(DS)=2000H,(BX)=100H,(SI)=2H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=0B7H),(21203H)=65H。试指出下列各条指令单独执行后累加器中的内容是什么?

(1) MOV AX,1200H (2) MOV AX,BX

(3) MOV AX,[1200H] (4) MOV AX,[BX]

(5) MOV AX,1100H[BX] (6) MOV AX,[BX[SI]

(7) MOV AX,1100H[BX][SI] (8) MOV AL,[BX]

解:(1)(AX)=1200H;(2)(AX)=100H;(3)(AX)=4C2AH;(4)(AX)=3412H

(5)(AX)=4C2AH;(6)(AX)=7856H;(7)(AX)=65B7H;(8)(AX)=××12H

5.4 指出下列指令的错误是什么?

(1) MOV BL,AX (2) MOV [BX],[BP+SI]

(3) MOV CS,AX (4) MOV DS,1000H

(5) MOV BX,[SI][DI] (6) MOV [2000H],10

解:(1)类型属性不匹配;(2)两操作数都是存储单元;(3)把CS用作目的操作数

(4)立即数送段寄存器;(5)源操作数中两个均为变址寄存器;(6)类型属性不明确

5.5 设当前数据段寄存器的内容为1B00H,在数据段偏移地址为2000H开始的单元内,含有一个内容为0FF10H和8000H的指针,它们是一个16位变量的偏移地址和段地址,试写出把该变量装入AX的指令序列,并画出内存图。

解: LDS BX,[2000H]

MOV AX,[BX]

5.6 设当前(SP)=0100H,(AX)=2000H,(BX)=0B100H,试回答:执行指令 PUSH AX后,(SP)为多少?画出堆栈示意图。

再执行指令 PUSH BX 和 POP AX 后,(SP)为多少?画出堆栈示意图。

解:(1)执行 PUSH AX 后:(SP)=00FEH

(2)执行 PUSH BX 和 POP AX 后:(SP)=00FEH

5.7 要求从85号端口读入一个字节数据,然后到数据段首地址为1000H的表格中换取相应的数据码,再将该数据输出至3000号端口,试编写指令序列。

解: IN AL,85

MOV BX,1000H

XLAT

MOV DX,3000

OUT DX,AL

5.8 试编写将某十进制数字转换成七段代码的程序段。设该十进制数字存储在名为BCDKEY的字节变量中,要求将转换的结果送入RESULT 变量(十进制数字与相应七段代码的对应表如下)。

解: MOV AL,BCDKEY

MOB BX,DISPLAY

XLAT

MOV RESULT,AL

5.9 根据以下要求编写相应的指令:

(1)将AX寄存器和BX寄存器的内容相加,结果存入BX寄存器。(2)用增量指令使采用BX寄存器间接寻址的单元中的字节内容加1。(3)用BX寄存器和位移量300H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,结果送回该存储单元中。

(4)用寄存器BX和SI的基址变址寻址方式,把存储器中的一个字节与AH寄存器的内容相加,并保存在AH中。(5)采用合适的指令,将1000H单元中的字与1200H单元中的字相加,结果存入1000H单元。

解:(1) ADD BX,AX

(2) INC BYTE PTR[BX]

(3) ADD [BX+300H],CX

(4) ADD AH,[BX][SI]

(5) MOV BX,1000H

MOV AX,[1200H]

ADD [BX],AX

5.10设以下表达式中的变量名均为16位带符号数所在单元的地址,编写指令序列,完成下列运算(出发运算的余数舍去):

(W×Y)/(A+70)→X

(A-B×C)/(X-Y)→Z

解:(1) MOV AX,W

IMUL Y

MOV BX,A

ADD BX,70

IDIV BX

MOV X,AX

(2) MOV AX,B

IMUL C

MOV BX,AX

MOV CX,DX

MOV AX,A

CWD

SUB AX,BX

SBB DX,CX

MOV BX,X

SUB BX,Y

IDIV BX

MOV Z,AX

5.11 变量VARA1和变量VARA2已定义如下:

VARA1 DW 23A8H,0280H

VARA2 DW 0A210H,1248H

(1)将VARA1和VARA2单元中的对应字数据相加,结果存入VARA2指示的单元中

(2)将VARA1单元中的两个字作为双字和VARA2单元中的两个字组成的双字相加,结果存放在VRAR2单元中,双字的存放格式都是低位字在低地址单元、高位字在高地址单元中。

解:(1) MOV AX,VARA1

ADD VARA2,AX

(2) MOV AX,VARA1

ADD VARA2,AX

MOV AX,VARA1+2

ADC VARA2+2,AX

5.12 写出完成以下组合式BCD码计算的指令序列:

BCD1+BCD2-BCD3→DX

解: MOV AL,BCD1

ADD AL,BCD2

DAA

MOV DL,AL

MOV AL,BCD1+1

ADC AL,BCD2+1

DAA

MOV DH,AL

MOV AL,DL

SUB AL,BCD3

DAS

MOV DL,AL

MOV AL,DH

SBB AL,BCD3+1

DAS

MOV DH,AL

5.13 指出下列各条指令是否正确,如不正确,则指出其错在何处。(1) MOV CS,1000H (2) ADC BX,25H

(3) ADD [BX],20 (4) MUL AX,BL

(5) PUSH CS (6) MOV DX,2000H

(7) ADD [BX+SI],30H (8) POP CS

(9) INC [SI] (10)MOV [BX],[SI]

解:(1)错误(2)正确(3)错误(4)错误(5)正确

(6)正确(7)错误(8)错误(9)错误(10)错误5.14 用逻辑运算指令分别写出完成下列要求的指令:

将BX寄存器中的高4位清零。

将CX寄存器中的第0、1两位置1。

将AL寄存器的中间4位变反。

测试AX的最高位和次高位是否为0。

解:(1) MOV AX,0FFFH

AND BX,AX

(2) MOV AX,3

OR CX,AX

(3) MOV BL,3CH

XOR AL,BL

(4) MOV BX,3FFFH

TEST AX,BX

5.15 设(BX)=0A6H,(CL)=3,CF为1,试指出下列各条指令单独执行后BX中的值。

(1) SAR BX,1 (2) SHR BX,CL

(3) SHL BL,CL (4) SAL BL,1

(5) ROR BX,CL (6) RCL BX,CL

(7) ROL BH,1 (8) RCR BL,1

解:(1)(BX)=0053H (2)(BX)=0014H (3)(BX)=0030H (4)(BX)=004CH

(5)(BX)=0C014H (6)(BX)=0534H (7)(BX)=0A6H (8)(BX)=00D3H

5.16 已知有一32位的无符号数在(DX,AX)中,试编写指令序列,将该32位数左移4位,将低4位用0填补;将移出的高4位存入CH 的低4位中。

解: MOV CL,4

MOV CH,DH

SHR CH,CL

SHL DX,CL

MOV BL,AH

SHR BL,CL

SHL AX,CL

OR DL,BL

5.17 利用移位指令、传送指令和加法指令完成乘法运算(AX)×10。解: SAL AX,1

MOV BX,AX

MOV CL,2

SAL AX,CL

ADD AX,BX

5.18 试分别指出在下列3种条件下执行指令 SUB AX,BX 时,对标志位OF、CF、SF、ZF影响的情况:

(1)(AX)=14C6H ,(BX)=80DCH

(2)(AX)=42C8H ,(BX)=608DH

(3)(AX)=0D023H ,(BX)=9FD0H

解:(1) OF=1,CF=1,SF=1,ZF=0

(2) OF=0,CF=1,SF=1,ZF=0

(3) OF=0,CF=0,SF=0,ZF=0

5.19 在8086/8088指令系统中,哪些指令可以加重复前缀?重复前缀共有哪几种形式?它们的操作功能是什么?

解:可加重复前缀的指令有:MOVS、STOS、SCAS、LODS、CMPS;

重复前缀的形式有:REP、REPE/REPZ、REPNE/REPNZ

5.20 在一个名为STRING、长度为100字节的字符串中查找是否含有字符“$”,如果有则将第一次发现的“$”字符所在单元的偏移地址送入BX寄存器中;如果未曾找到,则将0FFFFH送入BX寄存器中。解: CLD

MOV AL,‘$’

LEA DI,STRING

MOV CX,100

REPNE SCASB

JNE ZER

DEC DI

MOV BX,DI

JMP STOP

ZER: MOV BX,0FFFFH

STOP: HLT

5.21 将2000H段中名为BUFST的缓冲区中长度为200个字节的数据串移到3000H段中名为DSTST的缓冲区中。编写两种采用不同指令实现该功能的程序段。

解:(1) MOV AX,2000H

MOV DS,AX

MOV AX,3000H

MOV ES,AX

MOV CX,200

CLD

LEA SI,BUFST

LEA DI,DSTST

REP MOVSB

HLT

(2) MOV AX,2000H

MOV DS,AX

MOV AX,3000H

MOV ES,AX

MOV CX,200

MOV SI,OFFSET BUFST

MOV DI,OFFSET DSTST

AGN: MOV AL,[SI]

MOV ES:[DI],AL

INC SI

INC DI

LOOP AGN

HLT

5.22 将1000段中名为DATSTR的字符串,向高地址方向平移20个字节,字符串的长度为45字节。

解: STD

MOV AX,1000H

MOV DS,AX

MOV ES,AX

LEA SI,DATSTR+44

LEA DI,DATSTR+64

MOV CX,45

REP MOVSB

HLT

5.23 用其它指令完成与下列指令同样的功能

(1) REP MOVSB (2) REPE CMPSW

(3) REP STOSB (4) REPNE SCASB

解:(1) AGAIN:MOV AL,[SI] (2)AGAIN: MOV AL,[SI]

MOV ES:[DI],AL CMP AL,ES:[DI]

INC SI INC SI

INC DI INC DI

LOOP AGAIN LOOPE AGAIN

(3) AGAIN: MOV ES:[DI],AL (4)AGAIN: CMP AL,[DI]

INC DI INC DI

LOOP AGAIN LOOPNE AGAIN

5.24 有100个学生的计算机课程成绩存放在COMPUT缓冲区中,编写指令序列统计85分以上、60~85分、60分以下各有多少人,并把

统计结果存入ORDER开始的三个字节单元中。

解: LEA SI,COMPUT

MOV CX,100

MOV BL,10

MOV BH,0

MOV DX,0

AGAIN: MOV AL, [SI]

CBW

IDIV BL

CMP AL,9

JGE RANGE1

CMP AL,8

JE GE85

CMP AL,6

JGE RANGE2

INC BH

JMP NEXT

GE85: CMP AH,5

JGE RANGE1

RANGE2: INC DL

JMP NEXT

RANGE1: INC DH

NEXT: INC SI

LOOP AGAIN

MOV ORDER,DH

MOV ORDER+1,DL

MOV ORDER+2,BH

HLT

5.25 在内存数据区从4000H开始存放着由30个字符组成的字符串,编写指令序列,查找并统计串中空格符的个数,并将统计结果存入4020H单元中。

解: MOV SI,4000H

MOV CX,30

SUB BL,BL

MOV AL,20H

AGAIN: CMP AL,[SI]

JNZ NEXT

INC BL

NEXT: INC SI

LOOP AGAIN

MOV SI,4020H

MOV [SI],BL

HLT

5.26 编写一指令序列,统计寄存器BX中内容含“1”的个数,将统计结果送入CX寄存器中。

解: SUB CX,CX

GOON: CMP BX,0

JZ STOP

SHR BX,1

JNC JUMP

INC CX

JUMP: JMP GOON

STOP: HLT

5.27 试分析下列程序段:

ADD AX,BX

JNO L1

JNC L2

SUB AX,BX

JNC L3

JNO L4

JMP L5

如果AX和BX的内容给定如下:

AX BX

(1) 147BH 80DCH

(2) 0B568H 54B7H (3) 4C28H 608DH

(4) 0D023H 9FD0H

(5) 94B7H 0B568H

问在该5种条件下,以上程序执行完后程序将转向哪里?

解: (1) L1; (2) L1; (3) L2; (4) L5; (5) L5 5.28 设在内存数据段中有一个由28个字节数据组成的数组,数组的起始地址为2000H,试编写程序段,将其分成正数组和负数组,正数组存放于2020H开始的单元中;负数组存放于2040H开始的单元中。解: MOV BX,2000H

MOV CX,1CH

MOV SI,2020H

MOV DI,2040H

LOOP1: MOV AL,[BX]

SUB AL,0

JS NEGAT

MOV [SI],AL

INC SI

JMP NEXT

NEGAT: MOV [DI],AL

INC DI

NEXT: LOOP LOOP1

HLT

5.29 在首地址为VALU的字数组中,存放有10个无符号数,编写指令序列,求出它们的平均值并存放于BL寄存器中(只取整数)。再统计出数组中有多少个小于平均值的数,将结果存于DL寄存器中。

解: MOV SI,0

MOV DX,0

MOV CX,DX

AVERAGE: MOV AL,VALU[SI]

CBW

ADD DX,AX

INC SI

LOOP AVERAGE

MOV AX,DX

MOV BL,10

DIV BL

MOV BL,AL

MOV SI,0

MOV DX,0

MOV CX,0

COMPARE: MOV AL,VALU[SI]

CMP AL,BL

JAE GOON

INC DL

GOON: INC SI

LOOP COMPARE

HLT

5.30 有20个ASCII码表示的分离式BCD码存放在缓冲区UNPBCD中,编写指令序列将它们转换成组合式BCD码,即把两个相邻字节单元的数码合并成一个字节单元,高地址单元存放在高4位,低地址单元存放在低4位,转换结果存放于PABCD缓冲区中。

解: MOV CX,14H

LEA SI,UNPBCD

LEA DI,PABCD

CONVERT: PUSH CX

MOV AL,[SI]

SUB AL,30H

MOV BL,AL

MOV AL,[SI+1]

SUB AL,30H

MOV CL,4

SHL AL,CL

ADD AL,BL

MOV [DI],AL

POP CX

ADD SI,2

INC DI

LOOP CONVERT

HLT

习题六

6.1 请指出变量与标号都有哪些属性?它们的主要区别是什么?

解:变量的属性有:段属性,偏移属性,类型属性。

标号的属性有:段属性,偏移属性,距离属性。

变量和标号都是一种符号地址。变量的内容是代表存放在某些存储单元中的数据,变量名就代表这些单元的起始地址;标号是代表一条指令目标代码的起始地址。

6.2 在一个数据段中,试用伪指令定义下列数据或字符变量,并画出内存分配示意图。

⑴为十进制数58定义字节变量DEDAT

⑵为二进制数11011010B定义字节变量BINDAT

⑶为十六进制数B7A2H定义字变量HEXDAT

⑷定义6个0的字变量

⑸为字符串‘I have a pen’定义字节变量STRING

解:(1) DEDAT DB 58

(2) INDAT DB 11011010B

(3) HEX DB 0B7A2H

(4) DW 6 DUP(0)

(5) STRING DB ‘I have a pen’

6.3 已知在某数据段中有如下变量定义:

VRWD DW 256 DUP(?)

现要求对这些变量单元既能进行字操作,同时在另一种场合又能进行字节操作,请问应该如何解决?

解:用LABEL伪指令进行字节定义:

VRBD LABEL BYTE

VRWD DW 256(?)

6.4 已知有如下赋值语句:

ALPHA EQU 100

BETA EQU 25

GAMMA EQU 2

试指出下列表达式的值为多少?

⑴ ALPHA*100 ⑵ ALPHA MOD GAMMA+BETA ⑶ (ALPHA+2)*BETA-2 ⑷ (BETA/3) MOD 5

⑸ (ALPHA+3)*(BETA MOD GAMMA) ⑹ ALPHA GE GAMMA

⑺ BETA AND 7 ⑻ GAMMA OR 3

解:(1) 10000 (2) 26 (3) 2446 (4) 3

(5) 309 (6) 0FFFFH (7) 08H (8) 0BH

6.5 分析如下程序,画出堆栈最满时各单元的地址及内容。STASEG SEGMENT AT 1000H

DW 200 DUP(?)

TOP LABEL WORD

STASEG ENDS

CODSEG SEGMENT

ASSUME CS:CODSEG,SS:STASEG

START:MOV AX,STASEG

MOV SS,AX

MOV SP,OFFSET TOP

PUSH DS

SUB AX,AX

PUSH AX

PUSH BX

PUSHF

……

……

POPF

POP BX

POP AX

……

CODSEG ENDS

END START

解:(1) 10000 (2) 26 (3) 2446 (4) 3

6.6 编写一完整的汇编语言源程序,在数据段中定义一双字变量VARLD,再在附加段中也定义一双字变量VARLE,然后将这两个双字内容相加,结果存放于数据段的RESU变量中。

解:DATA SEGMENT

WVLD LABEL WORD

VARLD DD 58A027B4H

RESU DW ?,?

DATA ENDS

EXTR SEGMENT

WVLE LABEL WORD

VARLE DD 0F4C2380H

EXTR ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:EXTR

START: MOV AX,DATA

MOV DS,AX

MOV AX,EXTR

MOV ES,AX

MOV AX,WVLD

ADD AX,ES:WVLE

MOV RESU,AX

MOV AX,WVLD+2

ADC AX,ES:WVLE+2

MOV RESU+2,AX

MOV AH,4CH

INT 21H

CODE ENDS

END START

6.7 循环程序一般由哪几部分构成?各部分的功能是什么?

解:(1)循环初始化部分。主要是设定循环的初始状态,为循环作准备。如设置循环最大次数,循环过程中相关寄存器所需的初始值等等。

(2)循环工作部分。这是循环程序的主体部分,它完成该循环体所要实现的主要功能,如数据的传送、运算等。

(3)循环参数调整部分。主要功能是用于修改某些数据,以保证每次循环时参与运行的某些信息能发生有规律的变化,使完成的功能不完全重复。

(4)循环控制部分。循环控制部分是循环程序设计的关键,它根据循环控制条件来控制循环的运行和结束,该控制功能由循环控制指令完成。

6.8 设有一汇编语言源程序如下:

DATSEG SEGMENT

CONDAT DB 3EH,0F7H,68H,9CH,7FH

ORG 1000H

SUM DW ?

DATSEG ENDS

PROSEG SEGMENT

ASSUME CS:PROSEG,DS:DATSEG

MAIN PROC FAR

START:PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATSEG

MOV DS,AX

LEA BX,CONDAT

MOV CX,5

XOR DX,DX

NMP:MOV AL,[BX]

AND AL,AL

JS NEXT

ADD DL,AL

JNZ NEXT

INC DH

NEXT:INC BX

LOOP NMP

LEA BX,SUM

MOV [BX],DX

RET

MAIN ENDP

PROSEG ENDS

END START

简要说明此程序的功能,指出程序运行后四个通用寄存器AX、BX、CX、DX中的内容各是什么?程序运行的结果是什么?保存在什么地方?解:程序功能是,统计CONDAT数据区的9个字节,将正数之和送入1000H单元;将前几个为0的数的个数送入1001H单元。

程序执行结果:(AX)=0010H (BX)=1000H (CX)=0 (DX)=023EH。正数之和等于3EH保存于1000H单元中;数组前面0的个数是2,保存于1001H单元中。

6.9设内存自1000H开始的存储区中,存放有20个带符号数,试编一程序段,找出其中最小的数,存于数据区2000H中。

解:MOV AX,1000H

MOV DS,AX

LEA BX,BUFF

MOV CX,[BX]

MOV AX,0

SCAN:ADD BX,2

MOV DX,[BX]

CMP DX,AX

JGE NEXT

XCHG AX,DX

NEXT:LOOP SCAN

MOV [BX],2000H

MOV [BX],AX

HLT

6.10 在内存的BUFF缓冲区中,存放有一个数据块,数据块的长度存放在BUFF和BUFF+1单元中,从BUFF+2开始存放的是以ASCII码表示的十进制数。编写程序段,将这些ASCII码转换成组合式BCD码(即把两个相邻字节单元的数码并成一个字节单元),高地址的放在高4位。转换后的压缩BCD码存放到BUFF+2开始的单元中。

解:CODE SEGMENT

ASSUME CS:CODE

CONVER PROC FAR

PUSHF

PUSH AX

PUSH BX

PUSH CX

PUSF DX

PUSH SI

PUSU DI

LEA SI,ASCDES

MOV DI,10

MOV CX,5

MOV AX,0

CONTI:MUL DI

MOV BL,[SI]

MOV BH,0

SUB BL,30H

ADD AX,BX

INC SI

LOOP CONTI

MOV BYDAT,AX

POP DI

POP SI

POP DX

POP CX

POP BX

POP AX

POPF

RET

CONVER ENDP

CODE ENDS

END 6.11 设有一由无符号数组成的数组,数组名为ORDER,数组长度为60。编写程序,求该数组中的最大值。

解:DATA SEGMENT

ORDER DW 60 DUP(?)

MAX DW ?

DATA ENDS

STACKS SEGMENT

DW 256 DUP(0)

TOP LABEL WORD

STACKS ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACKS

START:MOV AX,DATA

MOV DS,AX

MOV AX,STACKS

MOV SS,AX

MOV SP,OFFSET TOP

LEA SI,ORDER

MOV CX,60

CALL FAR PTR SUBPRG

MOV MAX,AX

MOV AH,4CH

INT 21H

CODE ENDS

CODE1 SEGMENT

ASSUME CS:CODE1

SUBPRG PROC FAR

PUSHF

CMP CX,2

JZ STOP

DEC CX

ADD SI,2

CALL SUBPRG

STOP:MOV AX,[SI]

CMP AX,2[SI]

JNC NEXT

XCHG AX,2[SI]

MOV [SI],AX

NEXT:MOV AX,[SI]

SUB SI,2

POPF

RET

SUBPRG ENDP

CODE1 ENDS

END START

6.12 编写子程序,将从键盘输入的小写字母用大写字母在屏幕显示出来,如不是字母则结束。

解:CODE SEGMENT

ASSUME CS:CODE

KEYIN PROC FAR

PUSH AX

PUSH DX

NEXT:MOV AH,1

INT 21H

CMP AL,61H

JB EXIT

CMP AL,7AH

JA EXIT

SUB AL,20H

MOV DL,AL

MOV AH,02H

INT 21H

JMP NEXT

POP DX

POP AX

RET

KEYIN ENDP

CODE ENDS

END KEYIN

6.13 编写子程序,要求从键盘输入一个4位的十六进制数,然后将其转换成二进制数并在屏幕上显示出来。

解:DATPRO SEGMENT

BUFF DB 5

DB ?

DB 5 DUP(?)

DATPRO ENDS

PROSEG SEGMENT

ASSUME CS:PROSEG,DS:DATPRO

START:MOV AX,DATPRO

MOV DS,AX

LEA DX,BUFF

MOV AH,0AH

INT 21H

MOV BL,[BUFF+1]

LEA SI,BUFF+2

AGAIN:MOV AL,[SI]

CMP AL,30H

JB EXIT

CMP AL,39H

JBE DECI

CMP AL,61H

JB EXIT

CMP AL,66H

JA EXIT

SUB AL,27H

DECI:SUB AL,30H

MOV CL,4

SHL AL,CL

MOV CX,4

LOOP1:SHL AL,1

JC ONE

MOV DL,30H

JMP DISPL

ONE:MOV DL,31H

DISPL:PUSH AX

MOV AH,2

INT 21H

POP AX

LOOP LOOP1

INC BL

INC SI

CMP BL,0

JNZ AGAIN

EXIT:MOV AH,4CH

INT 21H

PROSEG ENDS

END START

6.14 编写一个子程序,实现8位无符号数的除法运算,被除数、除数、商和余数存放在自DATA开始的存储单元中。

解:CODESUB SEGMENT

ASSUME CS:CODESUB

SUBPRO PROC FAR

PUSH AX

PUSH BX

PUSH DX

MOV AL,DATA

CBW

DIV DATA+1

PUSH AX

CBW

CALL DISPL

POP AX

MOV AL,AH

CBW

CALL DISPL

POP DX

POP BX

POP AX

RET

SUBPRO ENDP

DISPL PROC NEAR

MOV BL,100

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

POP AX

MOV AL,AH

CBW

MOV BL,10

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

POP AX

MOV DL,AH

ADD DL,30H

MOV AH,2

INT 21H

MOV DL,‘,’

MOV AH,2

INT 21H

RET

DISPL ENDP

CODESUB ENDS

END

6.15设有一个由30个数据组成的数组DGRP,编写一完整的汇编语言程序,将该数组分成正数组PGRP和负数组NGRP,并且统计和显示这两个数组中数据的个数。

解:DATSEG SEGMENT

DGRP DW 30 DUP(?)

PGRP DW 30 DUP(?)

NGRP DW 30 DUP(?)

DATSEG ENDS

PROSEG SEGMENT

MAIN PROC FAR

ASSUME CS:PROSEG,DS:DATSEG

START:PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATSEG

MOV DS,AX

MOV CX,30

MOV DX,0

LEA BX,DGRP

LEA SI,PGRP

LEA DI,NGRP

NEXT:MOV AX,[BX]

AND AX,AX

JL NEGD

INC DH

MOV [SI],AX

ADD SI,2

JMP GOON

NEGD: INC DL

MOV [DI],AX

ADD DI,2

GOON:ADD BX,2

LOOP NEXT

MOV BL,10

MOV AL,DL

CALL DISPL

MOV AL,DH

CALL DISPL

RET

MAIN ENDP

DISPL PROC NEAR

CBW

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

POP AX

ADD AH,30H

MOV DL,AH

MOV AH,2

INT 21H

MOV DL,‘,’

MOV AH,2

INT 21H

RET

DISP ENDP

PROSEG ENDS

END START

6.16 设有一组考核数据以字节为单位存放在名为TEST的内存缓冲区中,这些数据都是不超过100的正整数,其中第1个单元存放的是该数组中数据的个数。若将小于60的数划分为等第C,60~80划分为等第B,大于80的数划分为等第A,编程分别统计这三个等第中数据的个数,并在屏幕上显示出统计结果。

解:DATASEG SEGMENT

TEST DB 256 DUP(?)

A D

B 0

B DB 0

C DB 0

DATASEG ENDS

CODESEG SEGMENT

MAIN PROC FAR

ASSUME CS:CODESEG,DS:DATASEG

START: PUSH DS

SUB AX,AX

PUSH AX

MOV AX,DATASEG

MOV DS,AX

LEA SI,TEST

MOV CL,[SI]

MOV CH,0

INC SI

STATI: MOV AL,[SI]

CMP AL,80

JBE BCRANK

INC A

JMP NEXT

BCRANK: CMP AL,60

JB CRANK

INC B

JMP NEXT

CRANK: INC C

NEXT: INC SI

LOOP STATI

MOV AL,A

CALL DISPL

MOV AL,B

CALL SISPL

MOV AL,C

CALL DISPL

RET

MAIN ENDP

DISPL PROC NEAR

CBW

MOV BL,100

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

POP AX

MOV AL,AH

CBW

MOV BL,10

DIV BL

PUSH AX

ADD AL,30H

MOV DL,AL

MOV AH,2

INT 21H

POP AX

ADD AH,30H

MOV DL,AH

MOV AH,2

INT 21H

MOV DL,‘,’

MOV AH,2

INT 21H

RET

DISP ENDP

CODESEG ENDS

END START

6.17 从键盘输入某班学生某门课程的成绩,存入内存中,然后将成绩进行分析统计,分别求出九十分以上、八十至八十九分、七十至七十九分、六十至六十九分、六十分以下这五个分数段中各有多少人?五个分数段分别用A、B、C、D、E表示,全班的平均成绩是多少(只取整数)?并将统计结果在屏幕上显示出来。

.MODEL SMALL

.DATA

data DB 10 DUP(?)

buffer DB "Please input 10 scores between 00 and 99.$" buffer1 DB "The new order:$"

buffer2 DB "ave=$"

buffer3 DB "Scores<$"

below60 DB 0

below70 DB 0

below80 DB 0

below90 DB 0

below100 DB 0

.CODE

newline PROC ;换行

PUSH AX

PUSH DX

MOV AH,02H

MOV DL,0DH

INT 21H

MOV DL,0AH

INT 21H

POP DX

POP AX

RET

newline ENDP

dispave PROC;将buffer2中的内容作为一行显示PUSH AX

PUSH DX

MOV DX,OFFSET buffer2

MOV AH,09H

INT 21H

POP DX

POP AX

RET

dispave ENDP

ave PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV BX,OFFSET data

MOV CX,10

MOV AX,0

CLC

next: ADD AL,[BX]

DAA

ADC AH,0

CLC

INC BX

LOOP next

MOV CL,10H

DIV CL

MOV BX,AX

MOV AH,02H

MOV CL,4

MOV DL,BL

SHR DL,CL

ADD DL,'0'

INT 21H

POP DX

POP CX

POP BX

POP AX

RET

ave ENDP

detail PROC

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV CX,10

MOV SI,OFFSET data

start5: MOV BL,[SI]

.IF BL>=0&&BL<60H

INC below60

.ELSEIF BL>=60H&&BL<70H

INC below70

.ELSEIF BL>=70H&&BL<80H

INC below80

.ELSEIF BL>=80H&&BL<90H

INC below90

.ELSEIF BL>=90H&&BL<=99H

INC below100

.ENDIF

INC SI

LOOP start5

POP DX

POP CX

POP BX

POP AX

RET

detail ENDP

dispscores PROC

PUSH AX

PUSH DX

MOV DX,OFFSET buffer3

MOV AH,09H

INT 21H

MOV AH,02H

INT 21H

POP DX

MOV AL,DL

INT 21H

POP AX

RET

dispscores ENDP

.STARTUP

MOV DX,OFFSET buffer MOV AH,09H

INT 21H

CALL newline

CALL newline

MOV DI,OFFSET data

MOV CX,10

start: MOV DX,0

MOV AH,01H

INT 21H

SUB AL,'0'

MOV BL,16

MUL BL

MOV DL,AL

MOV AH,01H

INT 21H

SUB AL,'0'

ADD DL,AL

MOV [DI],DL

INC DI

MOV DL,20H

MOV AH,02H

INT 21H

LOOP start

CALL newline

CALL dispave

CALL ave

CALL newline

CALL newline

MOV DX,OFFSET BUFFER1

MOV AH,09H

INT 21H

CALL newline

CALL detail

MOV AL,'A'

MOV DL,below100

CALL dispscores

MOV AL,'B'

MOV DL,below90

CALL dispscores

MOV AL,'C'

MOV DL,below80

CALL dispscores

MOV AL,'D'

MOV DL,below70

CALL dispscores

MOV AL,'E'

MOV DL,below60

CALL dispscores

.EXIT

END

习题七

7.1 什么是中断?中断有什么作用?

解:中断是指在计算机执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的时间处理程序。待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。

利用中断,计算机可以较好的实现CPU与外部设备之间的同步工作,进行实时处理,可以大大提高CPU的工作效率。

7.2 8086/8088系统中,中断分为哪几类?

解:硬件中断(外部中断);软件中断(内部中断)。

硬件中断又可分为:非屏蔽中断、可屏蔽中断。

7.3 8086/8088CPU上中断请求和中断响应信号是什么?

解:INTA

7.4 中断标志IF的作用是什么?

解:IF中断标志位,IF=1表示允许CPU响应可屏蔽中断。

7.5 什么是中断向量? 中断向量表?

解:中断向量是中断服务程序的人口地址。

中断向量表是将各个中断服务程序的入口地址有次序地存放在内存一片连续区域中,所形成的地址表被称为中断向量表,也称为中断服务程序的入口地址表。

7.6 中断类型码为50H,则其对应的中断向量存放在哪几个存储单元?解:500H

7.7 设78H号中断的中断向量为1000:2340H,写出该中断向量在内存中的具体存放情况。

解:

10H

00H

23H

40H

7.8 简述8259A的工作原理。

解:第一个负脉冲到达时,IRR的锁存功能失效,使当前中断服务寄存器ISR中的相应位置1,并使IRR寄存器中的相应位清零。

第二个负脉冲到达时,中断类型寄存器中的内容ICW2送到数据总线的D7~D0,CPU将此作为中断类型码

第二个脉冲结束时,将第一个脉冲到来时设置的当前中断服务寄存器ISR的相应位清零。

7.9 一片8259A可提供多少个中断类型码?

解:8个

7.10 8259A的设定中断优先级方式有几种?各有什么特点?

解:全嵌套方式:固定优先级,IR0最高,IR7最低。

特殊全嵌套:响应同级中断请求。

优先级自动循环:某级被响应后,降为最低。

优先级特殊循环方式:编程指定最低优先级。

7.11 8259A的中断结束方式有几种?各有什么特点?

解:(1)自动结束方式:8259A收到INTA#后自动把ISRn位清0。

(2)非自动结束方式:

(a)一般结束方式:8086发命令清除ISR中级最高的位,结束中断。

(b)特殊结束方式:将ISR中指定位清0。

7.12 8259A屏蔽中断源的方式有几种?各有什么特点?

解:(1)普通屏蔽方式:IMR某位置1,对应的中断被屏蔽;IMR某位置0,允许该级中断产生。

(2)特殊屏蔽方式:IMR某位置1,同时使ISR的对应位复位以屏蔽本级中断,开放较低级别中断。

7.13 8259A连接数据总线的方式有几种?各有什么特点?

解:缓冲方式:在多片8259A级联的大系统中,8259A通过总线驱动器与系统数据总线相连。

非缓冲方式:在只有单片8259A或片数不多8259A时,将8259A 直接于数据总线相连。

7.14 8259A的中断请求触发方式有几种?各有什么特点?

解:边沿触发方式:上升沿作为中断请求信号,IR出现上升沿信号后,可一直保持高电平。

电平触发方式:高电平作为中断请求信号,但必须在EOI命令或CPU 开放中断之前撤除高电平。

7.15 在8259A中,通过奇地址访问的寄存器有几个?通过偶地址访问的寄存器有几个?

解:(1)奇地址四个:ICW2、ICW3、ICW4、OCW1

(2)偶地址三个:ICW1、OCW2、OCW3

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

解:需要8086发命令清除ISR中级最高的位或其他指定的位,才可以产生中断。

7.17 8259A初始化的过程如何?

解:(1)顺序逻辑复位,准备按ICW2,ICW3,ICW4的顺序接收初始化字;

(2)清除ISR和IMR;

(3)指定优先级次序为IR0、IR1……;

(4)从片的地址设置为7;

(5)设定为普通屏蔽方式;

(6)设置为非自动中断结束方式;

(7)状态读出电路预置为IRR。

7.18 外设向CPU提出中断申请,但没有得到响应,其原因有哪些?解:(1)中断请求被屏蔽

(2)中断不是开放的或者是允许的

(3)在现行指令的结束后才响应中断

7.19 编程对8259A初始化。设系统中有一片8259A,中断请求信号为边沿触发,中断类型码为58H~5FH,一般全嵌套方式,不用缓冲方式,中断自动结束。8259A的端口地址为20H、21H。

解:

PIC1 EQU 20H

PIC2 EQU 21H

ICW1 EQU 13H

ICW2 EQU 58H

ICW4 EQU 3H

OCW1 EQU 0FFH

INIT PROC NEAR

MOV AL,ICW1

OUT PIC1,AL

MOV AL,ICW2

OUT PIC2,AL

MOV AL,ICW4

OUT PIC2,AL

MOV AL,OCW1

OUT PIC2,AL

STI

INIT ENDP

7.20 写操作命令字实现禁止8259A的IR0和IR7引脚的中断请求,然后撤消这一禁止命令。设8259A的端口地址为200H、202H。

解:MOV AL,110000001B

MOV DX,200H

OUT DX,AL

MOV AL,100000000B

OUT DX,AL

习题八

8.1 什么是I/O端口?8086CPU最多可以访问多少个I/O端口?访问时用什么指令?

解:I/O接口是位于系统与外设间、用来协助完成数据传送和控制任务的逻辑电路,I/O接口中可以由CPU进行读或写的寄存器被称为I/O 端口。

64K个8位端口,或者32K个16位端口。

输入输出指令。

8.2 解释IN指令和OUT指令的数据流动方向。

解:IN指令:输入指令,数据从外部设备流向CPU;

OUT指令:输出指令,数据从CPU流向外部设备。

8.3 直接寻址I/O指令的I/O端口号存储在何处?

解:只用于寻址00H ~ FFH前256个端口,操作数i8表示端口号

8.4 间接寻址I/O指令的I/O端口号存储在何处?

解:可用于寻址全部64K个端口,DX寄存器的值就是端口号,对大于FFH的端口只能采用间接寻址方式

8.5 16位IN指令将数据输入到那个寄存器?

解:AX

8.6 通常I/O接口内有哪三类寄存器?它们各自的作用是什么?

解:用于存取数据的寄存器,存取命令信息的寄存器以及存取外设所处状态的寄存器,习惯上把这些寄存器称为端口: 1、数据端口;2、命令端口; 3、状态端口。

1数据端口:用于中转数据信息。一种情况是CPU通过数据总线,将待传送给外设的数据先传送到数据端口,然后由I/O设备通过与I/O接口电路相连接的数据线取得该数据。另一种情况是I/O设备首先将输入数据锁存于数据端口,然后,CPU通过数据端口将该数据读入CPU 中。

2命令端口:用于传送对I/O设备的命令信息。CPU将命令信息通过数据总线写入I/O接口电路的命令寄存器中,然后传送到I/O设备,以便控制外设的操作。

3状态端口:用于传送外设所处的状态信息。状态端口是输入端口,CPU 通过读取状态端口的数据,以此了解外设当前所处的工作状态。

8.7 为什么I/O设备必须通过接口才能与CPU相连?

解:因为CPU与外部设备通信在运行速度和数据格式上差异很大。

8.8 接口芯片具有哪些功能?

解:(1)设置数据的寄存、缓冲逻辑,以适应CPU与外设之间的速度差异,接口通常由一些寄存器或RAM芯片组成,如果芯片足够大还可以实现批量数据的传输;

(2)能够进行信息格式的转换,例如串行和并行的转换;

(3)能够协调CPU和外设两者在信息的类型和电平的差异,如电平转换驱动器、数/模或模/数转换器等;

(4)协调时序差异;

(5)地址译码和设备选择功能;

(6)设置中断和DMA控制逻辑,以保证在中断和DMA允许的情况下产生中断和DMA请求信号,并在接受到中断和DMA应答之后完成中断处理和DMA传输。

8.9 接口芯片分为哪几类?

解:(1)并行接口,EPP口(增强并行口)和ECP口(扩展并行口)(2)串行接口(3)磁盘接口,可分为IDE接口,EIDE接口和SCSI接口(4)USB接口(5)I/O扩展槽,可分为ISA插槽,EISA插槽,VESA插槽,PCI插槽

8.10比较存储器映像编址I/O与独立编址I/O的优缺点。

解:(1)统一编址

优点:不需要设立专门的I/O指令,用访问内存的指令就可以访问外设,指令类型多,功能齐全,还可以对端口进行算术运算,逻辑运算以及移位操作等。I/O端口空间不受限制。

缺点:是I/O端口占用了内存空间,减少了内存容量。

(2)独立编址

优点:不占用内存空间,使用专门I/O指令访问I/O端口,I/O速度快。缺点:CPU的引脚上必须具有能区分出访问内存还是访问I/O端口的信号,作为I/O接口电路中端口译码电路以及存储器片选译码电路的输入信号。

8.11 8086系统中采用哪种I/O编址方式?

解:独立编址。

8.12 当G1输入为高电平,和均为低电平时,74LS138译码器的输出是什么?

解:此时译码器处于工作状态,输出的是与输入的二进制代码相对应的高、低电平信号。

8.13设计一个I/O端口译码器,使用一个74LS138,产生8位端口地址:10H、12H、 14H、16H、18H、1AH、1CH、1EH。

解:

8.14 简述CPU与外设之间数据传送的几种方式。

解:外围设备和内存之间的常用数据传送控制方式有四种:

(1)程序直接控制方式:就是由用户进程直接控制内存或CPU和外围设备之间的信息传送。这种方式控制者都是用户进程。(2)中断控制方式:被用来控制外围设备和内存与CPU之间的数据传送。这种方式要求CPU与设备(或控制器)之间有相应的中断请求线,而且在设备控制器的控制状态寄存器的相应的中断允许位。

(3)DMA方式:又称直接存取方式。其基本思想是在外围设备和内存之间开辟直接的数据交换通道。

(4)通道方式:与DMA方式相类似,也是一种以内存为中心,实现设备和内存直接交换数据的控制方式。与之不同的是,在DMA方式中数据传送方向、存放数据内存始址以及传送的数据块长度等都是由CPU控制,而在通道方式中这些都是由专管输入输出的硬件——通道来进行控制。

8.15 CPU以并行通讯方式从外设输入信息。设状态端口地址为286H,数据端口地址为287H,已将数据读走标志为D0=1。请编写一个程序,利用查询方式实现100个字节数据的输入。输入的数据存放在数据段中以BLOCK开始的地址中(请在程序中加上相应的注释说明)。

解:

.MOCEL SMALL

.DATA

BLOCK DB 100 DUP(?)

.CODE

.STARTUP

MAIAN:

MOV BX,OFFSET BLOCK

MOV SI,0

MAIN1:

MOV DX,0286H

IN AL,DX

AND AL,02H

JZ MAIN1

MOV DX,0287H

IN AL,DX

MOV [BX+SI],AL

INC SI

CMP SI,100

JNE MAIN1

.EXIT

END

8.16 CPU以并行通讯方式向外设输出信息。设状态端口地址为216H,数据端口地址为217H。外设准备好标志为D7=1,D7=0为外设未准备好(忙)。输出数据选通信号为D0=1。请编写一个程序,利用查询方式实现50个字节数据的输出。输出的数据存放在数据段中以BUFFER开始的地址中(请在程序中加上相应的注释说明)。

.MOCEL SMALL

.DATA

BLOCK DB 50 DUP(?)

.CODE

.STARTUP

MAIAN:

MOV BX,OFFSET BLOCK

MOV SI,0

MAIN1:

MOV DX,0216H

IN AL,DX

AND AL,80H

JZ MAIN1

MOV DX,0217H

MOV AL,[BX+SI]

OUT DX,AL

INC SI

CMP SI,50

JNE MAIN1

.EXIT

END

8.17 一个完整的中断过程包括那几个阶段?其中哪些步骤由系统自动完成?哪些环节由用

户完成?

解:一个完整的中断过程由中断请求、中断响应和中断处理3个阶段组成。

一次中断处理过程通常要经过如下几个步骤完成:

1中断请求:由中断源发出并送给CPU的控制信号。

2关中断:保证在此之后的一小段时间内CPU不能响应新的中断请求。3保存断点,保护现场:用中断隐指令实现。断点和现场信息一般保存在堆栈中,保存信息一定要完整完成,以保证被停下来的程序得以继续正常运行。

4判别中断源,转中断服务:找出中断服务程序的入口地址。多个中断源时找出中断优先级最高的中断源。

5开中断,以便尽快地进入可以响应更高级别中断请求的运行状态。

6若有更高级别中断请求到来,则进行新的中断响应过程。

7执行中断服务程序,完成后准备返回主程序,为此,执行关中断。

8恢复现场,恢复断点。

9开中断。关中断和开中断是为了保证能完整的恢复现场的操作。开中断之后,若有更高级别中断请求来到,则进入新的中断响应过程。

10返回断点。

其中第3与第8步由系统自动完成,2,4,5,7,9,10步由用户完成。

8.18 中断方式与DMA方式相比有何不足?各用在什么场合?

解:中断方式传送数据的速度比DMA慢,不适于高速外设的要求。

中断方式主要应用于处理复杂随机事件、控制中低速1/O;DMA方式高速、批量数适用于据的简单传送。

8.19 某字符输出设备的数据端口地址是100H,控制/状态端口地址是101H,当状态端口D7位为1时表示设备准备好,用D0对输出设备选通。试编写查询方式输出数据的程序,将存储器中以BUF为首地址的一串字符(以$为结束符)输出给该设备。

解:

.MOCEL SMALL

.DATA

BUF DB "I am a good student!$"

.CODE

.STARTUP

MAIAN:

MOV BX,OFFSET BUF

MOV SI,0

MAIN1:

MOV DX,0101H

MOV AL,01H

OUT DX,AL

IN AL,DX

AND AL,80H

JZ MAIN1

MOV DX,0100H

MOV AL,[BX+SI]

CMP AL,'$'

JE MAIN3

OUT DX,AL

INC SI

JNE MAIN1

MAIN3:

.EXIT

END

8.20 简述DMA传送的过程。

解:一次DMA传送过程由传送前的预处理、数据传送、传送结束3个阶段组成。

预处理是由CPU完成的。当CPU执行到读写I/O设备调用语句时,启动DMA传送过程,向DAM卡送入设备识别信号、启动设备,测试设备运行状态,送入内存地址初值,传送数据个数,DMA的功能控制信号等,之后,CPU继续执行原来程序。

数据传送在DMA卡控制下自动完成。DMA卡向CPU发出请求总线使用权的信号,若总线空闲,总线控制器将送响应回答信号给DMA卡,DMA 卡取得总线使用权,清“0”DMA请求触发器以撤消请求总线的信号,并启动数据传送过程。DMA在传送过程中还要完成对内存地址计数器和数据数量计数器的计数操作,并通过检查数据数量计数器是否为0,决定要启动下一次传送,还是结束本批全部数据的传送过程。

传送结束处理,是由数据数量计数器的值为0引发出来的。当数据数量计数器的值为0时,DMA将向CPU发出中断请求信号,CPU响应这一请求后,转入中断服务程序;检查是否结束数据传送。

8.21 8089IOP在微型计算机系统中的作用是什么?

解:8089是专门用于配合8086/8088进行I/O操作的芯片。它有自己的指令系统并且支持DMA传送,它与CPU并行工作,从而把CPU从大量的I/O操作中解放出来,使系统的整体效率大幅度提高。

8.22 一般从哪几个方面评价一种总线的性能?

解:⑴总线的带宽:指的是单位时间内总线上可传送的数据量。

⑵总线的位宽总线的位宽指总线能同时传送的数据位数。

⑶总线的工作频率:工作频率越高,总线工作速度越快,总线带宽越宽。

8.23 简述SPP、EPP、ECP接口的用途与特点。

解:SPP,即Standard Parallel Port,标准并口。这是最初的并口模式,数据是半双工单向传输的.传输速率为15KB/S,速度较慢,现在几乎所有的并口外设都支持该模式。

EPP,即Enhanced Parallel Port,增强型高速并口。这是一种在SPP 的基础上发展起来的新型并口模式,也是现在应用最多的并口模式,采用双向半双工数据传输,传输速度达2MB/S。目前市面上的大多数打印机、扫描仪都能与PC进行双向通讯,都支持EPP模式。

ECP,即 Extended Capability Port,扩充功能并口。这可以算是目前最先进的并口模式,采用双向全双工数据传输,传输速率比EPP高,但是该模式需要设置DMA通道,既消耗资源,又容易引起冲突,目前支持ECP的外设很少。

8.24 简述RS-232C的电气特性。

解:在TxD和RxD上:逻辑1(MARK)=-3V~-15V

逻辑0(SPACE)=+3~+15V

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效(接通,ON状态,正电压)=+3V~+15V

信号无效(断开,OFF状态,负电压)=-3V~-15V

8.25 用RS-232接口进行两台计算机之间的双向通信最少需要几根连线?

解:3根,发送端(TXD),接受端(RXD)和地(GND)

8.26 USB总线有什么优点?

解:USB总线具有低成本、使用简单、支持即插即用、易于扩展等优点,已被广泛地用在PC机及嵌入式系统上。

习题九

9.1 I/O接口的基本功能是什么?

解:(1)进行端口地址译码设备选择

(2)向CPU提供I/O设备的状态信息和进行命令译码

(3)进行定时和相应时序控制

(4)对传送数据提供缓冲,以消除计算机与外设在“定时”或数据处理速度上的差异,提供有关电气的适配

(5)还可以中断方式实现CPU与外设之间信息的交换

9.2 I/O接口有几种基本类型?

解:(1)I/O接口芯片 (2)I/O接口控制卡

9.3 8255A有几个端口?

解:四个端口,三个数据端口和一个控制端口。

9.4 8255A有多少个可编程的I/O引脚?

解:32

9.5 8255A有哪三种工作方式?各有什么特点?

解:方式0:方式0为基本的输入/输出方式,传送数据时不需要联络信号。A口、B口和c口(或C高4位口及c低4位口)均可独立设置成方式0输入口或方式0输出口。

方式1:方式l为选通输入/输出方式,即需要进行联络的输入/输出。A组、B组的8位口(A口或B口)可被设置为方式1输人口或方式1输出口,而这时要用相应C口的3根线作联络线。

方式2:方式2为双向传送。该方式要使用c口的5根线作联络线。由于c口只有8根线,因此只能有一组使用方式2确定为A组。当A组被设置成方式2时,A口被设置成双向端口,即既可以输入数据,也可以输出数据,c口的5根线被指定为联络线。

9.6 当8255A工作在方式1时,端口C被分为两个部分,分别作为端口A和端口B的控制/状态信息。这两个部分是如何划分的?

解:A组、B组的8位口(A口或B口)可被设置为方式1输人口或方式1输出口,而这时要用相应C口的3根线作联络线。

9.7 8255A的方式选择控制字和按位置位/复位控制字都是写入控制端口的,那么,它们是由什么来区分的?

解:由控制字的最高位来区分。最高位若为1,则是方式选择控制字;若为0,则是按位置位/复位控制字。

9.8 8255A的端口A的工作方式是由方式选择控制字的哪一位决定的?

解:第5与第6位,决定端口A的工作方式。

9.9 8255A的端口B的工作方式是由方式选择控制字的哪一位决定的?解:第3位

9.10 8255A接口芯片地址为60H~63H,请指出下列程序段功能

(1) MOV AL,80H (2) MOV AL,08H

OUT 63H,AL OUT 63H,AL

解:(1)设置8255A的端口A工作于方式0输出,端口B工作于方式0输出,端口C也是输出。

(2)置PC 为0

9.11 设8255A的地址范围是100H~103H,试编写分别完成下列功能的初始化程序。

(1)A口工作于方式0、输入;B口工作于方式0、输出;PC7输入、PC0输出。

(2)A口工作于方式1、输出,PC7、PC6输入;B口工作于方式0、输入;PC2输入。

解:(1)MOV AL,98H

MOV DX,103H

OUT DX,AL

(2)MOV AL,0ABH

MOV DX,103H

OUT DX,AL

9.12 8255A的地址由哪两部分构成?试利用74LS138译码器设计一个地址为260H~263H的8255A接口电路。

解:端口地址,控制口地址。

9.13 8255A的3个数据端口在使用上有什么不同?

解:端口A可以工作在3种工作方式的任一一种,而且A口作为输入或者输出时,数据均受到锁存,A口常作为独立的输入或输出端口;端口B有两种工作方式,当用作输出时,数据受到锁存,也是作为独立的输入或输出口;端口C通过控制令被分为2个4位端口,分别为A 口和B口提供控制信号和状态信号。

9.14 当数据从8255A的端口C读到CPU时,8255A的控制信号、、、A1、A0分别是什么电平?

解: =0, =0, =1,A1A0=11.

9.15 使用8255A与打印机接口的示意图如图9-38所示。当A15~A2=10100011010101时,译码器输出为0。编写程序将存储单元BUF的内容送打印机打印。(BUSY为1表示打印机忙,PC7输出一个负脉冲启动打印。)

解: MOV DX,0A357H

MOV AL,10000001B

OUT DX,AL

MOV AL,00001111B

OUT DX,AL

PRINTC PROC

PUSH AX

PUSH DX

PRN: MOV DX,0A356H

IN AL,DX

AND AL,04H

JNZ PRN

MOV DX,0A354H

MOV AL,AH

OUT DX,AL

NOP

NOP

MOV AL,00001111B

OUT DX,AL

POP DX

POP AX

RET

PRINTC ENDP

9.16设某压力报警控制系统电路如图9-39所示。压力正常时,开关K0断开,绿灯亮,红灯灭。压力降低时,开关K0闭合,红灯亮,绿灯灭。试写出8255A的4个端口地址并编写初始化程序和控制程序。解:端口地址:7CH,7DH,7EH,7FH

MOV AL,10010000B

OUT 7FH,AL

IN AL,7CH

AND AL,01H

JZ LP1

LP0: MOV AL,0

OUT 7EH,AL

MOV AL,00000101B

OUT 7EH,AL

JMP EXIT

LP1: MOV AL,1

OUT 7EH,AL

MOV AL,00000100B

OUT 7EH,AL

EXIT: HLT

9.17 根据传输线路不同,串行通信可分为哪些方式?每种方式有什么特点?

解:分为单工,全双工和半双工。

单工中,信息只能单方向传送。

全双工中,对数据的两个传输方向采用不同的通路,这种系统可以同时进行发送和接收。

半双工中,输入和输出采用同一通路。

9.18 什么叫同步通信?什么叫异步通信?它们各有什么优缺点?

解:同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。

同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字符帧不同,通常含有若干个数据字符。它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有1到2个,用于接收端对接收到的字符序列进行正确性的校验。同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。

异步通信中,在异步通行中有两个比较重要的指标:字符帧格式和波特率。数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。

接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。

9.19 8086系统中,8251A的C/ 端应当和哪个信号相连,以便实现对状态端口、数据端口、控制端口的读/写?

解:与地址线的低位相连。

9.20 对8251A进行编程时,必须遵守哪些约定?

解:对8251A进行编程时,必须遵守的约定主要有3个:

(1)芯片复位以后,第一次使用奇地址端口写入的操作为模式字进入模式寄存器。

(2)如果模式字中规定了8251A工作的同步模式,那么,CPU接着往奇地址端口输入一个或两个字节就是同步字符,同步字符被写入同步寄存器。如果有两个同步字符,则会按先后分别写入第一个同步寄存器和第二个同步寄存器。

(3)这之后,只要不是复位命令,不管是同步模式还是异步模式,由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的将作为数据送到数据输出缓冲寄存器。

9.21 什么是波特率?若要产生一个波特率为2400的串行信号,且波特率因子编程为16,那么串口发送/接收时钟的频率是多少?

解:波特率是指单位时间内传送二进制数据的位数,以位/秒为单位。

38400Hz

9.22 设计一个采用异步通信方式输出字符的程序段,规定波特率因子为64,7个数据位,1个停止位,偶校验,断口地址为40H、42H,待输出字符存放在2000H:4000H单元。

解:MOV AL,01111011B

OUT 42H,AL

MOV AL,35H

OUT 42H,AL

MOV DI,0

MOV CX,2000 ;发送2000个字符

L0: IN AL,42H ;读取状态字

TEST AL,02H

JZ L0

IN AL,40H

MOV DX,2000H

MOV [DX+DI],AL

INC DI

IN AL,42H

TEST AL,38H ;测试有无帧校验错

JZ ERR

LOOP L0

JMP EXIT

ERR: CALL ERR-OUT ;调出错处理

EXIT: ...

9.23 设8251A为异步工作方式,波特率因子为16,7位数据位,奇校验,2位停止位。8251A端口地址为2A1H、2A2H。编写程序从串口输出100个字符,设字符存放在BUF开始的缓冲区中。

解:MOV AL,0EAH

MOV DX,2A2H

OUT DX,AL

MOV AL,35H

OUT DX,AL

MOV DI,0

MOV CX,100

BEG: IN AL,DX

TEST AL,02H

JZ BEG

MOV DX,2A1H

IN AL,DX

MOV DX,OFFSET BUF

MOV [DX+DI],AL

INC DI

MOV DX,2A2H

IN AL,DX

TEST AL,38H

JZ ERROR

LOOP BEG

JMP EXIT

ERROR:CALL ERR_OUT

EXIT: ....

9.24 8251A工作于异步方式,波特率为1200bps,收/发时钟(RxC/TxC)频率为76.8KHz,异步字符格式为:7位数据位、偶校验、2位停止位。CPU从8251A读入80个字符,存入BUFFER开始的缓冲区,8251A的端口地址为80H、82H。试编写初始化和数据输入程序段。

解:波特率因子为64

MOV AL,11111011B

OUT 82H,AL

MOV AL,35H

OUT 82H,AL

MOV DI,0

MOV CX,80

BEG: IN AL,82H

TEST AL,02H

JZ BEG

IN AL,80H

MOV DX,OFFSET BUFFER

MOV [DX+DI],AL INC DI

IN AL,82H

TEST AL,38H

JZ ERROR

LOOP BEG

JMP EXIT

ERROR:CALL ERR_OUT

EXIT: .......

9.25 8253的CLK、GATE、OUT信号的功能是什么?

解:CLK是计数器的时钟输入端;GATE是计数器的门控信号输入端;OUT是计数器的输出端

9.26 8253可编程的寄存器有哪几个?

解:4个计数器0、计数器1、计数器2、控制寄存器

9.27 8253的计数初值如何计算?计数范围是多少?

解:计数初值=定时时间/时钟脉冲周期=时钟频率/输出频率

选择二进制:

计数值范围:0000H~0FFFFH

0000H是最大值,代表65536

选择十进制(BCD码):

计数值范围:0000~9999

0000代表最大值10000

9.28 8253有哪几种工作方式?有什么区别?

解:6种工作方式。

方式0,计数结束产生中断。当门控信号为低电平时,计数停止;当门控信号为高电平时,进行计数。

方式1,可重复触发的单稳态触发器。门控信号为低电平或者高电平时,计数不受影响;门控信号为上升沿时,受触发开始计数,下一个时钟后,输出为低电平,直到计数为0.

方式2,分频器。门控信号为低电平时,计数停止,输出高电平;门控信号为高电平时,进行计数;门控信号为上升沿时,重新设置初始值,开始计数。

方式3,方波发生器。当门控信号为低电平时方式,计数停止,输出高电平;门控信号为高电平时,进行计数;门控信号为上升沿时,开始计数。

方式4,软件触发的选通信号发生器。门控信号为低电平时,计数停止;门控信号为高电平时,进行计数。

方式5,硬件触发的选通信号发生器。门控信号为低电平时,计数不受影响;门控信号为上升沿时,开始计数。

9.29 试按以下要求分别编写8253的初始化程序,已知8253的地址为400H~403H。

(1)使计数器1工作于方式0,用二进制计数,计数初值为128。(2)使计数器0工作于方式4,按BCD码计数,计数值为3000。(3)使计数器2工作于方式5,计数初值为03E8H。

解:(1)MOV AL,50H

MOV DX,403H

OUT DX,AL

MOV AL,128

MOV DX,401H

OUT DX,AL

(2) MOV AL,39H

MOV DX,403H

OUT DX,AL

MOV AX,7000H

MOV DX,400H

OUT DX,AX

(3) MOV AL,0BAH

MOV DX,403H

OUT DX,AL

MOV AX,03E8H

MOV DX,402H

OUT DX,AX

9.30 为了计数300个事件,编程到8253中的计数初值是多少?

解:设置为工作方式2,计数初值为300,当计满300个事件,会产生一次中断信号。

9.31 编程8253的计数器1,使其产生一系列脉冲,高电平时间为100 s,低电平时间为1 s,计算本任务需要的CLK频率。

解:假设以先读/写计数器低字节,后读/写高字节的方式,则

CLK=2^16/(100 s+ s)

9.32连接8253,使其工作在端口地址10H、12H、14H和16H。写一段程序,使计数器2在CLK2输入为2MHz时产生一个80KHz的方波。解:常数计算TC=2MHz/80KHz=25

令其二进制计数,方式控制字:10010110

初始化程序:MOV AL,96H

OUT 16H,AL

MOV AL,19H

OUT 14H,AL

9.33 DMA的中英文全称分别是什么?

解:Direct Memory Access,译为“直接存储器存取”。

9.34 8237A作为主、从模块工作时各有什么特点?

解:作为从模块时,8237A接收16位地址,用较高的12位地址产生片选信号,据此判断本片是否被选中,用低4位地址来选择内部寄存器;和HRQ为低电平,用和作为读/写控制端,当为低电平时,CPU读取8237A内部寄存器的值,当为低电平时,CPU将数据写入8237A。而且,当CPU对8237A进行读写时,AEN为低电平。

作为主模块时,8237A往总线上提供要访问的内存地址,地址的低字节放在A7-A0,而地址的高位字节放在DB7-DB0,此时,AEN为高电平。作为主模块,8237A还要输出必要的读写信号: -I/O读信号; -I/O 写信号;存储器读信号;存储器写信号。

9.35 8237A作为从模块工作时占用多少个端口地址?

解:16

9.36 简述8237A单字节DMA传送的全过程。

解:8237A取得总线控制权以后进行单字节的DMA传送,传送完一个字节以后修改字节计数器和地址寄存器,然后就将总线控制权放弃.若I/O的DMA请求信号DREQ继续有效,8237A再次请求总线使用权进行下一字节的传送。

9.37 简述CPU对8237的初始化过程。

解:1.关闭8237A,以保证对8237A初始化编程结束后才响应DMA操作请求。

2.发送主清除命令,即用软件方法进行复位。

3.输出16位地址值给相应通道的地址寄存器。

4.设置传送的字节数给基字节计数器和当前字节计数器。

5.输出工作方式控制字,以确定8237A的工作方式和传输类型。

6.将屏蔽控制字写入屏蔽寄存器,去除屏蔽。

7.启动8237A,并将操作方式控制字写入控制寄存器,控制8237A工作。

8.启动DMA操作,可用软件方法将请求DMA操作控制字写入请求寄存器,或用硬件方法,等待DREQ引线端发出DMA操作申请。

习题十

10.1 A/D与D/A转换器在微机应用系统中有什么作用?

解:A/D转换器用于把被控对象的各种模拟信息变成计算机可以识别的数字信息。

D/A转换器的功能在于把对其输入的数字信号转换成与此数值成正比的模拟电压或电流。

10.2 简单叙述权电阻网络D/A转换器的基本工作原理。

解:权电阻DA网络,与二进制代码对应的每个输入位,各有一个模拟开关和一个权电阻。当某一位数字代码为“1”时,开关合上,将该位的权电阻接至基准源以产生相应的权电流。此权电流流入运算放大器的求和点,转换成相应的模拟电压输出,当数字输入代码为“0”时,开关合上,没有电流流入求和点。

当二进制位数为n时,

其中 =0或1

10.3分析叙述T形电阻网络D/A转换器的基本工作原理。与权电阻网络D/A转换器相比,它有什么优点?

解:

模拟开关Si,由输入数码Di控制,当Di=1时Si接运算放大器反相端,电流Ii流入求和电路;当Di=0时,Si则将电阻2R接地,流经2R电阻的电流与开关位置无关,为确定值。分析R-2R电阻网络可以发现,从每个节点向左看的二端网络等效电阻均为R,流入每个2R电阻的电流从高位到低位按2的整数倍递减。设基准电压源电压为VREF,则总电流为I=VREF/R,则流过各开关支路(从右到左)的电流分别为I/2、I/4、I/8和I/16。

于是可得到各支路的总电流

输出电压为:

将输入数字量扩展到n位,可得到n位倒T型电阻网络D/A转换器输出模拟量与输入数字量之间的关系式

权电阻网络D/A转换器的缺点:各个电阻阻值相处较大,尤其在输入信号的位数较多时,这个问题更加突出。要想在极为宽广的阻值范围内保证每个电阻都有很高的精度是十分困难的,尤其对制作集成电路更加不利。而用T型电阻网络来代替单一的权电阻支路,整个网络只需要R和2R两种电阻,容易实现。在集成电路中,由于所有的元件都做在同一芯片上,电阻的特性很一致,误差问题也能得到很好的解决。

10.4 D/A转换器的性能指标都有哪些?

解:分辨率、转换精度、偏移量误差、线性度、建立时间。

10.5 D/A转换器的分辨率是如何定义的?它与精度有什么关系?解:分辨率是指输入数字量的最低有效位(LSB)发生变化时,所对应的输出模拟量(常为电压)的变化量。N位的D/A转换器的分辨率位2 。转换精度描述满量程时DAC的世纪模拟输出值和理论值即接近程度。通常,DAC的转换精度为分辨率的一半。

10.6 实现D/A转换的方法还有那些?

解:权电流型,开关树型,权电容网络型。

10.7 DAC0832有什么特点?怎样用它实现双极性的输出?

解: 8位并行D/A转换;片内二级数据锁存,提供数据

输入双缓冲、单缓冲、直通三种工作方式;电流输出型

芯片(需外接运放) ; DIP20封装,CMOS低功耗器件,单

电源(+5 V~+15 V,典型值+5 V)供电;具有双缓冲控

制输出;参考电压为-10~+10V;与MCS-51连接方便。

图10.7 双极型输出原理图

10.8 试设计一个利用DAC0832产生锯齿波和正弦波的电路,并编写相应的程序。

解:

锯齿波:MOV DX,0FFF0H

MOV AL,00H

L1: OUT DX,AL

INC AL

JMP L1

正弦波:MOV R1,#00H ;取表格初值

L01: MOV A,R1

MOV DPTR,#SETTAB

MOVC A,@A+DPTR

MOV DPTR,#0FFF0H

MOVX @DPTR,A

INC R1 ;表格加一

AJMP L01 ;循环

SETTAB: DB 80H,83H,86H,89H,8DH,90H,93H,96H

DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH...

10.9 试设计一个8088CPU与两片DAC0832的接口电路,并编写程序使其所输出的信号(x,y)在示波器上显示一个正六边形的六个顶点。解:

MOV AL,80H

OUT OOH,AL ;a点

CALL DELAY1

MOV AL,0FFH

OUT 00H,AL

MOV AL,00H ;b点

MOV DX,0E000H

OUT DX,AL ;f点

CALL DELAY2

MOV AL,0FFH

OUT 00H,AL ;c点

MOV AL,00H

OUT DX,AL ;e点

CALL DELAY1

MOV AL,80H

OUT 00H,AL ;d点

JMP EXIT

DELAY1: MOV CX,0FFH

LOOP DELAY1

RET

DELAY2: MOV CX,1FEH

LOOP DELAY2

RET

EXIT: .....

10.10 什么是量化?如何减少量化误差?

解:所谓量化,就是把经过抽样得到的瞬时值将其幅度离散,即用一组规定的电平,把瞬时抽样值用最接近的电平值来表示。提高分辨率可以减少量化误差。

10.11 A/D转换器的分辨率是如何定义的?它与精度有什么关系?解:分辨率反映A/D转换器对输入微小变化响应的能力,通常用数字输出最低位(LSB)所对应的模拟输入的电平值表示。转换精度为分辨率的一半

10.12 A/D转换为什么要进行采样?采样频率根据什么确定?

解:因为被转换的模拟信号在时间上是连续的,瞬时值有无限多个,转换过程需要一定的时间,不可能把每一个瞬时值都一一转换成模拟量。因此对连续变化的模拟量要按一定的规律和周期取出其中的某一瞬时值,这个过程就是将模拟量离散化,称之为采样,采样以后用若干个离散的瞬时值来表示原来的模拟量。

通常为了使A/D输出信号经过D/A还原后能更好地反映输入模拟信号的变化,根据采样定理,采样频率一般要高于或至少等于输入信号中最高频率分量的2倍,就可以使被采样的信号能够代表原始的输入信号。在输入信号频率不是太高的实际应用中,一般取采样频率为最高频率的4~8倍。

10.13 简述逐次比较式A/D转换器的基本原理与特点。

解:逐次比较转换是一个对分搜索的过程:首先由start信号启动转换,逐次逼近寄存器将最高位置1,其余位均为0.此时D/A变换器的输出V 为满量程的1/2。比较器将V 与模拟输入信号V 相比较,若V 小于V ,则保持最高位为1,反之则为0。这样就能确定输入信号是否大于满量程的1/2。现在假设V 小于满量程的1/2,然后再将次高位置1,此时D/A变换器的输出为1/4满量程,这样便可以根据比较器的输出判断V 是否大于1/4满量程。如此递推,8位精度的A/D转换只需要8次比较即可完成。比较完成后控制器输出转换结束信号EOC将逐次逼近寄存器的内容送入锁存器作为转换结果。

逐次比较A/D转换电路规模属于中等,制作相对容易,精度与转换速度均较高,功耗低,在低分辨率(<12位)时价格便宜,但高精度时(>12位)时价格很高,而且它是对瞬时值进行转换,所以对常态干扰抑制能力弱。

10.14简述积分式A/D转换器的基本原理与特点。

解:积分型AD模数转换原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。优点是用简单电路就能获得高分辨率,因为多数是利用平均值转换,所以对常态干扰的抑制能力强。但缺点是由于转换精度依赖于积分时间,因此转换速率较低。

以下是双积分式ADC的工作原理:

工作过程分为二段时间,和Δt。

第一段时间内,被转换的电压接到积分器的输入端,进过积分时间,积分器的输出端电压为:

结束后,与极性相反的基准电压接到积分器上,此时,积分器的输出电压开始复原,当积分器输出电压回到起点(0V)时,积分过程结束。设这段时间为Δt,在内是恒定值,积分器的输出为:

10.15 什么是A/D转换器与微处理器接口的时间配合问题?如何解决?

解:A/D转换器的转换速度往往与CPU的工作速度是不同的,当转换完成,ADC会输出信号通知CPU读取数据。CPU一般采用四种方式和ADC 进行联络来实现对转换数据的读取。1、程序查询方式。CPU不断查询ADC的结束信号,一旦发现有效,则认为ADC 转换完成,可用输入指令读取数据。

2、中断方式。将转换结束信号作为中断请求信号,送入中断控制器的中断请求输入端。

3、延时方式。要预先精确知道完成一次A/D转换所需的时间,这样,CPU发出启动命令后,执行一个固定的延时程序,次程序执行完后,A/D 转换也正好结束,于是,CPU读取数据。

4、DMA方式。此方式适用于告诉A/D变换。A/D变换的速度超过CPU 的控制速度后,CPU无法对ADC进行控制,而ADC的控制则由硬件逻辑电路来完成。而转换结束信号是一批A/D转换的数据在硬件逻辑的控制下,存入高速缓存器后,通知系统DMA控制器而发出的DMA请求信号,然后系统进入DMA期间,在高速缓存区与系统RAM间进行DMA数据传送。

10.16 A/D转换器还有那些类型?各有什么特点?

解:并行比较性/串并行型:采用多个比较器,仅作一次比较而实行转换,又称Flash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模极大,价格也高,只适用于视频AD转换器等速度特别高的领域。

串并行比较型AD:结构上介于并行型和逐次比较型之间,最典型的是由2个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换,这类AD速度比逐次比较型高,电路规模比并行型小。

Σ-Δ型AD:由积分器、比较器、1位DA转换器和数字滤波器等组成。转换原理近似积分型,将输入电压转换成时间信号,用数字滤波器处理后得到数字值。电路的数字部分基本上容易单片化,因此容易做到高分辨率。主要用于音频和测量。

电容阵列逐次比较型AD:在内置DA转换器中采用电容矩阵方式,也可称为电荷再分配型。采用电容阵列可以用低廉成本制成高精度单片AD 转换器。

压频变换型:通过间接转换方式实现模数转换。原理是首先将输入的模拟信号转换成频率,然后用计数器将频率转换成数字量。从理论上讲这种AD的分辨率几乎可以无限增加,只要采样的时间能够满足输出频率分辨率的累计脉冲个数的宽度。优点是分辨率高、功耗低、价格低,但是需要外部技术电路共同完成AD转换。

10.17 A/D转换器与CPU之间的连接在采用查询方式和中断方式下有何不同?

解:查询方式下,A/D的EOC脚不使用;中断方式下,EOC脚经过反相后与单片机的 (或者 )脚相连。

10.18设某8位A/D转换器的输入电压为0~+5V,求出当输入模拟量为下列值时数字输出的数值(设参考电压为5V):

(1)1.25V (2)2V (3)2.5V (4)3.75V (5)4V (6)5V

解:1)00111111 2)01100110 3)01111111

4)10111111 5)11001100 6)11111111

10.19 设某A/D转换电路如图10-22所示。(1)请根据硬件连接给出8255的端口地址。(2)编写实现轮流对8路输入进行A/D转换的程序,并将A/D转换结果依次存入RESULT开始的内存单元。

解:8255的端口地址:6CH,6DH,6EH,6FH

MOV DX,6FH ;8255的控制口

MOV AL,10010001B ;A口和B口方式0,C口高四位输出,低四位输入

OUT DX,AL

MOV SI,RESULT ;存放数据首地址

MOV CX,08H

MOV BH,00H

LOP1: OR BH,08H

MOV AL,BH

MOV DX,6EH ;C口地址

OUT DX,AL ;启动A/D转换

AND BH,7FH ;PC7置0

MOV AL,BH

OUT DX,AL ;产生START和ALE的下降沿

LOP2: IN AL,DX ;读入端口C

TEST AL,04H ;测试PC2

JZ LOP2 ;为0,继续查询

MOV DX,6CH

IN AL,DX ;读入转换结果

MOV [SI],AL ;存储数据

INC SI

INC BH

LOOP LOP1 ;8路未完,继续

HLT

10.20 如何利用图10-20给出的I/O接口电路连接更多的芯片?例如再连接2片ADC0809和2片DAC0832?或再连接1片8255?

解:参见图10-21,由EPP总线引出的地址信号还有三根未用完。可以用来扩展其它I/O接口芯片。

典型的扩展2片DAC0832和2片ADC0809的电路如下图所示:

习题十一

11.1 列出80X86系列CPU的主要参数,并根据各种CPU的地址/数据总线推算它的存储器寻址空间大小。

解:主频、字长、总线宽度、存储器容量。若CPU的地址总线是n位的,则存储器的寻址空间为2 Byte。

11.2 什么是虚拟存储技术?它有什么作用?

解:所谓虚拟存储,就是把多个存储介质模块(如硬盘、RAID)通过一定的手段集中管理起来,所有的存储模块在一个存储池(Storage Pool)中得到统一管理,从主机和工作站的角度,看到就不是多个硬盘,而是一个分区或者卷,就好象是一个超大容量(如1T以上)的硬盘。这种可以将多种、多个存储设备统一管理起来,为使用者提供大容量、高数据传输性能的存储系统,就称之为虚拟存储。

虚拟存储避免了由于存储设备扩充所带来的管理方面的麻烦;虚拟存储可以大大提高存储系统整体访问带宽;虚拟存储技术为存储资源管理提供了更好的灵活性,可以将不同类型的存储设备集中管理使用,保障了用户以往购买的存储设备的投资;虚拟存储技术解决了存储空间使用的浪费,突破了单个物理磁盘的容量限制,极大地提高了存储资源的利用率;虚拟存储可以给管理员以更大灵活性,修改基础设施而不影响系统或应用。

11.3 请分析采用虚拟存储管理所带来的利与弊?

解:虚拟存储管理采用分页和分段技术,优点是允许运行比内存容量大的程序。缺点是覆盖块必须手动设置,程序员负担繁重。

11.4 简述保护模式下逻辑地址转换为线性地址、线性地址转换为物理地址的过程。

解:逻辑地址由段选择子和段内偏移量构成,逻辑地址与线性地址的转换由两步骤完成:

1.寻找段描述符:系统的描述符表寄存器存有描述符表在主存中的基地址,段选择子给出了段描述符在对应描述符表中的位置(即索引),这两个值相加得到描述符的物理地址,从而找到该描述符。

2.计算线性地址:从描述符中取出该段的段基址,逻辑地址内含有段内偏移地址,二者相加,得到存储单元的32位线性地址。

32位线性地址包含三个字段:页目录索引(22-31位)、页表索引(12-21位)、页内偏移量(0-11位)

线性地址向物理地址的转换由三个步骤组成:

1.寻找页表:CR3控制寄存器保存着页目录的基地址,线性地址的高10位是该页在页目录中的索引值,二者相加,得到该页组的页表基地址。

2.寻找页基地址:线性地址的中间10位是页表索引,它和页表基地址相加,得到该页目录项的地址。该目录项包含了页的基地址,它是一个物理地址。

3.计算物理地址:线性地址的低12位是页内偏移量,它和物理页的基地址相加,得到所要访问存储单元的32位物理地址。

11.5 在32位微处理器中引入保护机制的目的是什么?有那些保护措施?

解:用来区别特权访问和无特权访问模式,或指令和数据提取等,以真正发挥它(486以上)的设计能力。高级别的程序可以访问同级或低级的数据段,反之则不行。

11. 6 试解释以下几个专门技术词汇:

超标量流水线技术;超长指令字技术;超级流水线技术;并行计算机结构。

解:将一条指令分成若干个周期处理以达到多条指令重叠处理,从而提高cpu部件利用率的技术叫做标量流水技术。超级标量是指cpu内一般能有多条流水线,这些流水线能够并行处理.在单流水线结构中,指令虽然能够重叠执行,但仍然是顺序的,每个周期只能启动 (issue)或结束(retire)一条指令.超级标量结构的cpu支持指令级并行,每个周期可以启动多条指令(2-4条居多).这样,可以使得cpu 的IPC(Instruction Per Clock) > 1, 从而提高cpu处理速度。

超常指令字有点类似于超级标量,是一条指令来实现多个操作的并行执行,之所以放到一条指令是为了减少内存访问。通常一条指令多达上百位,有若干操作数,每条指令可以做不同的几种运算。那些指令可以并行执是由编译器来选择的。通常VLIW机只有一个控制器,每个周期启动一条长指令,长指令被分为几个字段,每个字段控制相应的部件。由于编译器需要考虑数据相关性,避免冲突,并且尽可能利用并行,完成指令调度,所以硬件结构较简单。

超级流水线又叫做深度流水线,它是提高cpu速度通常采取的一种技术。CPU处理指令是通过Clock来驱动的,每个clock完成一级流水线操作。每个周期所做的操作越少,那么需要的时间久越短,时间越短,频率就可以提得越高。所以超级流水线就是将cpu处理指令是得操作进一步细分,增加流水线级数来提高频率。

并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程,是提高计算机系统计算速度和处理能力的一种有效手段。它的基本思想是用多个处理器来协同求解同一问题,即将被求解的问题分解成若干个部分,各部分均由一个独立的处理机来并行计算。并行计算系统既可以是专门设计的、含有多个处理器的超级计算机,也可以是以某种方式互连的若干台独立计算机构成的集群。

11.7 简述流水线中的“相关”及其处理技术。

解:流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。

相关性分析:理论上n级流水线结构可以将微处理器的性能提高n倍,但是实际上指令之间的某种关联会阻止指令流中下一条指令的执行,造成流水线等待、停顿或被破坏。

相关种类:资源相关:有多条指令进入流水线后在同一机器周期内争用同一功能部件所发生的冲突。例如两条指令同时访问一个寄存器。数据相关:有i 和j两条指令,i指令在前,j指令在后,则三种不同类型的数据相关的含义为:

RAW读写(先写后读)?

i: R1+R2->R3 j: R3*R4->R5

WAR写读(先读后写)

微机原理及应用试题库(附答案)

《微机原理及应用》试题库 1. 8086和8088的引脚信号中, D 为地址锁存允许信号引脚。 A.CLK B.INTR C.NMI D.ALE 2. 下面的哪项是有效标识符: B A . 4LOOP: B. DELAYIS: C. MAIN A/B: D. GAMA$1: 3. 如图所示的三态输出电路,当 A 时,V B≈V DD。 A. E(ENABLE)=1, A=1 B. E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D. E(ENABLE)=0, A=0 4. 设(SS)=2000H,(SP)=0100H,(AX)=2107H,则执行指令PUSH AX 后,存放数据21H的物理地址是 D 。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的 A 。 A.符号地址B.物理地址C.偏移地址D.逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是 A 。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX,0 MOV BX,1 MOV CX,100 AA:ADD AX,BX INC BX LOOP AA HLT 执行后的结果:(AX)= ,(BX)= 。 A. 5050,99 B. 2500,100 C. 5050,101 D. 2550,102 8. 假设V1和V2是用DW定义的变量,下列指令中正确的是 A 。 A.MOV V1, 20H B.MOV V1, V2 C.MOV AL, V1 D.MOV 2000H, V2 9. – 49D的二进制补码为 A 。

微机原理基础知识选择题测试

1.若二进制数为 010111.101,则该数的十进制表示为()。(单选) A.23.5 B.23.625 C.23.75 D.23.5125 2.若无符号二进制数为 11000110,则该数的十进制表示为()。(单选) A.198 B.70 C.126 D.49 3.十进制数 81的 8421BCD码为()。(单选) A.81H B.51H C.18H D.15H 4.8位二进制数的无符号数表值范围为()。(单选) A.0~255 B.-128~+127 C.-127~+127 D.-128~+128 5.电子计算机处理信息用二进制表示的原因是()。(单选) A.节约电子元件 B.运算速度更快 C.电子器件的性能 D.处理信息更方便 6.冯?诺依曼计算机的基本特点是()。(单选) A.多指令流单数据流 B.按地址访问并顺序执行指令 C.堆栈操作 D.存储器按内容选择地址 7.程序计数器PC的作用是()。(单选) A.保存将要执行的下一条指令的地址 B.保存CPU要访问的内存单元地址 C.保存运算器运算结果内容 D.保存正在执行的一条指令 8.完整的计算机系统应包括()。(单选) A.运算器、控制器、存储器 B.主机和应用程序 C.主机和外部设备 D.硬件设备和软件系统 9.计算机中运算器的主要功能是()。(单选) A.算术运算 B.算术和逻辑运算 C.逻辑运算 D.定点和浮点运算 10.运算器执行两个补码表示的整数加法时,产生溢出的正确叙述为()。(单选) A.最高位有进位则产生溢出 B.相加结果的符号位为0则产生溢出 C.相加结果的符号位为1则产生溢出 D.相加结果的符号位与两同号加数的符号位相反,则产生溢出

微机原理及应用试卷及答案

····································密························封························线································ 学生答题不得超过此线 一、单项选择题(每小题1分,共20分。请将答案填入答题单) 1.8086CPU由两个独立的工作单元组成,它们是执行单元EU和( ). A)总线控制逻辑器 B)内部通信寄存器 C)指令寄存器 D)总线接口单元 2.8086系统若用256KB*1动态存储器芯片可望构成有效存储系统的最小容量是( ). A)256KB B)512KB C)640KB D)1MB 3.Intel8255A使用了()个端口地址。 A)1 B)2 C)3 D)4 4.PC机中为使工作于一般全嵌套方式的8259A中断控制器能接受下一个中断请求,在中断服务程序结束处就( ). A)发送OCW2指令 B)发送OCW3指令 C)执行IRET指令 D)执行POP指令 5.RAM是随机存储器,它分为( )两种. A)ROM和SRAM B)DRAM和SRAM C)ROM和DRAM D)ROM和CD-ROM 6.在程序运行过程中,确定下一条指令的物理地址的计算表达式是() A)CS×16+IP B)DS×16+SI C)SS×16+SP D)ES×16+DI 7.( )是以CPU为核心,加上存储器,I/O接口和系统总线构成的. A)微处理器 B)微型计算机 C)微型计算机系统 D)计算机 8.对于掉电,8086/8088CPU是通过( )来处理的. A)软件中断 B)可屏蔽中断 C)非屏蔽中断 D)DMA 9.计算机的存储器采用分级存储体系的主要目的是()。 A)便于读写数据 B)减小机箱的体积 C)便于系统升级 D)解决存储容量、价格和存取速度之间的矛盾 10.8259A的OCW1----中断屏蔽字( )设置. A)在ICW之前 B)只允许一次 C)可允许多次 D)仅屏蔽某中断源时11.将十六进制数163.5B转换成二进制数是)( ) A)1101010101.1111001 B)110101010.11001011 C)1110101011.1101011 D)101100011.01011011 12.Intel 8086/8088微处理器有()地址线,直接寻址内存空间的范围是()。 A)10条,64KB B)20条,64KB C)16条,1M D)20条,1M 13.Intel 8086/8088微处理器的标志寄存器中,作为记录指令操作结果的标志是()。 A)CF,OF,PF,AF,SF,ZF B) CF,PF,ZF,SF C) OF,DF,IF,SF,ZF,CF D) IF,DF,OF,CF 14.下述对标志寄存器中标志位不产生影响的指令是()。 A)JMP NEXT B) TEST AL,80H C) SHL AL,1 D) INC SI 15.简单的汇编语言程序可以通过()来建立、修改和执行。 A)连接程序 B) 调试程序 C) 汇编程序 D) 编辑程序 16.累加器AL中的内容是74H,执行CMP AL,47H指令后,累加器AL中的内容是()。

微机原理及应用教学目的任务

微机组成与工作原理 教学目的: 《微机原理及应用》是电气信息类专业、电子信息工程、自动化、生物医学工程、通信工程、电子科学与技术等专业的重要技术基础课,必修课,也是机械制造及其自动化、过程控制装备、电子材料、安全工程等专业的技术基础课。该课程提供微机原理与应用的基本理论与技术。其目的在于使学生了解微型计算机的基本结构、微型计算机与外设的数据传输方式、中断技术、输入输出接口技术及应用。 教学任务: 通过此课程的学习,使学生了解微机的基本组成,掌握微处理器、存储器、I/O接口等部件的基本组成与工作原理,理解和掌握微机工作过程、工作原理,了解I/O接口的功能、作用、组成,使学生了解常用接口电路的分析方法,具有简单接口电路的阅读能力与设计能力。 教学内容: 第一章微机基本组成与工作原理 1.1 微型计算机的结构组成 1.2 微型计算机的原理组成 1.3 微型计算机的概念组成 1.4 微型计算机的基本工作原理 第二章微处理器 2.1 微处理器的发展历史及结构特点* 2.2 8086/8088微处理器简介 2.3 32位微处理器简介 2.4 CPU的结构和功能 2.5 流水CPU 第三章总线* 3.1 总线的基本概念 3.2 总线的层次结构 3.3 总线技术 3.4 常见总线简介 第四章汇编语言 4.1 汇编语言格式* 4.2 汇编程序结构 4.3 汇编程序设计

4.2 汇编过程* 第五章存储器 5.1 存储器概况(功能、分类、特点、操作) 5.2 存储系统体系结构(Cache存储器、虚拟存储器) 5.3 内存储器 5.4 外存储器简介 第六章I/O系统和中断技术 6.1 I/O接口概述(分类、功能、组成) 6.2 CPU与外设数据传送的方式 6.3 I/O接口芯片简介(8255、8251、8253、A/D转换器、D/A转换器) 6.4 微机中断系统 第七章微机在自动控制系统中的应用

(微机原理及应用)编程题试题集

重庆科技学院试卷库系统试卷库导出试卷 微机原理及应用-编程题(43题) 题序:0017题型:06难度:01分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX和DA TAY两个字数据相乘(用MUL)。答案: 解:(1) MOV AX, DATAX MUL DATAY MOV DATAY,AX MOV DATAY+2,DX 题序:0018题型:06难度:02分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX除以23(用DIV)。 答案: 解:(1) MOV AX, DATAX MOV BL, 23 DIV BL MOV BL,AH

MOV AH, 0 MOV DATAY, AX 。存放商 MOV AL,BL MOV DATAY+2, DX 。存放余数 题序:0002题型:06难度:03分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。 答案: 解: MOV CL,0AH MOV AX,BX DIV CL MOV BX,AX 题序:0016题型:06难度:03分值:10.0章号:03节号:02 知识点: 。8086/8088指令系统 题干: 变量DATAX和DATAY定义如下: DATAX DW 0148H DW 2316H DA TAY DW 0237H DW 4052H 试编写一个程序段,实现将DATAX和DA TAY中的两个双字数据相加, 和存放在DA TAY和答案: 解:(1) MOV AX, DATAX ADD AX, DATAY MOV BX, DATAX+2 ADD BX, DATAY+2 MOV DATAY, AX MOV DATAY+2, BX

微机原理与应用试题库(附答案)

《微机原理及应用》试题库 1. 8086 和 8088 的引脚信号中,D为地址锁存允许信号引脚。 A. CLK B. INTR C.NMI D.ALE 2.下面的哪项是有效标识符:B A . 4LOOP : B. DELAYIS : C. MAIN A/ B : D.GAMA$1 : 3.如图所示的三态输出电路,当 A 时, V B≈V DD。 A. E(ENABLE)=1, A=1 B.E(ENABLE)=1, A=0 C. E(ENABLE)=0, A=1 D.E(ENABLE)=0, A=0 4. 设 (SS)=2000H , (SP)=0100H , (AX)=2107H ,则执行指令PUSH AX后,存放数据21H 的物理地址是 D。 A. 20102H B. 20101H C. 200FEH D. 200FFH 5. 汇编语言中,为了便于对变量的访问, 它常常以变量名的形式出现在程序中, 可以认为它是存放数据存储单元的A。 A.符号地址B.物理地址C.偏移地址 D .逻辑地址 6. 下列四个寄存器中,不能用来作为间接寻址方式的寄存器是A。 A. CX B. BX C. BP D. DI (C)7. 执行下列程序段: MOV AX ,0 MOV BX ,1 MOV CX , 100 AA : ADD AX ,BX INC BX LOOP AA HLT 执行后的结果:(AX)=,(BX)=。 A. 5050 , 99 B. 2500, 100 C. 5050 , 101 D. 2550 , 102 8. 假设 V1 和 V2 是用 DW 定义的变量,下列指令中正确的是A。 A . MOV V1, 20H B. MOV V1, V2 C . MOV AL, V1D. MOV2000H, V2 9. –49D 的二进制补码为A。

微机原理及应用课程设计

微机原理及应用课程设计 指导书 兰州理工大学电子信息工程系

前言 “微机原理及应用”是一门实践性和实用性都很强的课程,学习的目的在于应用。本课程设计是配合“微机原理及应用”课堂教学的一个重要的实践教学环节,在本课程设计指导书中列举了一些常用的小型设计系统,旨在起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。 全书共分两部分,第一部分是实例,书中所举实例均是在多年教学、实践的基础上开发、整理出来的。第二部分是要求学生所作的一些课程设计题目。我们希望每个学生都能自己动手独立设计完成一个典型的微机应用小系统。 本书由电工教研室多年从事“微机原理及应用”的教师编写而成。 电工教研室 2005年4月

目录 第一部分:实例 第一章:微型计算机系统的设计步骤 第二章:微型计算机系统的设计实例 第二部分:微型计算机系统设计题目 题目1:微机控制的顺序控制系统 题目2:汽车倒车测距仪 题目3:机械手专用控制器的设计 题目4:家用电热淋浴器控制器的设计 题目5:公共场所安全报警系统 题目6:微型机控制的自动钻床系统 题目7:交通灯控制系统 题目8:温度多路数据采集系统 题目9:小型自动售货机计算可控制系统 题目10:步进电机控制系统 题目11:多功能密码锁 题目12:微型计算机退火炉温度控制系统 题目13: 题目14:

第一章微型计算机系统的设计步骤 微型计算机控制系统的被控对象多种多样,设备类型、控制方式和生产过程规模各有不同,但系统设计的基本任务和步骤大致是相同的。本节主要介绍一般的微型计算机控制系统设计过程中应考虑的问题。 设计微型计算机控制系统时,首先应考虑被控系统采用微型计算机控制的必要性,应用微型机控制后对被控系统的主要性能、生产技术指标和安全性、可靠性、可维护性是否有所改善,以及在采用微型机控制后的经济效益是否显著等。在进行了上述综合分析的基础上,再决定是否选用微型机控制。 微型机控制系统的设计步骤: 1、首先要通过调研熟悉控制系统的生产过程及工艺要求,根据工艺要求确定系统应完成的任务,再提出不同的总体方案进行比较后确定出系统的总体方案。 2、确定控制算法,要测出被控对象的数学模型,根据系统品质指标确定控制算法。控制系统中要求以计算机为控制中心,通过外围和接口电路,与被控对象联系起来。 3、选择总线标准及微型计算机系统,根据被控系统对控制方式和外围设备以及计算速度进行实时控制的要求来选择微型计算机机型。 4、根据系统的总体方案和所选微型计算机对系统进行硬件设计。

微机原理总基础知识

习题一 1.1 电子计算机分成几代?各代计算机有那些特点? 解:大体上可以分为五代(电子管、晶体管、集成电路、VLSI,以及智能超级计算机时代),但是第五代计算机的定义尚未统一,也有第六代计算机的说法。 1.2 电子计算机有那些特点?有那些主要的应用? 解:速度快、精度高、具有记忆与逻辑判断能力、自动执行程序,交互性能好,多种信息表达方式,等等。 主要应用包括:科学计算、自动控制、信息处理、辅助设计、办公自动化、娱乐教育、通讯、电子商务,等等。 1.3 微型计算机与大中型计算机的主要区别是什么? 解:微型计算机广泛采用高集成度的器件,尽量做到小型化,以便家庭、办公室和移动便携的商业应用。 1.4 当前微型计算机的发展趋势是什么? 解:(1)发展高性能的32位微处理器;(2)发展专用化的单片微型计算机;(3)发展带有软件固化的微型计算机;(4)发多微处理机系统和计算机网络;(5)充实和发展外围接口电路。 1.6 为什么计算机采用二进制作为运算的基础?为什么计算机中同时又采用十进制和十六进制表示数字? 解:二进制数的运算简单且易于进行逻辑判断,与此相对应的两电平数字电路也容易实现且工作可靠。采用十六进制是为了简化表达,因为一位十六进制数字等于四位二进制数字。采用十进制是为了与常人的思维方式兼容,便于一般人员使用计算机。 1.7 二进制数字与十六进制数字之间有什么关系? 解:一位十六进制数字等于四位二进制数字。例如1010B用十六进制表示即为0AH 1.8 什么是模?钟表系统中小时、分钟、秒计数的模各是多少? 解:模数从物理意义上讲,是某种计量器的容量。在计算机中,机器表示数据的字长是固定的。对于n位数来说,模数的大小是:n位数全为1,且最末位再加1。 小时的模是12,分钟的模是60,秒的模是60。 1.9 计算机中为什么大都采用补码表示数据?它有什么优点? 解:数的原码表示形式简单,适用于乘除运算,但用原码表示的数进行加减法运算比较复杂,引入补码之后,减法运算可以用加法来实现,从而简化机器内部硬件电路的结构,且数的符号位也可以当作数值一样参与运算,因此在计算机中大都采用补码来进行加减法运算。而且用补码表示数据,0就只有一种表示方法。 1.10 什么是ASCII码?它能表示多少信息? 解:ASCII码英文全称America Standard Code for Information Interchange,中文意思:美国信息交换标准码。ASCII码划分为两个集合:128个字符的标准ASCII码和附加的128个字符的扩充和ASCII 码。第0~32号及第127号(共34个)是控制字符或通讯专用字符,第33~126号(共94个)是字符,其中第48~57号为0~9十个阿拉伯数字;65~90号为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位(b7)用作奇偶校验位。 1.11 什么是计算机发展中的“摩尔定律”? 解:30多年前,37岁的美国科学家戈登?摩尔在一本杂志上发表了一篇文章,大胆提出了后来为世人称之为"摩尔定律"的论述。摩尔在文中提出了这样的观点:处理器(CPU)的功能和复杂性每年(其后期减慢为18个月)会增加一倍,而成本却成比例地递减。 1.12 分别用二进制、八进制和十六进制表示下列十进制数据: (1)100 (2)200 (3)1000 (4)10000 解:(1)1100100,144,64 (2)11001000,310,C8 (3)1111101000,1750,3E8 (4)10011100010000,23420,2710 1.13 将下列十进制数转换为二进制数: (1)175 (2)257 (3)0.625 (4)0.156250 解:(1)10101111(2)100000001(3)0.101(4)0.00101 1.14 将下列二进制数转换为BCD码: (1)1101 (2)0.01 (3)10101.101 (4)11011.001 解:(1)00010011(2)0.00100101 (3)00100001.011000100101 (4)00100111.000100100101 1.15 将下列二进制数分别转换为八进制数和十六进制数:(1)10101011 (2)1011110011 (3)0.01101011 (4)11101010.0011 解:(1)253,AB(2)1363, 2F3(3)0.326,0.6B(4)352.14,EA.3 1.16 分别选取字长为8位和16位,写出下列数据的原码、反码。(1)X= +31 (2)Y= -31 (3)Z= +169 (4)W= -169 解:(1)00011111,00011111;0000000000011111,0000000000011111 (2)10011111,11100000;1000000000011111,1111111111100000 (3)0000000010101001,0000000010101001 (4)1000000010101001,1111111101010110 1.17 分别选取字长为8位和16位,写出下列数据的原码、补码。(1)X= +65 (2)Y= -65 (3)Z= +129 (4)W= -257 解:(1)01000001,01000001;0000000001000001,0000000001000001 (2)11000001,10111111;1000000001000001,1111111110111111 (3)0000000010000001,0000000010000001 (4)1000000100000001,1111111011111111 1.18 已知数的补码形式表示如下,分别求出数的原码与真值。 (1)[X]补= 0 .10011 (2)[Y]补= 1 .10011 (3)[Z]补= FFFH (4)[W]补= 800H 解:(1)0.10011,0.59375 (2)1.01101,-0.40625 (3)801H,-1 (4)800H,-0 1.19 如果将FFH与01H相加,会产生溢出吗? 解:不会(FF=-1,-1+1=0) 1.20 选取8位字长,分别用补码计算下列各式,并且判断是否有进位及溢出? (1)01111001+01110000 (2)-01111001-01110001 (3)01111100-01111111 (4)-01010001+01110001 解:(1)11101001 最高有效位有进位,符号位无进位,有溢出(2)00010110 最高有效位无进位,符号位有进位,有溢出 (3)11111101 最高有效位无进位,符号位无进位,无溢出 (4)00100000 最高有效位有进位,符号位有进位,无溢出 1.21 用16位补码计算下列各式,并判断结果是否有进位及溢出:(1)1234+5678H (2)8888H-9999H (3)-3456H-8899H (4)-7788H+0FFFFH 解:(1)68ACH,最高有效位无进位,符号位无进位,无溢出 (2)8001H, 最高有效位有进位,符号位有进位,无溢出 (3)4311H,最高有效位有进位,符号位有进位,无溢出 (4)0879H,最高有效位无进位,符号位有进位,有溢出 1.22 分别写出用下列表示方法所能够表示的有符号和无符号数据的范围: (1)8位二进制(2)10位二进制 (3)16位二进制(4)32位二进制解:(1)-128--+127,0—255 (2)-512--+511,0—1023 (3)-32768--+32767,0—65535 (4)-2147483648--+2147483647,0--4294967296 1.23 分别写出下列字符串的ASCII码: (1)10abc (2)RF56 (3)Z#12 (4)W=-2 解:(1)00110001001100000110000101100010 (2)01010010010001100011010100110110 (3)01011010001000110011000100110010 (4)01010111001111010010110100110010 1.24 写出下列数字所代表的无符号数、有符号数和ASCII码:(1)89H (2)48H (3)1234H (4)8899H 解:(1)137,-9,0011100000111001 (2)72,+72,0011010000111000 (3)4660,+4660,00110001001100100011001100110100 (4)34969,-2201,00111000001110000011100100111001 1.25 已知[x+y]补=7001H,[x-y]补=0001H,试求[2x]补,[2y]补,[x]补,[y]补,x和y。 解:7002H,7000H,3801H,3800H,3801H,3800H

微机原理试题及答案

微机原理试题及答案 微机原理试题及答案 一、填空题(每空1分,共15分) 1、在计算机中,对带符号数的运算均采用补码。带符号负数1100 0011的补码为_10111101_。2、单片机通常采用“三总线”的应用模式,芯片内部设有单独的地址总线、数据总线_ 和控制总线。 3、当使用80C51单片机时,需要扩展外部程序存储器,此时EA应为_0__。 4、若(A)=B3H,(R0)=A8H,执行指令XRL A,R0之后,(A)=_1BH__。 5、在80C51单片机中,带借位减法SUBB指令中,差的D7需借位时,_CY_=1,差的D3需借位时,AC_=1。 6、80C51单片机中,在调用子程序前,用_PUSH__指令将子程序中所需数据压入堆栈,进入执行子程序时,再用___POP__指令从堆栈中弹出数据。 7、在十六进制数与ASCII码值的转换过程中,当十六进制数在0~9之间时,其对应的ASCII码值为该十六进制数加___30H______。 8、外部中断INT0和INT1有两种触发方式:___电平触发方式_____和__边沿触发方式__。 9、在单片机串行通信中,依发送与接收设备时钟的配置情况,串行通信可以分为 __异步通信___和__同步通信_。10、若累加器A中的数据为

0111 0010B,则PSW中的P=__0___。二、选择题(每题1分,共15分) 1、单片机是在一片集成电路芯片上集成了以下部分,除了( D ) A、微处理器 B、存储器 C、I/O接口电路 D、串口通信接口2、一个机器周期包含多少个晶振周期(D ) A、2 B、6 C、8 D、12 3、80C51单片机有21个特殊功能寄存器,其中与串行口相关的有以下几个,除了( B ) A、SBUF B、TCON C、SCON D、PCON 4、 80C51系列单片机具有4个8位的并行I/O口,其中哪个口工作时需要外接上拉电阻(A ) A、P0 B、P1 C、P2 D、P3 5、寄存器中的内容为地址,从该地址去取操作数的寻址方式称为( C ) A、寄存器寻址 B、直接寻址 C、寄存器间接寻址 D、变址寻址6、源地址为1005H。目的'地址为 0F87H。当执行指令“JC rel”时,rel为( B )。A、7EH B、80H C、82H D、84H 7、若(R0)=30H,(30H)=75H,(75H)=90H,执行指令MOV A,@R0后,(A)=__B____。A、30H B、75H C、90H D、00H 8、下列哪个语句是起始地址设置伪指令( A )。A、ORG B、END C、DW D、EQU 9、在80C51单片机中,各中断优先级最低的是( D )。A、外部中断0 B、外部中断1 C、定时器0 D、计数器1 10、80C51单片机的中断响应时间至少需要( C )个完整的机器周期。A、1 B、2 C、3 D、5 11、在80C51单片机中,

微机原理及应用课程设计报告最终版

《微机原理及应用》课程设计报告 题目LED16*16点阵实验 学院电子信息工程学院 专业电子信息工程 组长姓名和学号 学生姓名和学号 指导教师 2015 年 1 月 22 日

目录 1 选题目的、意义及任务 (1) 1.1 选题目的 (1) 1.2 选题意义 (1) 1.3 设计任务 (1) 2 方案设计 (2) 2.1设计思路......................... . (2) 2.2总体设计 (3) 2.3设计论证 (3) 2.4硬件连接 (3) 3 设计流程 (6) 3.1程序流程图 (6) 4 主程序分析 (7) 4.1程序分析 (7) 4.2功能解释 (9) 5 调试结果 (9) 5.1硬件、软件实现 (9) 5.2结果图 (10) 6 团队构成 (10) 7 问题分析 (11) 8 心得体会 (11) 8 附录 (14)

1 选题目的、意义及任务 1.1 选题目的 本次微机原理及应用课程设计我们组的选题是LED16*16点阵实验。LED点阵通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,LED点阵常常被用来做点阵屏。点阵屏是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示系统中各模块的显示方式有静态和动态显示两种,静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的脉冲信号,反复循环以上操作,就可以显示各种图形或文字信息。对于我们的课程设计主要目的如下: ①熟悉8155、8255的功能,了解点阵显示的原理及控制方法; ②学会使用LED点阵,通过编程显示不同字符; 1.2选题意义 LED显示屏具有亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定等特点。广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。因此16*16LED点阵实验的课程设计对实际的生产和生活具有非常重要的指导意义。通过LED16*16点阵实验来让我们更好地理解微机工作的原理,并更深层次的了解各大芯片的用法以及功能。 1.3设计任务 设计一个能显示16X16点阵图文LED显示屏,要求能显示文字,文字应稳定、清晰,文字以卷帘形式向上滚动显示“欢迎使用星研实验仪”。

微机原理及应用期末试卷及答案

微机原理与汇编语言(期末试卷A答案) 一、单项选择题(每题2分,共40分) 1.(B )用来存放即将执行的指令的偏移地址的寄存器是 A.SP B.IP C.BP D.CS 2.(A )源变址寄存器是 A.SI B.DI C.SP D.BX 3.(B )设SP=1110H,执行PUSH AX后,SP中的内容为 A.SP=1112H B.SP=110EH C.SP=1111H D.SP=110FH 4.(D )语句DA1 DB 2 DUP(3,5,7)汇编后,与该语句功能等同的语句是A.DA1 DB 3,5,7 B.DA1 DB 2,3,5,7 C.DA1 DB 3,5,7,2 D.DA1 DB 3,5,7,3,5,7 5.( B )下面四个寄存器中,不能用来作为间接寻址的寄存器是 A.BX B.CX C.BP D.DI 6.( C )确定下列哪些数据在汇编语言中是非法的 A.19AH B.1372 C.102B D.145 7.(D)若栈顶的物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为 A.20102H B.20101H C.200FFH D.200FEH 8.( C )当执行完下列指令序列后,标志为CF和SF的值是 MOV AL,0C4H ADD AL,9DH A.0,0 B.0,1 C.1,0 D.1,1 9.( D )JMP WORD PTR[BX]的转移目标地址是 A.BX中的内容B.SP+BX的和 C.IP+[BX]之和D.BX指示的内存单元的内容 10.( B )8086/8088CPU的I/O指令采用间接寻址时,可以使用的寄存器是A.BX B.DX C.SI D.DI 11.(C )完成将BX清零,并使标志寄存器CF清零,下面指令错误的是A.SUB BX , BX B.XOR BX ,BX C.MOV BX,0 D.AND BX,0000H 12.(D )下面数据传送指令中,正确的是 A.MOV BUF1,BUF2 B.MOV CS,AX C.MOV CL,1000 D.MOV DX,WORD PTR[BP+DI] 13.(D )下列存储器哪一种存取速度最快 A.硬盘B.DROM C.ROM D.Cache 14.(B )完成将有符号数BX的内容除以2的正确指令是 A.SHR BX,1 B.SAR BX,1 C.ROR BX,1 D.RCR BX,1 15.( C )指令LOOPZ的循环执行条件是 A.CX≠0且ZF=0 B.CX≠0或ZF=0 C.CX≠0且ZF=1 D.CX≠0或ZF=1 16.(B )以8086/8088为CPU的微机内存最大容量为 A .4M B B.1MB C.640KB D.64KB 17 (C )与1A.5H不等的数据是 A.26.3125D B.11010.0101B C.32.5Q 18.( A )8位二进制补码表示的整数数据范围是 A.-128~127 B.-127~127 C.-128~128 D.-127~128 19.( A )下列四个寄存器中,不允许用传送指令赋值的寄存器是 A.CS B.DS C.ES D.SS 20.( B )指令MOV 100[SI][BP],AX的目的操作数的隐含段为 A.数据段 B.堆栈段 C.代码段 D.附加段 二、填空题(每空2分,共20分) 1.225D= 11100001 B= E1 H 2.已知X=-1011011,求[X]补= 10100101 。 3.地址2000H:0480H,其物理地址是20480H ,段地址是2000H ,偏移地址是0480H 。 4.按存储器的位置,可以将存储器分为内存储器和外存储器。5.8086最多可处理256 种中断,对每一个中断设置一个中断类型码。 三、判断题(共10分,对的画√,错的画×) 1.(×)在8位补码表示中,10000000表示的真值为-0 2.(×)奇偶标志位PF,当运算结果的低8位中有偶数个1时,被置为0。3.(×)CS、DS、ES和SS段都可以存放指令代码。 4.(×)MOV CS,[SI] 5.(×)MOV [DI],[SI] 6.(√)两数相等时转移可用JZ指令。 7.(×)OUT [BX],AL 8.(×)当IF=0时,CPU不能响应NMI中断。 9.(√)已知AL,BX为带符号数,计算AL*BX的乘积,使用下述程序段。 CBW IMUL BX 10.(√)在8位补码表示法中,对-128求补会产生溢出。 四、简答题(共20分) 1.冯·诺依曼型计算机的结构由哪些部分组成?各部分的功能是什么?(10分) 答:冯·诺依曼型计算机在硬件结构上主要由运算器,控制器,存储器,输

微机原理及应用A课程教学大纲

《微机原理及应用A》课程教学大纲 Microcomputer Principle and Application A 课程代码:课程性质:专业基础理论课/必修 适用专业:信息安全 开课学期:3 总学时数:56 总学分数:3.5 编写年月:2005年7月修订年月:2007年7月 执笔:刘科峰 一、课程的性质和目的: 微机原理课程是信息与计算科学专业的一门重要的专业基础选修课。通过学习本课程能了解微型计算机的内部运行原理及微机接口应用的基本方法,初步掌握汇编语言程序设计的有关基本知识和程序设计的方法,为学习本专业后续课程打下良好的基础。 二、课程教学内容 第1章计算机基本知识(4学时) 了解计算机的发展,掌握微型计算机中信息的表示及运算,掌握几种进制之间的相互转换的方法。 本章知识点为:计算机的发展,计算机编程语言的发展,二、十、十六进制数的表示与运算,字符的编码表示,二、十、十六进制之间的相互转换。 第二章 8086系统结构与80x86 CPU(8学时) 理解8086 CPU结构和8086系统的结构,了解8086 CPU内部时序和80x86典型微处理机。 本章知识点为:8086 CPU结构,8086系统的结构,最小和最大模式系统,8086 CPU内部时序,80486 CPU,Pentium系列微处理机。 第3章 8086的指令系统(8学时) 了解8086 指令的特点,理解8086的指令格式及数据类型,掌握8086的寻址方式和8086的各类指令。 本章知识点为:8086 指令的特点,8086的寻址方式,8086的指令格式,指令中的数据类型,8086的指令集。 第4章 8086汇编语言程序设计(16学时) 了解汇编语言程序设计的两种语句、程序的基本结构。掌握编程技巧和上机调试技术,通过大量具有代表性的例题,由浅入深地引导学生进行汇编语言程序设计。 本章知识点为:8086汇编语言的语句,8086汇编语言中的伪指令,8086汇编语言中的运算符,汇编语言程序设计,DOS功能调用与子程序设计,汇编语言程序上机调试 第5章存储器原理与接口(4学时) 了解存储器分类和计算机存储体系的塔形结构,了解高速缓存的概念及应用场合和虚拟存储的概念,掌握CPU与存储器芯片的连接技术。

微机原理

《微型机原理与汇编语言》课程复习资料 一、单项选择题: 1.设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为 [ ] A.51H B.A3H C.47H D.0C5H 2.下述指令的执行结果是 [ ] MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3.完成对CL寄存器的内容乘以4的正确操作是 [ ] A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指 [ ] A.ADD BH,01H B.OR BH,01H C.XOR BH,01H D.TEST BH,01H 5.假设(AL)= 37H,(BL)= 95H,执行指令IMUL BL后(AX)= [ ] A.0E903H B.2003H C.0DBBH D.2008H 6.下面的数据传送指令中,错误的操作是 [ ] A.MOV SS:[BX+DI],1000H B.MOV DX,1000H C.MOV WORD PTR[BX],1000H D.MOV DS,2000H 7.CPU 要访问的某一存储单元的实际地址称 [ ] A.段地址 B.偏移地址 C.物理地址 D.逻辑地址 8.某存储单元的物理地址是 12345H,可以作为它的段地址有 [ ] A.2345H B.12345H C.12340H D.1234H 9.计算机能直接识别的的语言 [ ] A.汇编语言 B.机器语言 C.高级语言 D.低级语言 10.下列指令中操作数在代码段中的是 [ ] A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为 [ ] A.直接、立即、间接 B.直接、间接、立即 C.立即、直接、间接 D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是 [ ] A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位 CF和OF的值是 [ ] MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14.JMP BX的目标地址偏移量是 [ ] A.SI 的内容 B.SI 所指向的内存字单元之内容 C.IP+SI 的内容 D.IP+[SI] 15.指令 MOV AX,10[BX]的源操作数的寻址方式是 [ ] A.基址寻址 B.寄存器寻址 C.变址寻址 D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的? [ ] A.19BH+25D B.25+AL C.108-102Q D.101B*OABH 17.用来存放即将执行的指令的偏移地址的寄存器是 [ ] A.SP B.IP C.BP D.CS 18.源变址寄存器是 [ ] A.SI B.DI C.SP D.BX 19.设SP=1200H,执行POP AX后,SP中的内容为 [ ] A.SP=1112H B.SP=11OEH C.SP=1111H D.SP=11OFH

《微机原理及应用》B 期末考试试题及参考答案

《微机原理及应用》复习题B 一、填空题(共20分) 1.总线周期的含义是;8086/8088 的基本总线周期由个时钟周期组成;如果CPU 的时钟频率为4.77MHz,那么它的一个时钟周期为ns,一个基本总线周期为ns。 2.8086 CPU的M/IO信号是,高电平时表示。 3.总线传输率是指;若某总线的工作频率最高为8MHz,数据总线宽度为16位,则该总线的最大传输率为M Byte/s。 4.I/O端口的编址方式有两种,分别为:和。 5.串行传输的信息格式广泛采用着异步和同步格式。异步格式传送一个字符由4部分组成,分别为起始位,位,和停止位。 6.在8086系统中,一个中断类型号为0DBH的中断服务子程序位于从8100H:1234H开始的内存中,则相应的中断矢量所在的起始物理地址为_ _,从该地址开始连续4个存储单元存放的内容依次为_ 、、和 _。 7.用2k×8的SRAM芯片组成16K×16的存储器,共需SRAM芯片_ _片,片内地址和产生片选信号的地址分别为_ 位和_位。 二、选择题(包括单项和多项选择,每小题2分,共20分) 1.下列说法正确的是_ _ __。 A. CPU一般包括ALU、控制器、寄存器阵列等主要部件。 B. CPU中的程序计数器是控制器的重要部件,总是指向下一条指令的地址。 C. 指令周期一般由几个机器周期组成,机器周期是CPU工作的最小时间单位。 D. 8086 CPU的寄存器都是16位的,但指令指针是20位。 2.下列说法正确的是_ _ __。 A.通用寄存器包括AX、BX、CX、DX,它们都可以作为累加器使用。 B.使用BP做间址寄存器时,默认使用DS做段寄存器。 C.做字符串操作时,源指针与目的指针使用的段寄存器不同。 D. 形成堆栈地址的是SS与SP。 3.下列说法正确的是_ _ __。 A. 8086 CPU有1M字节地址空间,其中最低64K是IO地址空间。 B. 8086 CPU有16位数据线和20位地址线,因此能访问2M字节存储器。 C. 8086 CPU在传送8位数据时,总是使用数据总线低8位。 D. 8086 CPU的NMI和INTR都是中断请求输入信号。 4.下列指令中有语法错误的是_ _ __。 A. MOV AL,DS:[BP] B. MOV [DI],0 C. JMP WORD PTR[BX] D. PUSH WORD PTR[SI-2] 5.地址总线为32位的微机系统中其内存最大容量为_ _ __。 A. 2000KB B. 2048KB C. 2048MB D. 4096MB 6. 设串行异步通信的数据格式是:1位停止位,7位数据位,1位校验位,1位起始位,若传输率 1

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