微机原理题库_第1页
微机原理题库_第2页
微机原理题库_第3页
微机原理题库_第4页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章微型计算机基础知识一. 填空题将10110.10111B的十六进制数是_______________,34.97H的十进制数是_______________,将114.35转换为二进制为______________。解答:10110.10111B的十六进制数是16.B8H,34.97H的十进制数是52.6055,将114.35转换二进制为1110010.01011B。100101.11B+(110101.1)BCD+5A.18H=___________D解答: 100101.11B+(110101.1)BCD+5A.18H= 163.6438D3.每个汉字的编码有字节组成,ASCII的最高位B7=,而汉字的内码的最高位B7=。计算机根据字节的最高位来区分ASCII码和汉字内码。解答:每个汉字的编码有2个字节组成,ASCII的最高位B7=0,而汉字的内码的最高位B7=。计算机根据字节的最高位来区分ASCII码和汉字内码。[X]补=0A8H,则X=_______D.解答:X=_-88_D5.已知[X]补=00010111B,则[-4X]补=B解答:[-4X]补=10100100B6.若[X]原=[Y]反=[Z]补=90H,试用十进制数分别写出其大小,X=;Y=;Z=。解答:X=-16;Y=-111;Z=-1127.计算机的主机由 、控制器、主存储器组成。解答:计算机的主机由 运算器 、控制器、主存储器组成。__________确定了计算机的5个基本部件:输入器、_________、运算器和__________和控制器,程序和数据存放在__________中,并采用了二进制。解答:冯·诺依曼结构计算机 确定了计算机的 5个基本部件:输入器、 输出器 、运算器和存储器和控制器。数据和程序都是存放在 存储器 中,并采用了二进制。将下列十六进制数的ASCII码转换为十进制数。(1)313035H (2)374341H (3)32303030H (4)38413543H解答:(1)313035H=105H=100H+5H=256+5=2612)374341H=7CAH=800H-36H=2048-(40H-10)=2048-(64-10)=19943)32303030H=2000H=81924)38413543H=8A5CH=8000H+800H+200H+50H+0CH=32768+2048+512+80+12=3542010.一个8位的二进制补码数,它的十六进制表示为 A9H,它的十进制数值为 _________。解答:-87D二. 选择题1.用BCD码进行相加,结果为 BCD码,为得到正确的结果对高 4位和低4为都进行加6修正的是 。A.38+49 B.33+34 C.91+66 D.87+15答:D2.补码减法运算是指( )。A.操作数用补码表示,符号位单独处理B.操作数用补码表示,连同符号位一起相加C.操作数用补码表示,将减数变为机器负数然后连同符号位相加D.操作数用补码表示,将被减数变为机器负数补,然后相加答:C3.0A7H表示成二进制为

___________,如果是无符号数它表示的十进制数为

___________;如果为有符号数它表示的十进制数是

___________。A.10100111B;167;-167B.10100111B;167;-59C.10100111B;167;-89D.10100111B;

89;-89答:C4.10位二进制补码表示的十进制整数范围为:

+511—-512,后者补码为:(

)A.0000000000

B.1000000000

C.1111111110

D.1111111111答:B5.

十六进制数

88H,可表示成下面几种形式,请找出错误的表示(

)。A.无符号十进制 136C.压缩型BCD码十进制数

88

B.带符号十进制数 -120D.8位二进制-8的补码表示答:D6.设机器字长为 8位,最高位为符号位,下述各补码运算可能产生负溢出的是 _______。A.48H+64HB.0B4H-63HC.2AH-53HD.37H+0C7H答:B7.在计算机内部,一切信息的存取、处理和传送都是以_______形式进行的。A.EBCDIC码B.ASCII码C.十六进制编码D.二进制编码答:D8.十进制正数38的八位二进制补码是______。A.00011001B.10100110C.10011001D.00100110答:D三.是非判断题1、在第三代计算机期间出现了操作系统。 ( √ )2、对于种类不同的计算机,其机器指令系统都是相同的。 (× )3、在计算机中,数据单位 bit的意思是字节。 ( × )4、八进制数的基数为

8,因此在八进制数中可以使用的数字符号是

0、1、2、3、4、5、6、7、8。(

×

)5、在汉字国标码

GB2312-80的字符集中,共收集了

6763个常用汉字。(√

)四.问答题微处理器、微机和微机系统之间有什么不同?2.设当两个正数相加时,补码溢出意味着什么?两个负数相加能溢出吗? 试举例说明。在计算机中为什么都采用二进制而不采用十进制数?二进制数由哪两种缩写形式?什么是进制的基和权?四种进制之间怎样转换?典型的微型计算机中有哪几种总线?它们各自传送什么类型的信息?第2章微处理器一.填空题1.8086/8088CPU在结构 上面由两个独立的 处理单元__________和_________构成,这两个单 元可以____________工作,从而加快了程序的运行速度。解答:8086/8088CPU在结构上面由两个独立的处理单元

____BIU______和___EU____构成,这两个单元可以___并行____工作,从而加快了程序的运行速度。2.8086是Intel系列的16位微处理器,从功能上,它分为两部分即总线接口部件和执行部件。其中,总线接口部件由、、、、等寄存器及20位地址加法器和6字节指令队列构成。执行部件由4个通用寄存器,即;4个专用寄存器,即、、、等寄存器和算术逻辑单元组成。解答:8086是Intel系列的16位微处理器,从功能上,它分为两部分即总线接口部件和执行部件。其中,总线接口部件由代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES、指令指针寄存器IP等寄存器及20位地址加法器和6字节指令队列构成。执行部件由4个通用寄存器,即AX、BX、CX和DX;4个专用寄存器,即SP、BP、DI、SI等寄存器和算术逻辑单元组成。3.8086中的BIU由个位段寄存器、一个位指令指针、字节指令队列、位地址加法器和控制电路组成。解答:8088/8086中的BIU由4个16位段寄存器、一个16位指令指针、6字节指令队列、20位地址加法器和总线控制电路组成。4.指令队列位于列有 个字节。解答:指令队列位于的指令队列有 6

,它存放内存中取出的BIU ,它存放内存中取出的个字节,而 8088的指令队列有

,8086的指令队列有 个字节,而将被执行的下一条或下几条指令4 个字节。

8088

的指令队,80865.决定计算机指令执行顺序的寄存器是解答:决定计算机指令执行顺序的寄存器是

,它总是指向IP ,它总是指向

。指向下一条指令所在的内存单元的偏移地址 。6.用于反映指令执行结果或控制指令执行的寄存器称为解答:用于反映指令执行结果或控制指令执行的寄存器称为

寄存器。控制

寄存器。7.任何CPU都有一个寄存器存放程序运行状态标志信息,在结果是否为零决定程序分支走向的位分别是 。解答:任何CPU都有一个寄存器存放程序运行状态标志信息,在据运算结果是否为零决定程序分支走向的位分别是 ZF 。

8086中,该寄存器是8086中,该寄存器是

。其中,根据运算FR 。其中,根8.已知[X]补=00010111B,[Y]补=01101101B,则结果[X-Y]补=B,且运算结果使6个状态标志位CF=SF=ZF=AF=PFOF=。解答:[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补[Y]补 =01101101B[-Y]真值=-1101101B[-Y]原=11101101B[-Y]反=10010010B[-Y]补=10010011B[X-Y]补=[X]补-[Y]补=[X]补+[-Y]补=00010111B+10010011B运算结果没用进位 CF=0运算结果的最高位为 1,结果为负数,则 SF=1运算结果的各位不全为 0,则ZF=0运算结果的低 4位没用向高位产生进位,则 AF=0运算结果的这 8位中1的个数为4个,为偶数个 PF=1运算结果的最高位和次高位都无进位, D7C=0,D6C=0因此OF=D7C D6C=0,无溢出。本题的正确答案为: [X]补=00010111B,[Y]补=01101101B,则结果[X-Y]补= 10101010 B,且运算结果使 6个状态标志位 CF= 0 SF= 1 ZF= 0 AF= 0 PF 1 OF=0 。9在8088/8086存储空间中,要求各个逻辑段从节的整数开始,即段首址的低 4位必须是 。解答:在8088/8086存储空间中,要求各个逻辑段从节的整数开始,即段首址的低 4位必须是 012.8086/8088CPU的BIU单元中共有 4个段寄存器:CS、DS、ES、SS。其中, 用来存放当前代码段的基地址, 用来存放当前数据段的基地址。解答:8086/8088CPU的BIU单元中共有 4个段寄存器:CS、DS、ES、SS。其中, CS 用来存放当前代码段的基地址, DS 用来存放当前数据段的基地址。13 只能隐含使用某个段寄存器,而不能用其它段寄存器代替。 操作隐含使用某个段寄存器,使用其它段寄存器。解答: 计算程序的堆栈 只能隐含使用段寄存器 CS,而不能用其它段寄存器代替。 有堆栈操作隐含使用某个段寄存器 SS, 对数据的存取 隐含使用 DS或ES段寄存器。15.逻辑地址由段基值和 组成。将逻辑地址转换为物理地址的公式是 。其中的段基值是由 存储。解答:逻辑地址由段基值和 偏移量 组成。将逻辑地址转换为物理地址的公式是 物理地址=段基址×10H+偏移量 。其中的段基值是由 段寄存器 存储。16.逻辑地址9B50H:2C00H对应的物理地址是 H。解答:物理地址=段基址×10H+偏移量9B50H:2C00H对应的物理地址= 9B50H×10H+2C00H=9E100H本题的正确答案为:逻辑地址 9B50H:2C00H对应的物理地址是 9E100 H。17.如果一个 30个字的数据区,它的起始地址是 2000H:3000H,则这个数据区的首字单元物理地址是 ,末字单元物理地址是 。解答:该数据区的首字单元物理地址是= 2000H×10H+3000H=23000H该数据区的空间是 30个字,末字单元物理地址的偏移量离首字单元物理地址的偏移量是 30个字,那么末字单元物理地址在首字单元物理地址上增加了( 30-1=29)个字,就是 58个字节,因此末字单元物理地址=首字单元物理地址+ 58D=23000H+3AH=2303AH。本题的正确答案为:如果一个 30个字的数据区,它的起始地址是 2000H:3000H,则这个数据区的首字单元物理地址是 23000H ,末字单元物理地址是 2303AH 。19.8088CPU内的堆栈是一种特殊的数据存储区,堆栈操作是 ________操作(字/字节?)其存取采用________________的原则,它由_______________作地址指针管理。解答:8088CPU内的堆栈是一种特殊的数据存储区,堆栈操作是____字____操作(字/字节?)其存取采用___后进先出___的原则,它由____SP_____作地址指针管理。21.若8086系统中SS=1050H,SP=0008H,此时堆栈顶的物理地址为。8086在执行PUSH指令后,操作数存放的的理地址为,指令执行后的堆栈指针寄存器SP的内容。解答::若8086系统中SS=1050H,SP=0008H,此时堆栈顶的物理地址为10508H。8086在执行PUSH指令后,操作数存放的的理地址为10506H,指令执行后的堆栈指针寄存器SP的内容0006H。22.8086微机中寄存器中存放的是当前栈区的的基地址。堆栈区的存取原则为。在8086/8088系统中,栈区最大容量为。若CS=2000H,DS=2500H,SS=3000H,ES=3500H,SP=0100H,AX=2FA6H,则这个栈区的物理地址范围为,CPU执行PUSHAX指令后,栈顶地址为,该栈顶单元存放的内容为。解答:8086微机中SS寄存器中存放的是当前栈区的的基地址。堆栈区的存取原则为先进后出。在8086/8088系统中,栈区最大容量为64KB。若CS=2000H,DS=2500H,SS=3000H,ES=3500H,SP=0100H,AX=2FA6H,则这个栈区的物理地址范围为30000H~30100H,CPU执行PUSHAX指令后,栈顶地址为300FEH,该栈顶单元存放的内容为A6H。23.在8086系统中,已知当前(SS)=2360H,(SP)=0800H,该堆栈段在存储器中的物理地址范围为__________。若往堆栈中存入20个字数据,那么SP的内容为__________,其物理地址为_________。解答:在8086系统中,已知当前(SS)=2360H,(SP)=0800H,该堆栈段在存储器中的物理地址范围为23600H~23E00H。若往堆栈中存入20个字数据,那么SP的内容为07D8H,其物理地址为23DD8H。24.8086系统中一个基本的总线周期由个时钟周期组成,主频若为30MHz,一个时钟周期为,一个基本的总线周期为秒。解答:8086系统中一个基本的总线周期由4个时钟周期组成,主频若为30MHz,一个时钟周期为0.0333s,一个基本的总线周期为0.1333s。25.当存储器的读出时间大于CPU所要求的时间时,为了保证CPU与存储器的周期配合,就要利用信号,使CPU插入一个状态。解答:当存储器的读出时间大于CPU所要求的时间时,为了保证CPU与存储器的周期配合,就要利用READY信号,使CPU插入一个Tw状态。27.8086CPU运用其BHE,AD0两个引用配合,执行读/写操作,若BHE=1,A0=0,其执行相应的操作为若BHE=0,A0=1,其执行相应的操作为。解答::8086CPU运用其BHE,AD0两个引用配合,执行读/写操作,若BHE=1,A0=0,其执行相应的操作为从偶地址单元读/写一个字节。若BHE=0,A0=1,其执行相应的操作为从奇地址单元读/写一个字节。28.8086向内存地址1200BH写一个字节的数据时,需要一个总线周期,在该总线周期的T1状态,BHE为,A0为。解答:8086向内存地址1200BH写一个字节的数据时,需要一个总线周期,在该总线周期的T1状态,BHE为0,A0为1。29.8086CPU的存储器分为奇地址库和偶地址库两个存储体,对于奇地址库选择信号是,对于偶地址库的选择信号是,对于每个存储体内存储单元的选择信号是。解答:8086CPU的存储器分为奇地址库和偶地址库两个存储体,对于奇地址库选择信号是BHE,对于偶地址库的选择信号是A0,对于每个存储体内存储单元的选择信号是READY。8086向存储器的奇地址写一个字节的数据时,需要一个总线周期,在该总线周期的第一个时钟周期中,BHE为,A0为,将数据送到。解答:8086向存储器的奇地址写一个字节的数据时,需要一个总线周期,在该总线周期的第一个时钟周期中,BHE为0,A0为1,将数据送到AD15~AD8。31.8086CPU上电复位后,CS=,IP=,DS=,标志寄存器F=。解答:所以本题的正确答案为:8086CPU上电复位后,CS=0FFFFH,IP=0,DS=0,标志寄存器F=0。32.8086/8088CPU复位后,CS的值为 H,IP的值为 H。解答:8086/8088CPU在复位启动后,指令指针寄存器 IP=0、代码段寄存器 CS=0FFFFH。33.决定8086/8088CPU工作模式的引脚是 。解答:决定8086/8088CPU工作模式的引脚是 MN/ MX 。二.选择题1.为了提高程序的执行速度, 充分使用总线,8086微处理器被设计为两个独立的功能部件: ___C_______。A、运算器和控制器 B、运算器和寄存器组C、总线接口部件 BIU和执行部件 EU D、总线接口部件 BIU和控制器运算器的主要功能是进行___C_______。A、逻辑运算??????????? B、算术运算C、逻辑运算和算术运算 ?? D、以上均不对3.指令寄存器是___A_______A、IP B、SP C、BP D、PSWCPU内的指令指针寄存器IP的作用是:CA、用于存放某特定程序的地址指针。B、用于存放某条指令的地址。C、总是跟踪记忆当前要执行的指令的地址。D、CPU总是根据 IP所指明的物理地址中取指令执行,与 CS无关。5.8086/8088CPU内部有一个始终指示下条指令偏移地址的部件是( C )A、SP B、CS C、IP D、BP6.在补码运算时,如果运算结果为负,则标志寄存器中为 1的标志位是( B )。A、CF B、SF C、PF D、IF7.控制字符串操作指令步进方向的标志是( B )。A、CF B、DF C、ZF D、OF8.微型计算机中各部件之间是用 ( D )连接起来的.A.AB B.CD C.DB D.系统总线8086CPU外部的地址总线和数据总线分别为(B)位。A、16,16; B、20,16; C、16,8; D、20,20I/O设备与CPU之间交换信息,其状态信息是通过(C)总线传送给CPU的A.地址 B.数据 C.控制 D.三者均可用8088CPU组成的PC机数据线是(C)A.8条单向线 B.16条单向线 C.8条双向线

D.16条双向线12.若总线地址为

26位,则最大地址空间为(

C

)A、6M

B、24MC、64M

D、128M下列哪种表述正确(B)A、有效地址确定内存单元在整个寻址范围内的位置。B、物理地址确定内存单元在整个寻址范围内的位置。C、偏移地址确定内存单元在整个寻址范围内的位置。D、有效地址就是物理地址。DS=3000H,SS=3100H,CS==3500H,IP==0100H,SP=0050H,BX=0300H,则当前代码段的物理地址为(D)。A、30300H B、31050H C、35300H D、35100H15.当8086CPU采样到READY=0,则CPU将( B )。A.执行停机指令 B.插入等待周期 C.执行空操作 D.重新发送地址8086总线周期是在(C)之后插入Tw。A、T1 B、T2 C、T3 D、T417.因为 8086CPU的字数据既可以存放在内存的偶地址,也可以安排在奇地址单元,所以其堆栈指针 SP(C )。A、最好是指向偶地址单元; B、可以指向任何地址单元;C、只能指向偶地址单元; D、只能指向奇地址单元。18.8088CPU在进行对外设输出操作时,控制信号

M/IO

和DT/R必须是

D 。A、0,0

B、0,1

C、1,0

D、1,18086CPU响应HOLD请求是在(D)A、每一指令周期后B、每一个机器周期后C、可以响应 HOLD请求的每一机器周期后D、在总线周期的 T4状态或空闲状态 TI之后的下一个时钟周期20.当8086/8088CPU响应DMA设备的HOLD请求后,CPU将( D )。A、转入特殊中断服务程序 B、进入等待周期C、接受外部数据 D、放弃对总线的控制权选择题:请将下列左边的项与右边的解释联系起来。(1)CPU()A、保存当前的栈顶地址的寄存器。(2)存储器()B、指示下一条要执行的指令的地址。(3)堆栈()C、存储程序、数据等信息的记忆装置,PC机有ROM和RAM两种。(4)IP()D、以后进先出方式工作的存储空间。(5)SP()E、惟一代表存储空间中每个字节单元的地址。(6)状态标志()F、保存各逻辑段起始地址的寄存器,PC机有四个:CS、DS、SS、ES。(7)控制标志()G、控制操作的标志,PC机有三位:DF、IF、TF。(8)段寄存器()H、记录指令操作结果的标志,PC机有6位:OF、SF、ZF、AF、CF、PF。(9)物理地址()I、分析、控制并执行指令的部件,由ALU和寄存器组组成。解答:本题的正确答案为:(1)CPU()A、保存当前的栈顶地址的寄存器。(2)存储器()B、指示下一条要执行的指令的地址。(3)堆栈()C、存储程序、数据等信息的记忆装置,PC机有ROM和RAM两种。(4)IP()D、以后进先出方式工作的存储空间。(5)SP()E、惟一代表存储空间中每个字节单元的地址。(6)状态标志()F、保存各逻辑段起始地址的寄存器,PC机有四个:CS、DS、SS、ES。(7)控制标志()G、控制操作的标志,PC机有三位:DF、IF、TF。(8)段寄存器()H、记录指令操作结果的标志,PC机有6位:OF、SF、ZF、AF、CF、PF。(9)物理地址()I、分析、控制并执行指令的部件,由ALU和寄存器组组成。三.问答题8086/8088CPU的地址总线有多少位?其寻址范围是多少?答:8086/8088CPU的地址总线共 20位,最大可寻址 1MB空间。什么是总线?一般微计算机中有哪些总线?答:总线是微机系统之间、系统各模块之间或模块内部以及芯片内部各部分之间用来传送信息的公共信息通路,是计算机传送信息的一组导线,它将各部件连接成一个整体。总线有多种分类方法,按总线在微机中所处位置的不同(或按总线上信息传送范围的不同)来看,微机中包括片内总线、片间总线、系统内总线和系统外总线四级总线。8086/8088CPU分为哪两个部分?各部分主要由什么组成?答:8086/8088CPU分为总线接口部件(BIU)和执行部件(EU)两个部分。其中:BIU包括:4个16位的段地址寄存器 (CS、DS、SS、ES);1个16位的指令指针寄存器 IP;1个20位的地址加法器;指令队列寄存器;内部寄存器;输入输出总线控制逻辑;EU包括: 4个16位的通用数据寄存器 (AX、BX、CX、DX);个16位的专用寄存器(BP、SP、SI、DI);1个16位的标志寄存器 FR;什么叫指令队列?8086/8088CPU中指令队列有什么作用?其长度分别是多少字节?答:指令队列是用来暂存指令的一组寄存器,按“先进先出”原则读写。在8086/8088CPU中,只要指令队列未填满,

BIU就从外部存储器取指令并放入指令队列中;

另一方面,只要指令队列中不空,

EU就可将指令队列中已有的指令取出执行,这样

BIU和EU按并行方式重叠操作,大大提高了

CPU的利用率,也降低了

CPU对存储器、

I/O

端口存取速度的要求。8086CPU中的指令队列缓冲器长度为

6个字节,而

8088CPU只有

4个字节。8086/8088CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088CPU中共有:8个16位的通用寄存器 AX、BX、CX、DX、BP、SP、SI、DI;2个变址寄存器 SI、DI;2个指针寄存器 BP、SP;其中BX、BP、SI、DI亦可作地址寄存器。8086/8088CPU中有哪些标志位?它们的含义和作用如何?答:8086/8088CPU中共有9个标志位,其中 DF、IF和TF为控制标志位,其余 6个为状态标志位。它们的含义和作用如下所示:CF(CarryFlag)进位标志:若算术运算的结果产生了进位或借位(对字节操作最高位是

D7位;对字操作最高位是

D15位),则

CF=1,否则

CF=0。PF(Parity/EvenFlag)奇偶标志:如果运算结果中含有偶数个

1,则

PF=1,否则

PF=0。此标志位主要用于数据通信中,检测数据传送有无出错。AF(AuxiliaryCarryFlag)辅助进位标志:用于反映一个字节(字的低字节)的低

4位向高

4位有无进位(借位)的情况,有进(借)位时,

AF=1,否则

AF=0。这个标志位主要用于实现BCD码算术运算所需的二

-十进制调整之用。ZF(ZeroFlag)零标志:若运算结果为

0,此标志为

1;否则

ZF=0。SF(SignFlag)符号标志:因为补码运算的最高位是符号位,所以它和运算结果的最高位(字节操作是D7位,字操作是 D15位)状态相同。当运算结果为负时, SF=1;否则SF=0。OF(OverflowFlag)溢出标志:在带符号数的加或减运算中结果超出 8位或16位符号数所能表示的数值范围(- 128~127或-32768~+32767)时,产生溢出使 OF=1,否则OF=0。DF(DirectionFlag)方向标志位:此标志位用以控制串操作指令地址指针的步进方向。每执行一条串操作指令,对地址要进行一次调整 (对字节操作为加

1或减

1,对字操作为加

2或减

2)。方向标志

DF决定地址是增量还是减量。若

DF=1,串地址为减量;

DF=0,则为增量。IF(InterruptEnableFlag)中断允许标志位:也称为开中断标志位。若使

IF=1,则CPU允许接受外部来的可屏蔽中断源发出的中断请求;若使

IF=0,则表示

CPU不响应此中所请求。

IF对非屏蔽中断及

CPU内部中断请求均不起作用。TF(TrapFlag)陷阱标志位:也称为跟踪标志位。若

TF=1,则

CPU处于单步执行指令的工作方式。在这种工作方式下, CPU每执行完一条指令就自动地产生一次类型为 1的内部中断,可以借此检查这条指令的执行情况。例1:1278H+3469H答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1例2:54E3H-27A0H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=0例3:3881H+3597H答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1例4:01E3H-01E3H答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1什么是堆栈?它有什么用途?堆栈指针的作用是什么?举例说明堆栈的操作。答:堆栈是一个按照后进先出(LIFO)的原则存取数据的存储区域。堆栈的作用是为了在调用子程序(或转向中断服务程序)时,把断点及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确返回。利用堆栈指针 SP可以实现对栈区的自动管理。例如:要把 AX寄存器中的内容压入堆栈,用入栈指令 PUSH AX(设SP原值为1000H),其操作过程如下所示:第一步:先把 SP-l→SP,然后把AH(高位字节)送入 SP所指单元(即 SP=1FFFH);第二步:再次使 SP-1→SP,把AL(低位字节)送至 SP所指单元(此时 SP=1FFEH);数据出栈操作与入栈过程正相反:弹出时,先把 AL内容弹出,然后修改 SP+1→SP;再把AH内容弹出,再修改 SP+1→SP。8. 对于由8086/8088CPU组成的系统,堆栈的位置如何确立?堆栈的首址(即 SS中的值)是不是栈底?为什么?答:8086/8088系统中堆栈的位置由 SS和SP初始化后确立:其中( SS)*16决定了堆栈段起始单元的地址,即堆栈段首址;(SS)*16+(SP初值)决定了堆栈段最后一个单元的地址,即栈底;(SS)*16+(SP现值)决定了堆栈段当前可用单元的地址,即栈顶。显然,堆栈首址并不是栈低。一般来说,在堆栈所在的内存区内,栈底为高地址端。堆栈初始化后,未压入数据时,栈底与栈顶是重合的。当堆栈压入数据后,栈顶地址总是小于栈底地址,位于低地址端。Intel8086与8088有何区别?答:8086与8088的区别主要表现在以下几个方面:第一、8086的指令队列可以容纳 6个字节,每个总线周期在存储器中取出 2个字节指令代码填入队列。而8088只能容纳 4个字节,且每个总线周期只能取出 1个字节指令代码。第二、8086外部数据总线宽度为 16位,8088外部数据总线宽度只有 8位。注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入 /输出接口时系统地址线和数据线连接方式的不同。第三、其他不同的引脚定义:(1)AD15~AD0,在8086中为地址/数据复用,而在8088中AD15~AD8改为A15~A8只作地址线用;(2)34、28号引脚定义不同。试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:其中,进位标志 CF用于判别无符号数运算是否超出数的表示范围,而溢出标志 OF用于判别带符号数运算是否超出数的表示范围。奇偶标志PF只能判断结果低 8位中“1”的个数为奇数还是偶数。什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址由两个 16位的部分即段基址和偏移量组成, 一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个 20位的地址,它是唯一能代表存储空间每个字节单元的地址, 一般只出现在地址总线上。由于8086/8088CPU中的寄存器只有16位长,所以程序不能直接存放20位的物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。他们之间的关系是:物理地址=段基址*16+偏移量;另外,一个物理地址可对应多个逻辑地址。什么是段基值?什么是位移量?它们之间有何联系?答:段基址即段起始地址,它的高 16位地址存放在段寄存器中,称之为段基值(低 4位一般为 0)。存储器单元所在的位置距离段起始地址的偏移量称之为位移量。程序中一个存储单元的实际地址(即物理地址)是由这两部分共同表示的。若CS为0A000H,试说明现行代码段可寻址物理空间的范围。答: 因为8086系统中可寻址的最大逻辑段长度为 64K,所以当 CS为0A0000H时,现行代码段可寻址物理空间的范围为: 0A0000H~0AFFFFH。

0A000H,即段基址为

CS*16=设现行数据段位于存储器0B0000H~0BFFFFH单元,DS段寄存器内容为多少?答:DS段寄存器内容为0B000H。8086/8088CPU使用的存储器为什么要分段?怎么分段?答:在8086/8088CPU中,ALU的运算是

16位的,有关的地址寄存器如

SP、IP以及

BP、SI、DI等都是16位的,因而对地址的运算也只能是

16位。也就是说对

8086/8088而言,各种寻址方式下寻找操作数的范围被限制在

64KB以内。而

8086/8088有

20条地址线,它的直接寻址能力为

1MB。这就产生了一个矛盾,即16位的地址寄存器如何去寻址 20位的存储器物理地址。解决这个问题是靠存储器分段实现的:将整个1MB的内存储器以 64KB为单位分为若干段。寻址一个具体物理地址时,必须要由一个段地址(基地址)左移

4位(即乘

16)再加上由

SP(或

IP、BP、SI、DI)等寄存器之值表示的、可由

CPU处理的

16位偏移量来形成实际的

20位物理地址;其中段地址(或基地址)是由

8086/8088

中的段寄存器形成的。第3章汇编语言一.填空题1.指令MOV [BX+SI],AL中的目的操作数使用 ______段寄存器,属于 ______寻址方式。解答:指令MOV [BX+SI],AL中的目的操作数使用 ___DS___段寄存器,属于 __基址变址____寻址方式。2.指令MOV BX,NUM[SI]的源操作数使用的是 ______寻址方式,SUB AX,[BX+SI]使用的是______寻址方式。解答:指令MOV BX,NUM[SI]源操作数使用了变址寄存器和一个位移量,因此是变址寻址方式。指令SUBAX,[BX+SI]中源操作数指定的一个基址寄存器 BX和一变址寄存器 SI,因此属于基址变址寻址方式。3.指令LEA BX,[BP+SI]的源操作数位于 ,执行后BX的内容是 。解答:指令LEA BX,[BP+SI]的源操作数位于 堆栈段 ,执行后BX的内容是 BP和SI的内容之和。4.堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,CX=1000H,问(1)执行PUSH AX,PUSH BX后,SP= 。(2)再执行 PUSH CX,POPBX,POPAX后,SP= AX= ,BX=解答:(1)执行PUSH AXSP-2=1FFEH→SP,指针在位置1处,栈顶为AX的内容执行PUSHBXSP-2=1FFCH→SP,指针在位置2处,栈顶为BX的内容(2)再执行PUSHCX,POPBX,POPAX后,⋯⋯执行PUSHCX③1FFAH00HSP-2=1FFAH→SP,指针在位置3处,栈顶为CX的内容10H执行POPBX②1FFCH④00H将栈顶内容1000H弹出到BX中,SP+2=1FFCH→SP,指针在位置4处,BX=1000H50H执行POPAX①1FFEH⑤00H将栈顶内容5000H弹出到AX中,SP+2=1FFEH→SP,指针在位置530H处,AX=5000H2000H⋯⋯本题的正确答案为:(1)执行PUSHAX,PUSHBX后,SP=1FFCH。2)再执行PUSHCX,POPBX,POPAX后,SP= 1FFEH AX= 5000H ,BX= 1000H5.若(AX)=7531H,(BX)=42DAH,则下列指令段

BXAXSAHFPUSH BXPOPF指令执行完毕后( AX)= ,(SF,ZF,CF,OF)=( , , , )。解答:指令执行完毕后( AX)= 7531H ,(SF,ZF,CF,OF)=( 1 ,1 , 0 ,0 )6.已知AL=2EH,BL=6CH,执行指令ADDAL,BL之后,AL= ,BL= ,ZF= AF= OF= PF= CF= 。解答:已知AL=2EH,BL=6CH,执行指令ADDAL,BL之后,AL=9AH ,BL= 6CH ,ZF= 0 AF= 1 OF= 1 PF= 1 CF= 0 。7.对两个无符号进制数 。

8位二进制数进行加法运算后,结果为

0EH,且标志位

CF=1,OF=1,SF=0,其结果应为十解答:

CPU对两个无符号

8位二进制数进行加法运算后,结果为

0EH,且标志位

CF=1,OF=1,SF=0,其结果应为十进制数

270

。8.设(AL)=10100000B,则执行NEG AL后,(AL)== 。

,设(AL)=10000000B,则执行NEG AL后,(AL)解答:基址变址寻址在计算机中的减法运算可以将减数求补,(AL)=10100000B是一个负数,求它的真值,就对其求补(AL)=10100000B=-1100000B=-60H执行NEG AL后,(AL)=

01100000B=60H9.已知:(AL)=7AH,题(1),(2)相互独立,求(1)SUB AL,20H (AL)=( )(2)CMP AL,20H (AL)=( )解答:(1)SUB AL,20H

AL的值。这条是减法指令,

7AH-20H=5AH,将结果回送到

AL中因此(AL)=5AH2)CMPAL,20H这是比较指令,将目的操作数与源操作数相减, 但不送回结果,只根据结果置标志位,即(DST)-(SRC)。指令执行后,两个操作数均不发生变化。因此( AL)=7AH10.设DS=1000H、ES=2000H、SS=3000H、SI=00C0H、DI=0170H、BX=01B0H、AX=5657H,(10370H)=3AH,10371H)=67H数据段中的变量NUM的偏移地址值为0050H。①求下条指令源操作数的物理地址为ADD AX,NUM[BX][DI]②指令执行完成后 OF= ,CF=解答:①ADDAX,NUM[BX][DI]的源操作数是相对的基址变址寻址,处于数据段中,有效地址为:EA=0050H+01B0H+0170H=0370HPA=DS×10H+EA=10370H源操作数为10370H单元和10371H单元的内容=673AH②指令执行完成后, AX=673AH+5657H=0BD91H,OF=1(有溢出),CF=0(无进位)11.将DL中的内容循环右移,已知移位前CL=9,要使其移位前后内容保持不变,应选用的指令是。解答:将DL中的内容循环右移,已知移位前CL=9,要使其移位前后内容保持不变,应选用的指令是RCL或RCR。12.串操作指令的两个隐含的指针寄存器是。解答:串操作指令的两个隐含的指针寄存器是SI和DI寄存器。13.指令REPMOVSB重复执行的条件为。解答:指令REPMOVSB重复执行的条件为CX≠0。14.串操作指令在内存中可以实现信息串的搬家,如果DS=ES且SI>DI,不能引起信息串的覆盖,应设置。解答:串操作指令在内存中可以实现信息串的搬家,如果 DS=ES且SI>DI,不能引起信息串的覆盖,应设置 DF=0 。将下列程序补充完整:程序的功能是在数据段ADDR1地址处有200个字节,要传送到数据段地址ADDR2处。MOV

AX,SEGADDR1MOV

DS,AXMOV

ES,MOV

SI,MOV

DI,OFFSETADDR2MOV

,200CLDREP解答:在存储器中实现信息块的搬家,使用重复前缀,必须先给 CX赋值重复的次数。如果信息块的长度是多少个字节,用 MOVSB传送时,则将此字节数赋给 CX作重复次数;若用 MOVSW传送时,则将此字节数÷2赋给CX作重复次数。程序要求 200个字节搬移,指令中使用的重复次数为 200,由此使用 REPMOVSB指令,完整的程序如下:MOV AX,SEGADDR1MOV DS,AXMOV ES,AXMOV SI,OFFSETADDR1MOV DI,OFFSETADDR2MOV CX ,200CLDREP MOVSB16.若指令JMPADDR1的机器码为 E93512H,此指令的CS=1500H,IP=2400H,则目标ADDR1与本指令之间的位移量为 ,执行本指令时, IP的当前值为 ,本指令执行后,

CPU转移至 CS:IP为

。解答:JMP指令是无条件转移指令, JMPADDR1的机器码为E93512H,这是三字节指令, E9H表示操作码,8086系统中,高地址存放的是高字节, 低地址则是低字节,因此1235H是操作数,表示本指令与ADDR1之间的位移量为 1235H。该指令是三字节指令,执行指令时,当前 IP=2400H+3=2403H。由目标偏移地址=当前 IP值+指令中的位移量=2403H+1235H=3638H。因此,执行该指令后, CPU转移至1500H:3638H处。本题的正确答案为:若指令 JMPADDR1的机器码为 E93512H,此指令的 CS=1500H,IP=2400H,则目标ADDR1与本指令之间的位移量为 1235H ,执行本指令时, IP的当前值为 2403H ,本指令执行后,CPU转移至CS:IP为 1500H:3638H 。阅读程序并补充完整:以TAB为首地址的100个ASCII码字符添加奇偶校验位(bit7),使每个字节中的“1”的个数为偶数,再顺序输出到 10H号端口。MOV SI,OFFSETTABMOV CX, ①L2:

MOV

AL,[SI]AND

AL,

②L1OR AL, ④L1: OUT 10H,ALINC ⑤LOOP L2解答:传送类指令不影响标志位,可以使用 AND AL,AL或ANDAL,0FFH指令,它对 AL的内容无影响,但影响标志位。为使每个字节中的“ 1”的个数为偶数,,用使用进行 JP条件判断,如果 PF=1,则转到L2出,否则在最高位加1,可凑成偶数。完整的程序如下:MOVSI,OFFSETTABMOVCX,100L2:MOVAL,[SI]ANDAL,0FFH或ALJPL1ORAL,80HL1:OUT10,HALINCSILOOPL218.设AX=8000H,BX=0FFFFH,执行 CMPAX,BX后,写出两条能引起转移的条件转移指令 ① 、② 。解答:AX=8000H,BX=0FFFFH,执行CMPAX,BX后CF=1(有借位),OF=0(没有溢出),ZF=0(结果不为0),SF=1(结果为负数,最高位为 1),PF=0(第8位有1个1)。因此能引起只要的条件指令有 JC、JNO、JNZ等。本题的正确答案为:设 AX=8000H,BX=0FFFFH,执行CMPAX,BX后,写出两条能引起转移的条件转移指令 JC 、 JNZ 。19.汇编语言的调试过程如下:建立 ______以为扩展名的源文件;生成以 ______为扩展名的目标文件;生成以______为扩展名的可执行文件;使用 DYBUG调试程序,调试可执行目标程序。解答:汇编语言的调试过程如下: 建立 .ASM 以为扩展名的源文件; 生成以 .OBJ 为扩展名的目标文件;生成以 .EXE为扩展名的可执行文件;使用 DYBUG调试程序,调试可执行目标程序。20.宏汇编语言程序被汇编时,

_____语句产生代码指令,

______语句不产生代码指令,

______语句可能产生也可能不产生代码指令。解答:宏汇编语言程序被汇编时, 指令性 语句产生代码指令, 伪指令 语句不产生代码指令, 宏指令 语句可能产生也可能不产生代码指令。21.已知VAR1是字变量,指令MOV AX,VAR1的功能是将 送到AX中;指令MOV AX,OFFSETVAR1的是将 送到AX,其功能和指令 AX,VAR1是相同的。解答:已知VAR1是字变量,指令 MOV AX,VAR1的功能是将 VAR1的内容 送到AX中;指令 MOV AX,OFFSETVAR1的是将 VAR1的偏移量 送到 AX,其功能和指令 LEAAX,VAR1是相同的。22.假设VDT1和VDT2为字变量,TAL1和TAL2为标号,说明下列指令是否正确,说明其寻址方式;若有错误指出错误所在。1)JMPVDT12)JMPNEARTAL13)JNZVDT24)JETAL2(5)JMP FAR PTR TAL1(6)JMP FAL1[SI]解答:(1)JMP VDT1非法指令,跳转指令应为标号不能是变量, VDT1是变量(2)JMP NEARTAL1非法指令,标号的类型属性指在转移指令中标号可转移的距离,也称距离属性。类型 NEAR,表示此标号只能实现本代码段内转移或调用;类型 FAR,表示可以作为其它代码段中的目标地址,实现段间转移或调用。使用时,在属性后加 PTR,应该改为:JMP NEAR PTR TAL1(3)JNZ VDT2非法指令,跳转指令应为标号不能是变量, VDT2是变量4)JETAL2合法指令。(5)JMP FAR PTR TAL1合法指令6)JMPFAL1[SI]非法指令,FAL1为标号,表示指令语言的符号地址,SI是源变址寄存器,它存放的是地址。这条指令的错误之处在于两个地址表达式不能相加。二.选择题1.寻址方式指出了操作数的位置,一般来说( D)。A、立即寻址给出了操作数地址;B、寄存器直接寻址的操作数在寄存器内,而指令给出了存储器;C、直接寻址直接给出了操作数本身;D、寄存器直接寻址的操作数包含在寄存器内中,由指令指定寄存器的名称。2.寄存器寻址方式中,操作数在( A)中。A、通用寄存器 B、堆栈C、内存单元 D、段寄存器3.寄存器间接寻址方式中,操作数在( C)中。A、通用寄存器 B、代码段C、内存单元 D、段寄存器8088变址寻址方式中,操作数的物理地址等于(B)A、段寄存器左移四位加上变址寄存器的内容;B、段寄存器左移四位加上变址寄存器的内容再加给定的偏移量;C、段寄存器左移四位加上变址寄存器的内容再加基址寄存器内容;D、段寄存器左移四位加上基址寄存器的内容再加给定的偏移量;下列指令中非法指令是(B)A.MOV[SI+BX],AXB.MOVCL,280C.MOV[0260H],2346HD.MOVBX,[BX]6.下列指令中,正确的是(D)A、MOVAL,1000B、MOV100,ALC、MOVAL,100HD、MOVAL,100在指令ADDAX,00H执行后,CPU状态标志位ZF的取值为(C)a.为0 b.为1 c. 不确定 d. 没有影响8..8086CPU在进行无符号数比较时,是根据( C)标志来判别大小的。A.CF和

OF

B.CF和SFC.CF和ZF

D.OF和ZF9.设AL=0B4H,BL=11H,指令“

MULBL”和指令“

IMULBL”分别执行后

OF,CF的值为(

B

)。A、OF=1,CF=0

B、OF=1,CF=1C、OF=0,CF=0

D、OF=0,CF=1下面指令中影响状态标志位CF的指令是(D)。A、INC AX; B、DEC AX; C、NOT AX; D、NEG AX11.已知

AL=A8H,BL=62H,执行

ANDAL,BL指令后,

AL中的数为(

B

)A.32

B.20H

C.00H

D.+2012.AX中有一负数,欲求其绝对值,若该数为补码,则用指令解答:AX中有一负数,欲求其绝对值,若该数为补码,则用指令

;若该数为原码,则用指令 。NEGAX ;若该数为原码,则用指令 ANDAX,7FFFH 。13.以下可以使寄存器

AX和

CF同时清零的指令为(

A

)A.SUBAX,AX

B.XCHGAX,BXC.PUSHAX

D.XORAX,BX完成将累加器AL清零,并将进位标志CF清零,下面错误的指令是(A)。A、MOVAL,00H

B、ANDAL,00HC、XORAL,AL

D、SUBAL,AL假设AL=3,要使得AL=0CH,应执行的指令是(C)A、NOT AL

B、AND

AL,0FHC、XOR AL,0FH

D、OR AL,0FH16.测试

BL寄存器内容是否与数据

4FH相等,若相等则转

NEXT处执行,可实现的方法是(

B )。A、TESTBL,4FHB、XORBL,4FHC、ANDBL,4FHD、ORBL,4FH

JZNEXTJZNEXTJZNEXTJZNEXT17.下面指令序列测试TESTBH,01HK1A、JNE B、JZ

BH中的数是否为奇数,若为奇数则转移至C、JNP D、JC

K1处,横线处的指令应为(

)。解答:TESTBH,01H指令执行结束后,如果

BH为奇数,其“与”后的结果都为最低位为

1,则ZF=0,那么ZF=0则转移到

K1处,使用的指令应该为

JNZ/JNE。正确答案为

A。18.执行INTn指令或响应中断时, CPU完成的操作次序是(A、FLAGS寄存器(FR)先入栈,其次 CS,最后IP

A )B、CS在先,其次 IP,最后FR入栈C、FR在先,其后依次是 IP,CSD、IP在先,其次 CS,最后FR19.用汇编语言编写的源程序,其后缀名为();其可执行程序的后缀名为()。A、exeB、objC、asmD、c解答:用汇编语言编写的源程序,其后缀名为(.asm);其可执行程序的后缀名为(.exe),选择C、A。20.下列描述正确的是B。A.汇编语言源程序可发直接运行B.汇编语言属低级语言C.汇编语言是汇编语言编写的程序,运行速度高,阅读方便,属于面向用户的程序语言D.汇编语言可以在可以移植。21.列伪指令哪些是正确的: CA.ERR1:DW 99B.ERR2 DB 25×60C.COUNT EQU 20D.ONE DB ONE三.判断题1.是非判定题:立即数寻址方式的操作数是在代码段中的, 因此在执行指令的过程中也要执行总线周期。 (f)8086指令系统寻址方式中,直接寻址直接给出了操作数本身。(f)3.立即寻址方式的操作数一定放在代码段中,而直接寻址方式的操作数一定放在数据段中。 (f )4.判断下列指令是否正确 ?1)ADDAL,BL2)ADDDS,CX3)ADD〔SI〕,〔BP+100H〕4)ADD〔BX〕,AX5)ADDAX,CL解答:(1)ADD AL,BL(2)ADD DS,CX

;合法指令,源操作数和目的操作数都是 8位寄存器;非法指令,目的操作数不能是段寄存器3)ADD〔SI〕,〔BP+100H〕;非法指令,源操作数和目的操作数都是存储区操作数4)ADD〔BX〕,AX;合法指令,源操作数是寄存器,目的操作数是存储器操作数5)ADDAX,CL;非法指令,源操作数和目的操作数类型不匹配5.CPU用指令SUB

AX,AX可以是零标志位置位,进位标志清零。

( t)6.x与Y进行异或运算后再与

Y的反进行异或运算,结果是求

x的反。(t

)四.编程题对数据段中4300H单元内的8位带符号数判断,若为正数,加1放回原单元;为负数,则减1放回原单元,编写程序。解答: MOV AL,[4300H]ADD AL,0JNS POSIINC ALMOV [4300H],ALJMP

EXITPOSI:DEC

ALMOV

[4300H],ALEXIT: HLT2.编写程序:给1A000H开始的

256个内存单元均减去

1,若发现某个单元减为

0则立即退出循环,其后的单元不再减

1。解答:1A000H是物理地址,我们可以设

DS=1A00H,偏移地址则为

0。程序如下:GOON:

MOVMOVMOVMOVDECINCCMPLOOPNZ

AX,1A00HDS,AXDI,0CX,256BYTEPTR[DI]DIBYTEPTR[DI-1],0GOON

;给段寄存器 DS赋值1A00H;DI指向内存数据区;共循环256次;由DI指向的内存单元的内容减 1;指针加 1,指向下一个单元;上一个单元的内容和 0进行比较;不为0,则继续转向 GOON处,同时

CX内容自动减1HLT

;为0,退出循环3.编程实现将存储单元 BLOCK中的N个字节的数据按正数、负数分开,分别送到两个缓冲区MINUS_DATA。解答:设置三个指针, SI指向BLOCK存储单元,DI指向PLUS_DATA存储区,BX指向

PLUS_DATA和MINUS_DATA存储区。在程序中使用串操作指令,设置传送方向从低到高即

CLD。先从

BLOCK中取一个字节,用测试指令TESTAL,80H指令测试其最高位,再用

JZ判断正负,正数转到

PLUS_DATA数据区,负数转到

MINUS_DATA数据区。程序如下:AGAIN:

LEA SI,BLOCKLEA DI,PLUS_DATALEA BX,MINUS_DATACLDMOV CX,NLODSBTESTAL,80HJNZ MIUS

;S指向内存数据区;DI指向存放正数的缓冲区;BX指向存放负数的缓冲区;由低到高;置循环次数;从DS:SI(内存数据区)取一个字节到 AL中;测试AL中的最高位;若ZF=0,表示最高位为 1是负数,转移到MIUS处理STOSB

;为正数,将

AL中的内容存到

ES:DI处,修改指针

DIMIUS:NEXT_N:

JMP NEXT_NXCHGBX,DISTOSBXCHGBX,DILOOPAGAIN

;转下一个;BX与DI交换,是DI指向存负数的缓冲区;存负数,同时修改指针 DI;将修改后的指针与 BX交换;未完成,继续4.在8000H开始的长度为

1000字节的字符串中查找‘S’,若找到,把其偏移地址记录在

ADDR中,否则

ADDR单元置为0FFFFH。分析:考查8086的指令系统解答:在8000H开始的长度为1000字节的字符串中查找‘S’,可以使用信息串的扫描指令SCASB,将字符‘S’放在AL中,将DI设置为8000H。MOV DI,8000HMOV CX,1000MOV AL,‘S’MOV ADDR,0FFFFHGOON: SCASBLOOPNZ GOONJNZ DONEDEC DIMOV ADDR,DIDONE:

HLT也可使用带条件重复前缀

REP指令,前四条指令相同,后续指令如下:CLDDONE:

REPNEJNZDECMOVHLT

SCASBDONEDIADDR,DI

;CX≠0(没查完)和ZF=0(不相等)重复;若ZF=0,表示没有找到,转出;若ZF=1,则DI指向上个单元即字符‘;将偏移地址送到 ADDR单元中

S’的偏移地址5.编程将BUF单元中的一个

8位数乘以

10,乘积放在

ANS单元及其下的一个单元中(至少用

3种方法)。解答:(1)利用乘法指令,这是最直接的方法MOV AL,BUFMOV BL,10MUL BLMOV ANS,AXHLT2)一个数乘以10就是对该数连续加10次,因此可以利用连续加法实现。MOVAL,BUFMOVCX,10MOVAH,0MOVDX,0GOON:ADDDX,AXDECCXJNZGOONMOVANS,DXHLT23+21=10,所以可用(3)用左移指令来实现,因为左移1次就是是乘以2,左移3次是乘以8,那么移位实现乘10操作。MOVAL,BUFMOVCL,3SALAL,1;左移1位就是乘以2MOVAH,AL;将乘以2的结果存放在AH中SALAL,1;再左移1位是乘以4SALAL,1;ADDAL,AH,;HLT6.将内存中DATA单元起始的 100个单元中的字节数据排序。解答:100个单元中的字节数据由大到小排序,有多种方法,常用的方法为“冒泡法”排序。首先,所有相邻两单元的数依次两两比较,若下面的数大则不交换;若下面的数打,则两数交换位置。可以看出,第一轮共进行100-1=99次比较,最小的数排到了最后面。第二轮在前 99个数中比较交换,共进行 100-298次比较,次小的数排到了倒数第二位。如此进行,经过100-1=99轮比较,已经排好了次序。程序如下:MOVBX,OFFSETDATAMOVCX,100DECCXLOOP1:MOVDI,CXLOOP2:MOVAX,[BX]CMPAX,[BX+1]JGENEXTXCHGAX,[BX+2]MOV[BX],AXNEXT:INCBXLOOPLOOP2MOVCX,DILOOPLOOP1INT7.若在内存某一缓冲区中存放着若干个单元的用BCD码表示的十进制数。每—个单元中放两位BCD码,要求把它们分别转换为ASCII码。高位的BCD码转换完后放在地址较高的单元。解答:转换公式:ASCII=BCD+30H,其算法是将源串和目的串的表首分别设两个指针。取BCD转ASCII后存入(先低位,后高位)MOVSI,OFFSETBCDBUFF;设置源地址指针MOVCX,COUNT;设计数初值MOVDI,OFFSETASCBUF;设置目的地址指针AGAIN:MOVAL,[SI]MOVBL,ALANDAL,0FH;取低位BCD码ORAL,30H;转换成ASCII码MOV[DI],AL;存入INCDI;修改指针MOVAL,BLPUSHCXMOVCL,4SHRAL,CLORAL,30H;高位转换成ASCII码MOV[DI],AL;存入POPCXINCDIINCSI;修改指针LOOPAGAINHLT第4章存储器系统一.填空题1.只读存储器主要分为固定只读存储器 ROM、可编程的只读存储器 PROM、 。解答:可擦除可编程只读存储器 EPROM。2.DRAM为动态存储器,它是通过电容充电存储信息,由于 易使信息丢失,所以需要解答:DRAM为动态存储器,它是通过电容充电存储信息,由于 电荷泄漏 易使信息丢失,所以需要 定时刷新3.在“Cache——主存——辅存”三级存储体系中, “Cache——主存”结构的引入是为了解决 问题。“主存——辅存”结构的引入是为了解决 问题。解答:速度 容量4. FlashMemory的汉语名称是 。解答:闪速存储器。5.虚拟存储器是由 和 两级存储器系统组成,使用虚拟存储器是为了 。解答:主存,辅存,提供更大的随机存储空间。6.某个RAM型存储器的地址线有14条,数据线有8条,则它的片内存储单元的个数应为16KB。解答:地址线有14条,数据线8条,表示可被访问214个8位,即16K字节。7.8086/8088CPU微处理机外部地址线有20根,内存最大寻址能力是1M字节8.若用16K×1的芯片组成一个32K×8位的存储器,需要个芯片,片内选址需根地址线,存储器选址需根地址线。解答:16、14、19.用16片32KB的存储器构成的存储空间,起始地址为48000H,结束地址为。解答:C7FFFH10.在8088CPU系统中选用74LS138译码器(如图1所示),系统中ROM存储器的地址范围为和RAM存储器的地址范围为。解答:/Y0输出低电平时, A19~A13的信号为 1011000B,其余位为变址,所以 ROM的地址范围为B0000H~B1FFFH。同理,RAM的地址范围为 BC000H~BDFFFH。二.选择题存储器的存取周期是指(C)。A、存储器的读出时间 B、存储器的写入时间C、存储器进行连续读和写操作所允许的最短时间间隔D、存储器进行连续写操作所允许的最短时间间隔2.属于随机存储器RAM的是(D)A、只读存储器B、移位寄存器C、缓冲寄存器D、静态存储器3.计算机的主存储器一般是由B组成。A、磁存储器B、半导体存储器C、寄存器D、光盘存储器4.FLSAH存储器属于___A___。a)只读存储器;b)随机存储器;c)动态存储器;d)静态存储器。5.只读存储器能够存储___A_____。a)程序代码和固定数据;b)程序运行过程中需要保存的临时数据;c)程序代码和临时数据;d)固定数据和临时数据。6.在计算机中,大量应用程序主要存放在 D 中。A、微处理器 B、寄存器 C、存储器 D、硬盘7.在表示存储器的容量时,M的准确含义是B。A、100个字节B、1024K个字节C、100K个字节D、1024个字节8.断电后,计算机C中的数据将全部丢失。A、硬盘B、ROM和RAMC、RAMD、ROM9.一个存储器芯片有13根片内地址线,1根片选线,l根数据线,若要构成一个16K字节的存储体,需______B__片这样的芯片。A、40B、16C、64D、3210.若总线地址为26位,则最大地址空间为(C)。A、6MB、24MC、64MD、128M11.若用6264SRAM芯片(8K×8位)组成128KB的存储器系统,需要(A)片6264芯片。A、16B、24C、32D、6412.一个存储器芯片有13根片内地址线,有8根数据线,这个芯片的存储容量为(A)A.8KB.4KC16KD2K三.分析题拟以Intel8088CPU为核心,构成微机存储器系统,要求及条件如下:1)占用连续空间,总容量16KB,起始地址为2000H,其中ROM容量为8KB,占低地址区域,RAM容量为8KB,占高地址区域;2)系统设计所需要的译码器及与非门器件不受限制3)现有存储器芯片:EPROM:

Intel2716

规格为

2K×8;静态RAM:Intel6264 规格为8K×8试完成硬件线路的设计并写出各芯片的地址范围解答:根据题意,需Intel27164片;片内A1-A11共11根地址线寻址需Intel62641片;片内用13根地址线A1-A13寻址芯片选择由74LS138译码器输出Y0,Y1完成.ROM芯片由RD信号(连OE)来完成数据读出 .RAM芯片由RD信号(连OE)和WR(连WE端)来完成数据读

/写,A0,BHE用来区分数据线的低

8位及高

8位.由于

ROM芯片容量为

2K×8位,RAM芯片容量为

8K*8位,用A13和Y0

输出进行二次译码

,来选项择两组ROM芯片.74LS138译码器的输入端

C,B,A分别连地址线

A16-A14,控制端

G1,

G2A

和G2B

分别连

M/

IO

和A17,A18,计算得到存储器的地址范围为 :ROM:2000H-5FFFHRAM:6000H-EFFFHD15~D8D7~D0

D15~D8

D7~D0A11~A170A11~A1D7~D0ABD~DA10~A0ABA10~A0A14AY0CE2716CEA15Y12716BABOEOEY2A16CA17G2AA18G2BY7G1D7~D0M/IOA13~A1

D15~D8A12~A0CE

D7~D0

D7~D0RD

OE

6264WR

WE

CE2

BHEA0

CE22.要求用8Kx8位的ERPOM2764,8Kx8位的RAM6264和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论