• 624.50 KB
  • 2022-04-22 11:27:56 发布

《微机原理与接口技术》课程考试复习题集含答案.doc

  • 154页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'前言微机原理与接口技术”是电类专业本科生的必修专业基础课。该课程主要内容包括:计算机科学技术基础,计算机/微型计算机的组成与结构,微处理器结构,指令系统与汇编语言程序设计,存储器及其接口,输入/输出及DMA接口,中断系统,串并行通信及其接口电路,模拟接口,总线技术,80x86/Pentium保护模式的软件体系结构,高性能微处理器、常见的计算机外部设备等相关知识。通过教学和实践,学生能掌握微型计算机的工作原理和系统结构,掌握微机测控系统的研发技术和基本方法,为今后的相关专业课程学习奠定了基础。由于该课程内容不但包括了硬件知识,而且也包括了软件知识,相对讲覆盖知识面广、涉及的概念偏多,抽象难以理解、同时也由于其实践性强,要搞好该门课程教学,必须辅之大量练习题。本书与我校微机原理与接口技术主流教材配套,目的在于指导学生学习、练习及考试(课程考试与考研),书中收集了大量的习题和答案,并同时也精选了一些自测题,内容简明扼要、重点突出,系统性、实用性较强,可以启迪学生思维,拓宽思路,弥补学生训练不足,教会学生其自动手能力,激发学生学习兴趣,使学生牢固掌握教材内容,并学以致用。可作为课程学习和复习考研的辅导用书(必备资料),也可供从事微机应用系统开发的工程技术人员阅读参考。全书由张坤鳌副教授组织编写,牟奇副教授参编,龚赏福教授、朱宇副教授在百忙中审阅了全书,并提出许多宝贵意见,在此本人表示衷心。第一章微型计算机基础习题一1.简述微型计算机系统的组成。2.简述计算机软件的分类及操作系统的作用。3.将下列十进制数转换成二进制数:(1)49;(2)73.8125;(3)79.754.将二进制数变换成十六进制数:(1)101101B;(2)1101001011B;(3)1111111111111101B;(4)100000010101B;(5)1111111B;(6)10000000001B5.将十六进制数变换成二进制数和十进制数:(1)FAH;(2)5BH;(3)78A1H;(4)FFFFH;(5)34.2AH;(6)B8.93H6.将下列十进制数转换成十六进制数:(1)39;(2)299.34375;(3)54.56257.将下列二进制数转换成十进制数:(1)10110.101B;(2)10010010.001B;(3)11010.1101B8.计算(按原进制运算):(1)10001101B+11010B;(2)10111B+11100101B;(3)1011110B-1110B;(4)124AH+78FH;(5)5673H+123H;(6)1000H-F5CH;9.已知a=1011B,b=11001B,c=100110B,按二进制完成下列运算,并用十进制运算检查计算结果:(1)a+b;(2)c-a-b;(3)a·b;(4)c/b 10.已知a=00111000B,b=11000111B,计算下列逻辑运算:(1)aANDb;(2)aORb;(3)aXORb;(4)NOTa11.设机器字长为8位,写出下列各数的原码和补码:(1)+1010101B;(2)-1010101B;(3)+1111111B;(4)-1111111B;(5)+1000000B;(6)-1000000B12.写出下列十进制数的二进制补码表示(设机器字长为8位):(1)15;(2)-1;(3)117;(4)0;(4)-15;(5)127;(6)-128;(7)8013.设机器字长为8位,先将下列各数表示成二进制补码,然后按补码进行运算,并用十进制数运算进行检验:(1)87-73;(2)87+(-73);(3)87-(-73);(4)(-87)+73;(5)(-87)-73;(6)(-87)-(-73);14.已知a,b,c,d为二进制补码:a=00110010B,b=01001010B,c=11101001B,d=10111010B,计算:(1)a+b;(2)a+c;(3)c+b;(4)c+d;(5)a-b;(6)c-a;(7)d-c;(8)a+d-c15.设下列四组为8位二进制补码表示的十六进制数,计算a+b和a-b,并判断其结果是否溢出:(1)a=37H,b=57H;(2)a=0B7H,b=0D7H;(3)a=0F7H,b=0D7H;(4)a=37H,b=0C7H16.求下列组合BCD数的二进制和十六进制表示形式:(1)3251(2)12907(3)ABCD(4)abcd17.将下列算式中的十进制数表示成组合BCD码进行运算,并用加6/减6修正其结果:(1)38+42;(2)56+77;(3)99+88;(4)34+69;(5)38-42;(6)77-56;(7)15-76;(8)89-2318.将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)Example1;(2)JinanUniversity;(3)-108.652;(4)Howareyou?;(5)Computer(6)InternetWeb19.将下列字符串表示成相应的ASCII码(用十六进制数表示):(1)Hello(2)123456;(注:表示回车)(3)ASCII;(4)Thenumberis2315[参考答案]3.解:(1)49=00110001B(2)73.8125=01001001.1101B(3)79.75=01001111.11B5.解:(1)FAH=11111010B=250D(2)5BH=01011011B=91D(3)78A1H=0111100010100001B=30881D(4)FFFFH=1111111111111111B=65535D7.解:(1)10110.101B=22.625(2)10010010.001B=146.0625(3)11010.1101B=26.81259.解:a=1011B=11,b=11001B=25,c=100110B=38(1)a+b=100100B=36(2)c-a-b=10B=2(3)a·b=100010011B=275(4)c/b=1……1101B(=13) 11.解:(1)+1010101B原码01010101B补码01010101B(2)-1010101B原码11010101B补码10101011B(3)+1111111B原码01111111B补码01111111B(4)-1111111B原码11111111B补码10000001B(5)+1000000B原码01000000B补码01000000B(6)-1000000B原码11000000B补码11000000B13.解:按补码表示+87=01010111B;+73=01001001B;-87=10101001B;-73=10110111B(1)87-73=01010111B-01001001B=1110B=14(2)87+(-73)=01010111B+10110111B=[1]00001110B=14(舍去进位)(3)87-(-73)=01010111B-10110111B=[-1]10100000B=-96(溢出)(4)(-87)+73=10101001B+01001001B=11110010B=-14(5)(-87)-73=10101001B-01001001B=[-1]01100000B=96(溢出)(6)(-87)-(-73)=10101001B-10110111B=11110010B=-1415.解:(1)a=37H,b=57H;a+b=8EH;a-b=[-1]E0H=-32(2)a=0B7H,b=0D7H;a+b=[1]8EH=-114;a-b=[-1]E0H=-32(3)a=0F7H,b=0D7H;a+b=[1]CEH=-50;a-b=20H=32(4)a=37H,b=0C7H;a+b=FEH=-2;a-b=[-1]70H=11217.解:(1)将38、42表示成组合BCD码:38H、42H,然后按二进制进行运算,并根据运算过程中的AF,CF进行加6/减6修正。38H+42H=7AH,低4位需要加6修正:7AH+6=80H,所以有38+42=80;(2)56H+77H=CDH,高4位、低4位都应加6修正:CDH+66H=[1]33H,因此有56+77=133;(3)99H+88H=[1]21H(AF=1),高4位、低4位都应加6修正:[1]21H+66H=[1]87H,因此99+88=187(4)34H+69H=9DH,低4位需要加6修正:9DH+6=A3H,修正结果使高4位超出9,这时再对高4位进行加6修正:A3H+60H=[1]03H,因此34+69=103(5)38H-42H=[-1]F6H,因CF=1(有借位),高4位应减6修正:[-1]F6H-60H=[-1]96H,指令的借位应表示成100的补码,因此38-42=96-100=-4(6)77H-56H=21H,不需要修正,因此77-56=21(7)15H-76H=[-1]9FH,高4位、低4位都应减6修正:[-1]9FH-66H=[-1]39H,因此15-76=39-100=-61(8)89H-23H=66H,不需要修正,因此89-23=6619.解:字符串的ASCII码(用十六进制数表示)为:(1)48,65,6C,6C,6F(2)31,32,33,0D,34,35,36(3)41,53,43,49,49(4)54,68,65,20,6E,75,6D,62,65,72,20,69,73,20,32,33习题二一、选择题 1.80486CPU进行算术和逻辑运算时,可处理的信息的长度为(D)。A、32位B、16位C、8位D、都可以2.在下面关于微处理器的叙述中,错误的是(C)。A、微处理器是用超大规模集成电路制成的具有运算和控制功能的芯片B、一台计算机的CPU含有1个或多个微处理器C、寄存器由具有特殊用途的部分内存单元组成,是内存的一部分D、不同型号的CPU可能具有不同的机器指令3.若用MB作为PC机主存容量的计量单位,1MB等于(B)字节。A、210个字节B、220个字节C、230个字节D、240个字节4.运算器在执行两个用补码表示的整数加法时,判断其是否溢出的规则为(D)。A、两个整数相加,若最高位(符号位)有进位,则一定发生溢出B、两个整数相加,若结果的符号位为0,则一定发生溢出C、两个整数相加,若结果的符号位为1,则一定发生溢出D、两个同号的整数相加,若结果的符号位与加数的符号位相反,则一定发生溢出5.运算器的主要功能是(C)。A、算术运算B、逻辑运算C、算术运算与逻辑运算D、函数运算6.运算器由很多部件组成,其核心部分是(B)。A、数据总线B、算术逻辑单元C、累加器D、多路开关7.在一般的微处理器中,(D)包含在CPU中。A、内存B、输入/输出单元C、磁盘驱动器D、算术逻辑单元8.80486CPU的标志寄存器中,OF标志表示运算结果的(C)情况。A、进/借位B、符号C、溢出D、辅助进位9.若某数据段位于存储区38000H~47FFFH,则该数据段的段基址为(D)。A、38000HB、47FFFHC、3000HD、3800H 10.程序设计中所使用的地址是(A)。A、逻辑地址B、有效地址C、物理地址D、段基址11.80X86执行程序时,对存储器进行访问时,物理地址可由(B)组合产生。A、SS和IPB、CS和IPC、DS和IPD、CS和BP12.某处理器与内存进行数据交换的外部数据总线为32位,它属于(C)。A、8位处理器B、16位处理器C、32位处理器D、64位处理器13.在堆栈操作中,隐含使用的通用寄存器是(D)。A、AXB、BXC、SID、SP14.主要决定微机性能的是(A)A、CPUB、耗电量C、质量D、价格15.十进制负数–38的八位二进制补码是(B)A、01011011BB、11011010BC、11011011BD、01011010B16.若某台微型计算机的型号是奔四800,则其中800的含义是(D)A、CPU中有800个寄存器B、CPU中有800个运算器C、该微机的内存为800MBD、时钟频率为800MHZ17.在计算机内部,一切信息的存取,处理和传送都是以(D)形式进行。A、EBCDIC码B、ASCII码C、十六进制编码D、二进制编码18.16位PC机中整数的有效范围是(D)A、-32768―32767B、-32767―32767C、0―65535D、-32768―32767或0―6553519.在(C)表示中,二进制数11111111B表示十进制数–1A、原码B、反码C、补码D、BCD码20.用8位的二进制数的补码形式表示一个带符号数,它能表示的整数范围是(D)A、-127—+127B、-128—+128C、-127—+128D、-128—+127 21.计算机中运算器和控制器合称为(A)A、CPUB、ALUC、主机D、ENIAC22.32位的个人计算机,一个字节(Byte)由(B)位(bit)组成。A、4B、8C、16D、3223.假设机器中浮点数的表示格式如下:阶符阶码尾符尾码15141211100当尾数用补码,阶码(阶码基数为2,尾数以规格化数表示)用补码表示时,-123.625的表示形式为(A)。A、0111100001000110B、0111111111011010C、0111100001000101D、100000000100011024.从功能上,8086的CPU由(C)两部分组成。A、SP、ALUB、控制器、FLAGSC、EU、BIUD、EU、ALU25.标志寄存器FLAGS中存放两类标志,即(B)。A、符号标志、溢出标志B、控制标志、状态标志C、方向标志、进位标志D、零标志、奇偶标志26.若AL=3BH,AH=7DH,则AL和AH中的内容相加后,标志CF、SF和OF的状态分别是(A)。A、0、1、1B、1、1、1C、0、0、0D、1、1、027.若AL=3BH,AH=7DH,则AL和AH中的内容相减后,标志CF、AF和PF的状态分别是(B)。A、0、0、1B、1、1、1C、0、1、0D、1、0、028.下列有关指令指针寄存器的说法中,哪一个是正确的(B)。A、IP存放当前正在执行的指令在代码段中的偏移地址B、IP存放下一条将要执行的指令在代码段中的偏移地址 C、IP存放当前正在执行的指令在存储器中的物理地址D、IP存放当前正在执行的指令在存储器中的段地址-----29.最小模式时,当M/IO为低电平时,表示CPU正在对(B)进行访问。A、存储器B、I/O端口C、外部存储器D、EPROM----------30.下面有关MN/MX的叙述正确的是(C)A、是工作模式选择信号,由CPU产生,为高电平时CPU工作在最小模式,为低电平时,CPU工作在最大模式B、是工作模式选择信号,由CPU产生,为低电平时CPU工作在最小模式,为高电平时,CPU工作在最大模式C、是工作模式选择信号,由外部输入,为低电平时CPU工作在最小模式,为高电平时,CPU工作在最大模式D、是工作模式选择信号,由外部输入,为高电平时CPU工作在最小模式,为低电平时,CPU工作在最大模式31.某CPU的主频为250MHZ,则它的时钟周期为(D)A、250nsB、50nsC、40nsD、4ns32.如果访问存储器时使用BP寻址,则默认的段寄存器是(D)A、CSB、ESC、DSD、SS33.某单元在数据段中,已知DS=1000H,偏移地址为1200H,则它的物理地址为(B)A、10000HB、11200HC、12100HD、13000H34.某系统中,已知SS=2360H,SP=0800H,若将20H个字节的数据入栈,则SP的内容为(D)A、0780HB、0820HC、23E20HD、07E0H35.某系统中,已知建立堆栈时SS=2360H,SP=0800H,经过一段时间后,SP的内容变为0700H,则堆栈中有多少个字的数据(A)A、80HB、50HC、100D、100H 36.设某一个单元的物理地址是54321H,则正确的逻辑地址表示为(C)A、4321H:50000HB、54320H:1HC、5430H:0021HD、5432H:00001H37.如果一个程序在执行前CS=1000H,IP=2000H,该程序的起始地址是(B)A、3000HB、12000HC、21000HD、1000H38.如果一个堆栈从地址1250H:0100H开始,SP=0050,则SS的段地址是(B)A、12600HB、1260HC、1265HD、125BH39.若已知[X]补=11101011B,[Y]补=01001010B,则[X–Y]补=(A)A、10100001BB、11011111BC、10100000BD、溢出二、判断题1.80486的逻辑段不允许有段的重叠和交叉。N2.在80486的32位标志寄存器中,其每一位都有一定的含义。N3.若一个数据块的起始地址为20A0H:0F6H,则该数据块起始地址的实际地址是21B60H。N4.SP的内容可以不指向堆栈的栈顶。N5.寄存器寻址其运算速度较低。N6.字长是描述CPU数据总线宽度的指标。Y7.计算机的堆栈是一种特殊的数据存储区,数据存取采用先进先出的原则。N8.当运算结果各位全部为零时,标志ZF=0。N9.逻辑地址不是物理地址,但它是唯一的。N三、填空题1.计算机是通过()、()、()总线把各个部件连接在一起,构成一个系统。2.8086的数据总线是()位,地址总线是()位。3.PC机主存储器中的基本存储单元的长度是()。4.80486可访问8位、()、和()、()位的寄存器。5.在微处理器的实地址方式下,段寄存器的作用是()。 6.若一个数中含有3个“1”,则其奇偶标志为()。8.80486工作在实模式下时,若需对堆栈区进行操作,其物理地址是由()和()组合产。9.程序设计中使用的地址称为(),而CPU对存储器单元进行操作时使用的地址称为()。10.按存储器的分级原则,其容量最大的一级存储器成为()。11.按存储器的分级原则,其速度最快的一级存储器成为()。12.微机的主要性能指标中,字长是指()。13.微型计算机由()和()两大部分组成。14.上电复位时,若CPU的CS=0FFFFH,IP=0000H,则第一条指令从()H方取15.8088与外部交换数据的总线宽度是位,与寄存器组之间的数据总线宽度是位,EU内部总线宽度是位。16.设AL=80H,AH=83H,AL和AH中的内容相加后,CF=,OF=,ZF=,PF=,AF=,SF=。17.8086/8088将整个存储空间划分为许多逻辑段,每个逻辑段容量在以内,各个逻辑段相互重叠。18.8086/8088中,某单元只能有一个地址,但可以有多个地址。19.如果对堆栈进行操作,则段基址来源于,偏移地址来源于。20.某存储单元物理地址为32413H,则相对于段地址为3000H,其偏移地址为,若,它的偏移地址是1003H,则其段地址为。21.在8086/8088系统中,所有读写存储器或I/O端口操作都是由通过系统总线完成的。四、简答题1.简述EU和BIU的主要功能?2.8086和8088的主要区别是什么?[参考答案] 一、选择题1.D2.C3.B4.D5.C6.B7.D8.C9.D10.A11.B12.C13.D14.A15.B16.D17.D18.D19.C20.D21.A22.B23.A24.C25.B26.A27.B28.B29.B30.C31.D32.D33.B34.D35.A36.C37.B38.B39.A二、判断题1.×2.×3.×4.×5.×6.√7.×8.×9.×三、填空题1.地址;数据;控制2.16,203.字节4.16,325.存放段基址6.18.SS,SP9.逻辑地址,物理地址10.外存11.寄存器12.一次能处理的二进制位数13.软件,硬件14.FFFF0H 15.8、8、1616.1,1,0,1,0,017.64KB、可以18.物理,逻辑19.SS、SP20.2413H、3141H21.BIU(总线接口单元)四、简答题1.参考答案:EU的主要功能是执行指令,完成指令规定的所有操作。BIU的主要功能是负责与存储器或I/O端口的信息传输。它们可以并行操作。2.参考答案:8086BIU中指令队列长度是6B,一旦指令队列空出2B,BIU将自动读取指令。而8088BIU中指令队列长度是4B,只要指令队列出现一个空闲字节,BIU都将自动读取指令。8088BIU与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器间的数据总线也是8位,在EU内部则是16位。而8086CPU则都是16位的 第二章微处理器结构习题一一、简答题1.微处理器内部结构由哪几部分组成?阐述各部分的主要功能。2.微处理器级总线有哪几类?各类总线有什么作用?3.为什么地址总线是单向的,而数据总线是双向的?4.8086/8088微处理器内部有哪些寄存器?其主要作用是什么?5.什么是虚拟存储器?其作用是什么?80386/80486的虚拟存储器容量最大有多少?6.何为RISC技术?与CISC相比其主要特点是什么?7.80386/80486有哪三种工作模式?各有何特点?8.什么叫流水线技术和超标量、超流水线技术?9.什么叫高度缓冲存储器技术?微机采用这种技术的根本目的是什么?10.试比较实工作模式和仿8086工作模式的异同。11.8086的逻辑地址、物理地址和线性地址分别指什么?它们的寻址能力分别为多少?12.保护工作模式下的保护是何含义?该工作模式下主要进行哪几方面的保护功能?13.DOS下对超过640KB的内存如何管理?14.下列操作可使用哪些寄存器?(1)加法和减法;(2)循环计数;(3)乘法和除法;(4)保存段地址;(5)表示运算结果的特征;(6)指令地址;(7)从堆栈中取数的地址;15.将下列两组的词汇和说明关联起来:(1)CPU;A.保存当前栈顶地址的寄存器;(2)EU;B.指示下一条要执行指令的地址;(3)BIU;C.总线接口部件,实现执行部件所需要的所有总线操作;(4)IP;D.分析并控制指令执行的部件;(5)SP;E.存储程序、数据等信息的记忆装置,PC机有RAM和ROM两种;(6)存储器;F.以后进先出方式工作的存储器空间;(7)堆栈;G.把汇编语言程序翻译成机器语言程序的系统程序; (8)指令;H.惟一代表存储器空间中的每个字节单元的地址;(9)状态标志;I.能被计算机直接识别的语言;(10)控制标志;J.用指令的助记符、符号地址、标号等符号书写程序的语言;(11)段寄存器;K.把若干个模块连接起来成为可执行文件的系统程序;(12)物理地址;L.保存各逻辑段的起始地址的寄存器;(13)汇编语言;M.控制操作的标志,PC机有三位:DF、IF、TF;(14)机器语言;N.记录指令操作结果的标志,PC机有六位:OF、SF、ZF、AF、PF、CF;(15)汇编程序;O.执行部件,由算术逻辑单元(ALU)和寄存器组等组成;(16)连接程序;P.由汇编程序在汇编过程中执行的指令;(17)目标码;Q.告诉CPU要执行的操作,在程序运行时执行;(18)伪指令R.机器语言代码。16.IBMPC有哪些寄存器可用来指示存储器的地址?二、计算选择题1.如果某微处理器有20条地址总线和16条数据总线:(1)假定存储器地址空间与I/O地址空间是分开的,则存储器地址空间有多大?(2)数据总线上传送的有符号整数的范围有多大?2.将十六进制数62A0H与下列各数相加,求出其结果及标志位CF、AF、SF、ZF、OF和PF的值:(1)1234H;(2)4321H;(3)CFA0H;(4)9D60H3.从下列各数中减去4AE0H,求出其结果及标志位CF、AF、SF、ZF、OF和PF的值:(1)1234H;(2)5D90H;(3)9090H;(4)EA04H4.写出下列存储器地址的段地址、偏移地址和物理地址:(1)2134:10A0;(2)1FA0:0A1F;(3)267A:B8765.给定一个数据的有效地址为2359H,并且(DS)=490BH,求该数据的物理地址。6.如果在一个程序段开始执行之前,(CS)=0A7F0H,(IP)=2B40H,求该程序段的第一个字的物理地址。7.设(BX)=637DH,(SI)=2A9BH,位移量=0C237H,(DS)=3100H,求下列寻址方式产生的有效地址和物理地址:(1)直接寻址;(2)用BX的寄存器间接寻址;(3)用BX的寄存器相对寻址;(4)用BX和SI的基址变址寻址;(5)用BX和SI的基址变址且相对寻址8.若(CS)=5200H时,物理转移地址为5A238H,那么(CS)变成7800H时,物理转移地址为多少? 9.设(CS)=0200H,(IP)=2BC0H,位移量=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH。求使用下列寻址方式时的转移地址:(1)段内直接寻址方式;(2)使用BX的寄存器寻址的段内间接寻址方式;(3)使用BX的寄存器相对寻址的段内间接寻址方式;10.有一块120个字的存储区域,其起始地址为625A:234D,写出这个存储区域首末单元的物理地址。11.两个十六进制数7825H和5A1FH分别相加和相减后,求运算结果及各标志位的值。[参考答案]一、1.答:微处理器内部结构主要由算术逻辑运算单元(ALU)、控制器、工作寄存器和I/O控制逻辑组成。算术逻辑运算单元是CPU的核心,它完成所有的运算操作;控制器是CPU的“指挥中心”,只有在它的控制下,CPU才能完成指令的读入、寄存、译码和执行;工作寄存器用于暂时存储寻址信息和计算中间结果;I/O控制逻辑用于处理I/O操作。3.答:由于在计算机中地址总是由CPU产生的,因此地址总线是单向的。而数据可从CPU写到存储器,也可从存储器读到CPU,因此数据总线是双向的。9.解:(1)段地址:2134H;偏移地址:10A0H;物理地址:223E0H(2)段地址:1FA0H;偏移地址:0A1FH;物理地址:2041FH(3)段地址:267AH;偏移地址:B876H;物理地址:32016H11.解:物理地址为:0A7F0H×10H+2B40H=A3330H。15.答:两组词汇和说明的关联关系为(1)~O;(2)~D;(3)~C;(4)~B;(5)~A;(6)~E;(7)~F;(8)~Q;(9)~N;(10)~M;(11)~L;(12)~H;(13)~J;(14)~I;(15)~G;(16)~K;(17)~R;(18)~P。16.答:指示存储器地址的寄存器有:SI,DI,BX,BP二、220104857611.解:存储空间为M字节,数据总线上传送的有符号整数的范围为-32768~+32767。3.解:(1)1234H-4AE0H=C754H;CF=1,AF=0,SF=1,ZF=0,OF=0,PF=0(2)5D90H-4AE0H=12B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0(3)9090H-4AE0H=45B0H;CF=0,AF=0,SF=0,ZF=0,OF=0,PF=0(4)EA04H-4AE0H=9F24H;CF=0,AF=0,SF=1,ZF=0,OF=0,PF=18.解:偏移地址为5A238H-5200H×10H=8238H,因此当(CS)变成7800H时,物理转移地址为7800H×10H+8238H=80238H10.解:存储区域的字节数为:2×120=240=0F0H,首地址为:625AH×10H+234DH=648EDH,末地址为:648EDH+0F0H=649DDH,或者:625AH×10H+(234DH+0F0H)=625A0H+243DH=649DDH。 11.解:7825H+5A1FH=0D244H,AF=1,CF=0,ZF=0,SF=1,OF=1(当将7825H和5A1FH看作有符号数时,两个正数相加得到一个负数,结果显然是错误的,实际上,在运算过程中,次高位产生了进位而最高位没有产生进位,故运算产生溢出),PF=1(因为在44H中包含有偶数个1)。7825H-5A1FH=1E06H,AF=1,CF=0,ZF=0,SF=0,OF=0,PF=1。5A1FH-7825H=0E1FAH,AF=0,CF=1,ZF=0,SF=1,OF=0,PF=1。习题一第三章指令系统和寻址方式习题三一.选择题1.指令ADDCX,55H[BP]的源操作数的寻址方式是()。(A)寄存器寻址(B)直接寻址(C)寄存器间接寻址(D)寄存器相对寻址2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=()。(A)113AH(B)114AH(C)1144H(D)1140H3.若SI=0053H,BP=0054H,执行SUBSI,BP后,则()。(A)CF=0,OF=0(B)CF=0,OF=1(C)CF=1,OF=0(D)CF=1,OF=14.已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOVBX,[BP]执行后,(BX)=()。(A)0102H(B)0201H(C)245AH(D)5A24H5.实模式下80486CPU对指令的寻址由()决定。(A)CS,IP(B)DS,IP(C)SS,IP(D)ES,IP 6.使用80486汇编语言的伪操作指令定义:VALDB2DUP(1,2,3DUP(3),2DUP(1,0))则在VAL存储区内前十个字节单元的数据是()。(A)1,2,3,3,2,1,0,1,2,3(B)1,2,3,3,3,3,2,1,0,1(C)2,1,2,3,3,2,1,0(D)1,2,3,3,3,1,0,1,0,17.下列四条指令都可用来使累加器清"0",但其中不能清"进位"位的是()。(A)XORAL,AL(B)ANDAL,0(C)MOVAL,0(D)SUBAL,AL8.若(AX)=96H,(BX)=65H,依次执行ADDAX,BX指令和DAA指令后,(AL)=()。(A)0FBH(B)01H(C)61H(D)0BH9.下列能使CF标志置1的指令是()。(A)CMC(B)CLC(C)STC(D)CLD10.MOVAX,[BP+SI]隐含使用的段寄存器是()。(A)CS(B)DS(C)ES(D)SS11.设AL=7FH,要使AL=80H,应使用下列哪一条指令()。(A)ANDAL,80H(B)ORAL,80H(C)XORAL,80H(D)NOTAL12.在执行十进制调整指令DAA,DAS之前必须将结果存放于()中。(A)AX(B)AH(C)AL(D)BL13.下列指令执行后影响标志位的是()。(A)MOV(B)PUSH(C)ADD(D)XCHG14.唯一能对应存储单元的地址是()。(A)物理地址(B)端口地址(C)有效地址(D)逻辑地址15.计算机能直接执行的语言是()。(A)机器语言(B)汇编语言(C)高级语言(D)程序设计语言16.需采用先进后出原则操作的存储区是()。 (A)寄存器组(B)地址缓冲器(C)数据寄存器(D)堆栈区17.寄存器SP用于对()的操作。(A)空闲单元(B)堆栈单元(C)数据单元(D)指令单元18.若(BX)=1000H,(DS)=2000H,(21000H)=12H,(21001H)=34H,执行LEASI,[BX]指令后,SI寄存器的内容是()。(A)1234H(B)3412H(C)1000H(D)0010H19.若(AL)=80H,执行NEGAL指令后,CF和OF标志位的状态分别为()。(A)0和0(B)0和1(C)1和0(D)1和120.若要完成(AX)*7/2运算,则在下列四条指令之后添加()指令。MOVBX,AX;MOVCL,3;SALAX,CL;SUBAX,BX()。(A)RORAX,1(B)SALAX,1(C)SARAX,1(D)DIVAX,221.在保护模式下,代码段的段基址存在于()中。(A)段选择符(B)指令指针寄存器(C)段寄存器(D)段描述符22.查表指令XLAT规定,待查表的首址应存入()中。(A)BP(B)SI(C)DI(D)BX23.将要取的某一条指令的偏移地址由()提供。(A)SI(B)BP(C)SP(D)IP24.寄存器间接寻址方式中,操作数在()中。(A)通用寄存器(B)堆栈(C)主存单元(D)段寄存器25.运算型指令的寻址和转移型指令的寻址,其不同点在于()。(A)前者取操作数,后者决定程序的转移地址(B)后者取操作数,前者决定程序的转移地址(C)两者都是取操作数(D)两者都是决定程序的转移地址 26.JMPWORDPTR[DI]是()。(A)段内间接转移(B)段间间接转移(C)段内直接转移(D)段间直接转移27.INC指令不影响()标志。(A)OF(B)CF(C)SF(D)ZF28.逻辑移位指令SHL用于()。(A)带符号数乘2(B)带符号数除2(C)无符号数乘2(D)无符号数除229.算术移位指令SAR用于()。(A)带符号数乘2(B)带符号数除2(C)无符号数乘2(D)无符号数除230.下列指令中,有语法错误的是()。(A)MOV[SI],AX(B)INAL,DX(C)XORAX,1234H(D)OUT210H,AL31.在下列伪指令中定义字变量的是()。(A)DD(B)DW(C)DQ(D)DT32.下列指令中,能使AL的内容固定为偶数的是()。(A)ADDAL,01H(B)ORAL,0FEH(C)ANDAL,0FEH(D)XORAL,0FEH33.改变()寄存器的值,可改变堆栈中栈顶元素的位置。(A)BP(B)IP(C)SP(D)BX34.加减类运算指令对标志位的状态()。(A)有影响(B)部分影响(C)无影响(D)任意35.当AH=()时,执行INT21H指令可在屏幕上显示一组字符。(A)01H(B)02H(C)09H(D)0AH36.已知VARDW1,2,$+2,5,6若汇编时VAR分配的偏移地址是2010和,则汇编后2014H单元的内容是()。 (A)6H(B)14H(C)5H(D)16H37.若某数据段位于存储区68000H~7FFFFH,则该数据段的段基址是()。(A)68000H(B)7FFFFH(C)6000H(D)6800H38.SP的作用是用来指示()。(A)栈顶元素的有效地址(B)下一条要执行指令的地址(C)下一条要取的指令的地址(D)栈底元素的有效地址39.在数据传送指令执行过程中,不能直接与立即数进行传送的是()。(A)通用寄存器(B)段寄存器(C)存储器(D)通用寄存器和存储器40.转移类指令对标志位的状态()。(A)有影响(B)部分影响(C)无影响(D)随意41.欲从存储单元取某操作数,可采用()。(A)寄存器寻址、寄存器间接寻址(B)立即寻址、直接寻址(C)立即寻址、寄存器间接寻址(D)寄存器间接寻址、直接寻址42.在指令MOVAX,0执行后,CPU状态标志位ZF的取值()。(A)为0(B)为1(C)不确定(D)不改变43.已知AL=10010111H,BL=00010101H,执行ADDAL,BL指令后,OF、SF、CF、ZF标志的状态为()。(A)1、0、1、1(B)1、1、0、0(C)0、0、1、1(D)0、1、0、144.下列指令中,错误的是()。(A)MOVBX,OFFSETBUF(B)LEASI,BUF(C)LEADI,OFFSETBUF(D)MOVBP,SEGBUF45.输入/输出指令对标志位的状态()。(A)有影响(B)部分影响(C)无影响(D)任意 46.下列描述正确的是()。(A)汇编语言仅由指令性语句组成(B)汇编语言包括指令性语句和伪指令语句(C)指令性语句和伪指令语句的格式是完全相同的(D)指令性语句和伪指令语句需经汇编程序翻译成机器代码后才能执行47.下列指令中不属于逻辑运算指令的是()。(A)XOR(B)CWD(C)NOT(D)OR48.假定DX=10111001B,CL=3,CF=1,则执行指令SHLDX,CL后,DX的值为()。(A)005CH(B)0017H(C)1700H(D)05C8H49.下列指令中不会改变指令指针寄存器内容的是()。(A)MOV(B)JMP(C)CALL(D)RET50.伪指令ENDP告诉汇编程序()。(A)宏定义结束(B)过程定义结束(C)段定义结束(D)过程运行结束51.利用DOS系统功能调用的9号(AH=9)功能,显示一个字符串,其入口参数应为()。(A)DS:DX=字符串首地址(B)DS:DX=字符串末地址(C)CS:DX=字符串首地址(D)CS:DX=字符串末地址52.在下列伪指令中定义双字变量的是()。(A)DB(B)DW(C)DD(D)DT二、判断题1.指令MOVAX,[BX]的源操作数是寄存器寻址方式。2.对堆栈区的操作必须遵循先进先出的原则。 3.比较两个带符号数的大小,可根据CF标志来判断。4.逻辑操作符AND,OR,XOR和NOT,只能用于数字表达式。5.不能给段寄存器赋立即数。6.OF位可用来表示有符号数的溢出。7.无条件转移指令只能用于段内直接转移。8.MOVAX,[BP]的源操作数的物理地址为16*(DS)+(BP)。9.指令MOVDI,OFFSET[BX][SI]是正确的。10.指令MOVCS,BX是非法的。11.指令NOTAX,BX是合法的。12.MOV[BX][BP],AX是对的。13.80486中对堆栈单元的存取操作是以字节为单位的。14.JMP指令要影响标志位。15.INC指令影响所有状态标志。16.欲交换寄存器SI,DI的内容,可用指令XCHGSI,DI实现。17.CPU中的程序计数器IP中存放的是指令的逻辑地址。18.两个符号相同的数相减不会产生溢出。19.汇编程序就是汇编语言程序。20.相对寻址中的位移量只能用16位表示。21.CLD指令是MOVSB指令的使用条件之一。22.段寄存器间不能直接进行数据传送。23.要把变量BUFF的有效地址送给BX,可用MOVBX,BUFF指令。24.当对堆栈段的数据进行操作时,其操作数的有效地址可保存在BP中。25.TEST指令属于逻辑运算指令。 26.CS和IP都不能作传送指令的目的操作数。三、填空题1.若SS=5310H,SP=0E30H,其物理地址为()。2.若CH=07H,CL=08H,执行指令ADDCH,CL后,AF=(),CF=(),OF=(),PF=()。3.指令由()和()两个字段构成。4.条件转移指令JNE的测试条件是()。5.若用指针(BP)访问存储器,则数据包含在()段中。6.若AX=1234H,SP=1000H,指令PUSHAX执行后AX=(),SP=()。7.指令采用()寻址方式时操作数是在代码段中。四、阅读程序程序中数据定义如下:DATA1DW?DATA2DB32DUP(?)DATA3DD?COUNTEQU$-DATA1此时COUNT的值是()。2.分析下列程序段,说出其功能。MOVAX,1000HMOVDS,AXMOVES,AXMOVSI,0100HMOVDI,0200HMOVCX,50DREPMOVSB 3.写出下列程序段的功能MOVBX,2000HMOVDS,BXXORAL,ALMOVCX,100AGAIN:MOV[BX],ALINCBXLOOPAGAIN4.写出下列程序段的功能LEASI,BUFFERLEADI,ARRAYMOVCX,100XORBL,BLLP:CMP[SI],01HJNZLP1INCBLLP1:INCSILOOPLPMOV[DI],BL5.写出下列程序段的功能MOVCX,16MOVAX,NMOVBH,0 LP0:SHLAX,1JCLPINCBHLP:LOOPLP0MOVSUM,BH6.写出下列程序段的功能MOVAL,NANDN,0FHMOVBL,NSHRAL,4MOVBH,AL7.执行下列程序段后,AX=?MOVAX,0702HMOVBH,09HAADDIVBH8.下面程序段执行后AL=?ABCDW2152H,3416H,5731H,4684HMOVBX,OFFSETABCMOVAL,3XLAT9.执行下面的程序段后AX=?MOVCX,5 MOVAX,50NEXT:SUBAX,CXLOOPNEXTHLT10.执行下面的程序段后AX=?TABDW1,2,3,4,5,6ENTRYEQU6MOVBX,OFFSETTABADDBX,ENTRYMOVAX,[BX]11.执行下面程序段后AX=ARRAYDW1,2,3,4,5,6,7,8,9,10COUNTEQU$-ARRAYXORAX,AXMOVCX,COUNTMOVSI,OFFSETARRAYNEXT:ADDAX,[SI]INCSILOOPNEXT12.写出下列程序段的功能MOVAH,1INT21HANDAL,0FH MOVBL,ALMOVAH,1INT21HSHLAL,4ANDAL,BL将从键盘接受到的两个字符拼在一起13.执行下列程序段后NDB07HXORBH,BHMOVBL,NRCLBL,1ADDBH,BLXORBH,0FFHHLT寄存器BH的值是,寄存器BL的值是。14.分析下列程序段MOVAL,NXORAH,AHMOVCL,4DIVCL当N=3CH时,程序执行完后AX=15.程序段如下:CLC MOVAL,6MOVBL,9ADDAL,BLMOVBL,ALDAA执行上面程序段后,AL=,AF=,BL=16.执行下列指令后TABLEDB19H,55H,9CHLEABX,TABLEMOVAL,[BX]XORAL,89HMOV[BX],AL寄存器AL的值是17.分析下列程序段,说明该程序段执行何种功能。MOVCX,10MOVDL,30HNEXT1:MOVAH,2INT21HINCDLLOOPNEXT118.执行下列指令后MOVAX,1245HMOVBX,5689H ADDAL,BLMOVCL,ALMOVAL,AHADCAL,BHDAA寄存器AL的值是,寄存器CL的值是19.分析下列程序段:MOVAL,NXORAH,AHMOVBL,16DIVBL当N=57H时,程序执行完后AX=?20.在下面程序的括号中分别填入如下指令:①LOOPXH②LOOPNEXH③LOOPEXH问在这三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器中的内容分别是什么?START:MOVAX,04MOVBX,02MOVCX,03MOVDX,05XH:INCAXADDBX,AXSHRDX,1 ()HLT21.阅读程序,请说出该程序的功能是什么?MOVAX,DATAMOVDS,AXLEASI,BUFFERXORBL,BLMOVCX,100AGAIN:MOVAL,[SI]TESTAL,1JNZNEXTINCBLNEXT:INCSILOOPAGAINHLT22.从键盘上接收一字符,若是“Y”转YES,是“N”转NO,否则继续等待,到输入“Y”或“N”为止。程序段如下:MOVAL,NANDAL,0FHADDAL,90HDAAADCAL,40H MOVRUT,ALHLT问:①若N=5,下列程序执行后AL=?②该程序段的功能是什么?23.执行下列程序段后:DATASEGMENTDT1LABLEWORDDT2DB12H,34HDATAENDS………………MOVAL,DT2MOVDX,DT1寄存器AL的值是①,寄存器DX的值是②。24.读下列程序,请说出该程序的功能是什么?DATASEGMENTSUMDW0DATAENDSSTACKSEGMENTDB200DUP(?)STACKENDSCODESEGMENTASSUMEDS:DATA,SS:STACK,CS:CODESTART:MOVAX,DATAMOVDS,AX MOVCX,50MOVAX,0MOVBX,1NEXT:ADDAX,BXINCBXINCBXDECCXJNENEXTMOVSUM,AXMOVAH,4CHINT21HCODEENDSENDSTART25.设伪指令定义如下,请画出内存分配示意图。BUFDB?DW‘AB’DW‘C’DW1234HDB‘EF’26.执行下列程序段后:DATASEGMENTDT1DW8A9BHDT2DB7CH,6DH DATAENDS┇┇MOVAX,DT1MOVBX,OFFSETDT1MOVSI,OFFSETDT2寄存器BX的值是①,寄存器SI的值是②。27.执行下列指令后:TABLEDB10H,33H,41H┉┉MOVBX,OFFSETTABLEMOVAL,[BX]XORAL,80HMOV[BX],AL寄存器AL的值是多少?28.执行下列程序段后:DATASEGMENTN1DW3355HN2DB23H,89HDATAENDS┇MOVAX,N1MOVDI,OFFSETN1 MOVBP,OFFSETN2寄存器DI的值是多少?寄存器BP的值是多少?29.执行下列指令后:DATDB10H,33H,41H┉┉LEABX,DATMOVAX,SEGDATMOVES,AXMOVAL,ES:[BX]XORAL,80HMOVES:[BX],AL寄存器AL的值是多少?30.执行下列程序段后:BUFDB01H……XORAL,ALMOVAL,BUFMOVBL,ALSALAL,1ADDAL,BLXORAL,0FFHHLT寄存器AL的值是多少?寄存器BL的值是多少? 五.程序填空1.下列程序是在键盘上输入120个字符,然后将输入反序后显示在屏幕上。请将程序填写完整。STACK1SEGMENTSTPDW120DUP(?)STACK1ENDSCODESEGMENTASSUMECS:CODE,SS:STACK1START:MOVAX,STACK1MOVSS,AXMOVSP,SIZESTPMOVCX,120LOOP1:MOVAH,01HINT21HPUSHAX()MOVDL,0AHMOVAH,02HINT21HMOVDL,0DHINT21HMOVCX,120LOOP2:() MOVAH,02HINT21HLOOPLOOP2MOVAH,4CHINT21HCODEENDSENDSTART六、编写程序1.在STR到STR+49单元中存放着一个字符串,试编写一个程序,测试字符串中是否存在数字,如有,则把DL的第五位置1,否则将该位置0。2.试编程实现,从键盘接收N个(N≤60)8位二进制数,统计其中奇数的个数,并将结果显示在屏幕上。3.已知有100字节的数据块存放在以5C10H:2000H开始的存储区内,要求编写一个完整程序将数据移动到以5C10H:2008H开始的存储区内。4.数组A包含100个互不相等的整数,数组B包含150个互不相等的整数,试编程实现将数组A和数组B都有的整数存放在数组C中。5.在以BASE起始的表中存有一组字符,它以‘回车’(0DH)结束。请编写程序:实现从该表中查找关键字KEY(设关键字KEY在AL中),并将找到的第一个关键字偏离表首的位置存放在寄存器DX中,若无此关键字,DX返回值为-1。6.编写一个中断程序,实现人机对话。要求执行程序时,显示‘WHATISYOURNAME?’,在回车换行后,接收键盘输入信息,并显示。7.编写程序找出BUF数据区中50个带符号数的最大值和最小值,并分别存入MAX和MIN单元。 8.试编程实现从键盘接收N个(N≤50)8位二进制数,统计偶数的个数及偶数之和,并将统计的个数以十进制方式显示在屏幕上。9.以STRING起始的字符串的最大长度为80个字符,字符串的结束用字符$表示。编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格字符串中的位置(00H~4FH)存入POST单元;若无空格则将-1存入POST。10.BUFFER字节数组中存有一组无序列字节数数据,列的长度表示在BUFFER的第一个字节中KEY中为一个字节数据,编写程序在BUFFER中查找有无KEY,若有就结束,若没有就将KEY加入到BUFFER中去,并修改列的长度。11.利用移位及数据循环指令完成将DHAL中的16位二进制乘以8的运算,结果仍存入DHAL中。12.分别从键盘上接收两长度相等的组数A和B,试完成两数组的求和任务,将结果存放在数组C中,并显示在屏幕上。13.编写程序,将键盘输入的小写字母用大写字母显示出来。14.要求从键盘接收一个十进制数字,然后找出它的前导数字和后继数字,并按相反的顺序显示输出。15.设在变量X、Y、Z中存放有三个数,若三个数都不为0,则求出三个数之和存入U中,若有一个为0,则将其它两个单元也清零,编写此程序。16.求出首地址为DATA的M个字节的无符号数组中最小奇数,并把它存放于DL中。一.选择题1.(D)2.(A)3.(C)4.(D)5.(A)6.(D)7.(C)8.(C)9.(C)10.(D)11.(D)12.(C)13.(C)14.(A)15.(A)16.(D)17.(B)18.(C)19.(C)20.(C)21.(D)22.(D)23.(D)24.(C)25.(A)26.(A)27.(B)28.(C)29.(B)30.(D) 31.(B)32.(C)33.(C)34.(A)35.(C)36.(D)37.(D)38.(A)39.(B)40.(C)41.(D)42.(D)43.(B)44.(C)45.(C)46.(B)47.(B)48.(D)49.(A)50.(B)51.(A)52.(C)二、判断题1.×2.×3.×4.√5.√6.√7.×8.×9.×10.√11.×12.×13.×14.×15.×16.√17.√18.√19.×20.×21.×22.√23.×24.√25.√26.√三、填空题1.53F30H2.0;0;0;13.操作码;操作数4.ZF=05.SS6.1234H,0FFEH7.立即四、阅读程序1.38(或26H)2.将以10100H起始的50个单元的内容传送至以10200H起始的50个单元中3.将数据段中以2000H起始的100个单元中的内容清零4.统计以BUFFER为首址的100个单元中数字为1的个数存入ARRAY单元5.统计N字中0的个数6.将N的内容拆为两部分分别存入BH,BL中7.AX=0008H8.AL=34H9.AX=23H10.AX=0004H 11.AX=0055H12.将从键盘接受到的两个字符拼在一起13.BH=0FFH,BL=0EH14.AX=000FH15.AL=15H,AF=1,BL=0FH16.90H17.向屏幕上依次输出0,1,…。918.AL=68H,CL=CEH19.AX=0705H20.1AX=0007H,BX=0014H,CX=0,DX=0②AX=0007H,BX=0014H,CX=0,DX=0③AX=0005H,BX=0007H,CX=0002H,DX=0002H21.程序的功能是:统计以BUFFER为起始地址的100个单元中偶数的个数。22.①35H②将十六进制数转换为ASCII码23.①12H②3412H24.程序的功能是:求从1开始的50个奇数之和。25.(如下图)26.①、0000H②、0002H27.AL=90H28.DI=0000HBP=0002H29.AL=90H30.①AL=0FCH②BL=1 五.程序填空1.①、LOOPLOOP1②、POPAX;MOVDL,AL六、编写程序1.在STR到STR+49单元中存放着一个字符串,试编写一个程序,测试字符串中是否存在数字,如有,则把DL的第五位置1,否则将该位置0。DATASEGMENTSTR1DB50DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAINPROCFARSTART:PUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXBEGIN:MOVCX,50MOVSI,0REP1:MOVAL,STR1[SI]CMPAL,30HJBGOCMPAL,39HJAGOORDL,20HJMPEXITGO:INCSILOOPREP1ANDDL,0DFHEXIT:RETMAINENDP CODEENDSENDSTART2.试编程实现,从键盘接收N个(N≤60)8位二进制数,统计其中奇数的个数,并将结果显示在屏幕上。DATASEGMENTKEYDB61KEY1DB?KEY2DB61DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETKEYMOVAH,0AHINT21HMOVAL,0LEASI,KEY2MOVCH,0MOVCL,KEY1LP0:MOVBL,[SI]TESTBL,01HJZLP1ADDAL,01HDAALP1:INCSILOOPLP0MOVBL,ALMOVCL,4 SHRAL,CLADDAL,30HMOVDL,ALMOVAH,02HINT21HANDBL,0FHADDBL,30HMOVDL,BLMOVAH,02HINT21HMOVAH,4CHINT21HCODEENDSENDSTART3.已知有100字节的数据块存放在以5C10H:2000H开始的存储区内,要求编写一个完整程序将数据移动到以5C10H:2008H开始的存储区内。参考程序CODESEGMENTASSUMECS:CODEMAIN:MOVAX,5C10HMOVES,AXMOVDS,AXMOVSI,2063HMOVDI,206BHSTDMOVCX,100REPMOVSBMOVAH,4CHINT21HCODEENDS ENDMAIN4.数组A包含100个互不相等的整数,数组B包含150个互不相等的整数,试编程实现将数组A和数组B都有的整数存放在数组C中。参考程序DATSEGMENTADB100DUP(?)BDB150DUP(?)CDB150DUP(?)NDW00HDATENDSCODSEGMENTASSUMECS:COD,DS:DAT,ES:DATSTART:MOVAX,DATMOVDS,AXMOVES,AXCLDLEASI,BMOVDX,150LP0:MOVCX,100LEADI,AMOVAL,[SI]REPNZSCASBJNZLP1LEABX,CADDBX,NMOV[BX],ALINCNLP1:INCSIDECDXJNZLP0 MOVAX,004CHINT21HCODENDSENDSTART5.在以BASE起始的表中存有一组字符,它以‘回车’(0DH)结束。请编写程序:实现从该表中查找关键字KEY(设关键字KEY在AL中),并将找到的第一个关键字偏离表首的位置存放在寄存器DX中,若无此关键字,DX返回值为-1。LEADI,BASEMOVDX,-1LOP:MOVBL,[DI]CMPBL,0DHJZDONECMPBL,ALJZLOP1INCDIJMPLOPLOP1:MOVDX,DIDONE:HLT6.编写一个中断程序,实现人机对话。要求执行程序时,显示‘WHATISYOURNAME?’,在回车换行后,接收键盘输入信息,并显示。(提示:使用09H和0AH功能调用)DATASEGMENTBUFDB81DB?DB81DUP(?)MESGDB‘WHATISYOURNAME?’,0AH,0DHDB$DATAENDS STACKSEGMENTPARASTACK‘STACK’DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROCFARPUSHDSMOVAX,0PUSHAXMOVAX,DATAMOVDS,AXDISP:MOVDX,OFFSETMESGMOVAH,09HINT21HKEYBI:MOVDX,OFFSETBUFMOVAX,0AHINT21HLF:MOVDL,0AHMOVAH,02HINT21HDISTR:MOVDX,OFFSETBUF+2MOVAH,09HINT21HRETSTARTENDPCODEENDSENDSTART7.编写程序找出BUF数据区中50个带符号数的最大值和最小值,并分别存入MAX和MIN单元。 参考程序如下:DATASEGMENTBUFDB50DUP(?)MAXDB?MINDB?CONTEQU$-BUFDATAENDSSTACKSEGMENTTPDB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART:PUSHDSSUBAX,AXPUSHAXMOVDS,AXLEABX,BUFMOVCX,CONT-1MOVAL,[BX]MOVAH,[BX+1]INCBXCMPAH,ALJGELOP1XCHGAH,ALLOP1:INCBXCMPAH,[BX]JGELISXCHGAH,[BX]JMPLOP2 LIS:CMPAL,[BX]JLELOP2XCHGAL,[BX]LOP2:LOOPLOP1MOVMAX,AHMOVMIN,ALRETMAINENDPCODEENDSENDSTART8.试编程实现从键盘接收N个(N≤50)8位二进制数,统计偶数的个数及偶数之和,并将统计的个数以十进制方式显示在屏幕上。DATASEGMENTKEY1DB51KEY2DB?KEY3DB51DUP(?)DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODEMAIN:MOVAX,DATAMOVDS,AXMOVSI,OFFSETKEY1MOVAH,0AHINT21HLEABX,KEY3XORDX,DXMOVCL,KEY2MOVCH,0LP0:MOVAL,[SI] TESTAL,01HJNZLPADDBL,ALMOVAL,BHADDAL,1DAAMOVBH,ALLP:INCSILOOPLP0SHLAL,4ADDAL,30HMOVDL,ALMOVAH,01INT21HANDBH,0FHMOVDL,30HADDDL,BHMOVAH,1INT21HMOVAH,4CHINT21HCODEENDSENDMAIN9.以STRING起始的字符串的最大长度为80个字符,字符串的结束用字符$表示。编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格字符串中的位置(00H~4FH)存入POST单元;若无空格则将-1存入POST。LEABX,STRINGMOVCX,80 NEXT1:MOVAL,[BX]CMPAL,’$’JZDONECMPAL,20HJZNEXTINCBXLOOPNEXT1JMPDONENEXT:MOVPOST,BLJMPEND1DONE:MOVPOST,0FFHEND1:……10.BUFFER字节数组中存有一组无序列字节数数据,列的长度表示在BUFFER的第一个字节中KEY中为一个字节数据,编写程序在BUFFER中查找有无KEY,若有就结束,若没有就将KEY加入到BUFFER中去,并修改列的长度。LEASI,BUFFERMOVCL,[SI]INCSIXORCH,CHNEXT:MOVAL,[SI]CMPAL,KEYJZDONEINCSILOOPNEXTMOVAL,KEYMOV[SI],ALINCBYTEPTRBUFFERDONE:………。 11.利用移位及数据循环指令完成将DHAL中的16位二进制乘以8的运算,结果仍存入DHAL中。MOVCX,3NEXT:SHLAL,1RCLDH,1LOOPNEXTMOVAH,4CHINT21H12.分别从键盘上接收两长度相等的组数A和B,试完成两数组的求和任务,将结果存放在数组C中,并显示在屏幕上。DATASEGMENTA0DB80A1DB?ADB80DUP(?)B0DB80B1DB?BDB80DUP(?)CDB80DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAMAIN:MOVAX,DATAMOVDS,AXLEADX,A0MOVAH,0AHINT21HLEADX,B0MOVAH,0AHINT21HCLC LEASI,ALEABX,BLEADI,CMOVCL,A1XORCH,CHNEXT:MOVAL,[SI]ADCAL,[BX]MOV[DI],ALINCBXINCSIINCDILOOPNEXTMOVCL,A1XORCH,CHLEADI,CN0:MOVDL,[DI]SHLDL,4ADDDL,30HCMPDL,39HJNCN1ADDDL,07HN1:MOVAH,01HINT21HAND[DI],0FHMOVDL,[DI]ADDDL,30HCMPDL,39HJNCN2ADDDL,07H N2:MOVAH,01HINT21HINCDILOOPN0MOVAH,4CHINT21HCODEENDSENDMAIN13.编写程序,将键盘输入的小写字母用大写字母显示出来。AGAIN:MOVAH,2INT21HANDAL,11011111BMOVDL,ALMOVAH,1INT21HJMPAGAIN14.要求从键盘接收一个十进制数字,然后找出它的前导数字和后继数字,并按相反的顺序显示输出。MOVAH,2INT21HMOVCL,ALINCALMOVDL,ALMOVAH,1INT21HMOVDL,CLMOVAH,1INT21HDECCL MOVDL,CLMOVAH,1INT21H15.设在变量X、Y、Z中存放有三个数,若三个数都不为0,则求出三个数之和存入U中,若有一个为0,则将其它两个单元也清零,编写此程序。MOVAL,XANDAL,ALJNZNEXTORAL,YJZDONECMPZ,0JZDONEMOVY,0MOVZ,0JMPDONENEXT:CMPY,0JNZNEXT1CMPZ,0JZDONEMOVX,0MOVZ,0JMPDONENEXT1:CMPZ,0JNZNEXT2MOVX,0MOVY,0JMPDONENEXT2:ADDAL,YADDAL,Z MOVU,ALDONE:……16.求出首地址为DATA的M个字节的无符号数组中最小奇数,并把它存放于DL中。LEABX,DATAMOVCX,MMOVAH,01HAGAIN:MOVAL,[BX]TESTAL,0FFHJZNEXTCMPAH,ALJNCNEXTMOVAH,ALNEXT:INCBXLOOPAGAINMOVDL,AL第四章汇编语言程序设计习题四例4-1写出下列变量的内容:VAR1DB125,125/3,-1,-10HVAR2DW125,125/3,-1,-10HVAR3DB‘AB’,‘CD’VAR4DW‘AB’,‘CD’解:按十六进制数依次写出各个变量的内容为:VAR1:7D,29,FF,F0VAR2:007D,0029,FFFF,FFF0VAR3:41,42,43,44VAR4:4142,4344按内存存储顺序给出:7D,29,FF,F0,7D,00,29,00,FF,FF,F0,FF,41,42,43,44,42,41,44,43 例4.2设有下列伪指令:STARTDB1,2,3,4,’ABCD’DB3DUP(?,1)BUFDB10DUP(?),15LEQUBUF-START求L的值。解:由EQU伪指令知,L的值为BUF的偏移地址减去START的偏移地址,而变量START共占用8个字节,第2行定义的变量(无变量名)共占用6个字节,因此,L的值为8+6=14=0EH。例4.3在缓冲区DATABUF中保存有一组无符号数据(8位),其数据个数存放在DATABUF的第1、2个字节中,要求编写程序将数据按递增顺序排列。(与教材p.114例4.3.10类似,但方法不同)解:这里采用双重循环实现数据的排序,这可使程序变得简单。N=100;设有100个数据STACKSEGMENTSTACK‘STACK’DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTDATABUFDWNDBNDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP;取出随机数据MOVCX,DATABUFLEASI,DATABUF+2MOVBL,23MOVAL,11LP:MOV[SI],ALINCSIADDAL,BLLOOPLP ;数据排序MOVCX,DATABUFDECCXLEASI,DATABUF+2ADDSI,CXLP1:PUSHCXPUSHSILP2:MOVAL,[SI]CMPAL,[SI-1]JAENOXCHGXCHGAL,[SI-1]MOV[SI],ALNOXCHG:DECSILOOPLP2POPSIPOPCXLOOPLP1;数据排序结束MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART例4-4有一组数据(16位而进制数)存放在缓冲区BUF1中,数据个数保存在BUF1的头两个字节中。要求编写程序实现在缓冲区中查找某一数据,如果缓冲区中没有该数据,则将它插入到缓冲区的最后;如果缓冲区中有多个被查找的数据,则只保留第一个,将其余的删除。解:在缓冲区BUF中搜索指定的数据,当没有找到时,插入该数据;当找到时,进入搜索多余的重复数据,每找到一个就删除它(将缓冲区的剩余数据向前移动一个字)。当然应注意更新缓冲区的长度单元。STACKSEGMENTSTACK"STACK"DW100HDUP(?)TOPLABELWORDSTACKENDS;设缓冲区原有10个字,指定的数据为(NEW)=56AAHDATASEGMENTBUFDW10DW1000H,0025H,6730H,6758H,7344H,2023H,0025H,6745H,10A7H,0B612HDW10DUP(?) NEWDW56AAHDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP;搜索指定的数据MOVCX,BUFLEASI,BUF+2MOVAX,NEWL1:CMPAX,[SI]JZL2.......INCSIINCSILOOPL1;没有找到,则插入数据MOV[SI],AXINCBUFJMPOK;找到后,在剩余部分搜索重复的数据L2:DECCXINCSIINCSIL3:CMPAX,[SI]JZL4INCSIINCSILOOPL3JMPOK;找到一个重复数据,则删除它L4:PUSHSIDECCXPUSHCXMOVDI,SIINCSIINCSICLDREPMOVSWDECBUF POPCXPOPSIJMPL3;删除后,返回继续搜索重复的数据OK:MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART例4.5在缓冲区DAT1和DAT2中,存放着两组递增有序的8位二进制无符号数,其中前两个字节保存数组的长度,要求编程实现将它们合并成一组递增有序的数据DAT,DAT的前两个字节仍用于保存数组长度。解:这里要用到3个指针的使用。对于写指针首选使用DI,两个读指针可采用SI和BX,分别指示DAT1和DAT2。这样可适时使用字符串指令,以简化程序设计。在设计中,将用BX指示的缓冲区DAT2内容读入AL,这样,当要将DAT1的内容传送到DAT时,可采用MOVSB指令;当要将DAT2的内容传送到DAT时,可采用STOSB指令。STACKSEGMENTSTACK"STACK"DW100HDUP(?)TOPLABELWORDSTACKENDS;设DAT1中有10个数据,DAT2中有13个数据DATASEGMENTDAT1DW10DB10H,25H,67H,68H,73H,83H,95H,0A8H,0C2H,0E6HDAT2DW13DB05,12H,26H,45H,58H,65H,67H,70H,76H,88H,92H,0CDH,0DEHDATDW?DB200DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOPMOVCX,DAT1MOVDX,DAT2MOVDAT,CXADDDAT,DXLEASI,DAT1+2LEABX,DAT2+2 LEADI,DAT+2CLDL1:MOVAL,[BX]INCBXL2:CMPAL,[SI]JBL3MOVSB;DAT1区中的数据传送到DAT区DECCXJZL4JMPL2L3:STOSB;DAT2区中的数据传送到DAT区DECDXJZL5JMPL1L4:MOVSI,BXDECSIMOVCX,DXL5:REPMOVSBMOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART例4.6已知缓冲区BUFA内有20个互不相等的整数(其序号从0到19),缓冲区BUFB内有30个互不相等的整数(其序号从0到29)。编写程序完成:将既在BUFA中出现又在BUFB中出现的整数(设为x)存放在缓冲区BUFC中,并将x在BUFA和BUFB中的序号分别存放于缓冲区BUFCA和BUFCB中。解:这里需要5个指针,但BUFC、BUFCA和BUFCB为同步操作,只需要一个指针,寻址方式为寄存器相对寻址,即(设AL为找到的值,DL、BL为序号)MOVBUFC[DI],ALMOVBUFCA[DI],DLMOVBUFCB[DI],BL;对序号也应小心处理,我们采用寄存器相对寻址,例如MOVAL,BUFA[SI],其中SI即为序号。STACKSEGMENTSTACK"STACK"DW100HDUP(?)TOPLABELWORDSTACKENDSN1=20 N2=30DATASEGMENTBUFADB10H,25H,67H,26H,68H,73H,83H,58H,0,06H,12H,0CDH,95HDB0A8H,0C2H,48H,0E6H,0F1H,1AH,0F5HBUFBDB05,12H,26H,45H,53H,60H,6AH,7FH,76H,88H,92H,0C1H,0DEH,0E1H,0F5HDB09,17H,23H,48H,58H,65H,67H,70H,7CH,82H,96H,0CDH,0D1H,0F1H,0FEHBUFCDB20DUP(?)BUFCADB20DUP(?)BUFCBDB20DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOP;以BUFA为外循环,每个字节与BUFB的所有字节比较(构成内循环),;以确定是否存在相同的值。MOVCX,N1XORSI,SIXORDI,DIL1:MOVAL,BUFA[SI]PUSHCXMOVCX,N2XORBX,BXL2:CMPAL,BUFB[BX]JZL3INCBXLOOPL2JMPL4;找到相同的值后,进行值传送和序号保存。L3:MOVBUFC[DI],ALMOVDX,SIMOVBUFCA[DI],DLMOVBUFCB[DI],BLINCDIL4: POPCXINCSILOOPL1MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART4.2习题1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WORD’;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar23.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,1544.说明下列指令对的区别:(1)MOVAX,VAR1与MOVAX,OFFSETVAR1 (2)MOVAX,VAR2与LEAAX,VAR2(3)MOVAL,LENGTHVAR1与MOVAL,SIZEVAR1(4)MOVAL,ES:[DI]CMPAL,[SI]与CMPSB(5)SHRAL,1与SARAL,1(6)SHRAL,1与RORAL,1(7)ROLBX,1与RCLBX,15.写出下列转移指令的寻址方式(设L1为标号,VAR1为字型变量,DVAR1为双字型变量):(1)JMPL1(2)JMPNEARL1(3)JNZL1(4)JMPBX(5)JGL1(6)JMPVAR1[SI](7)JMPFARPTRL1(8)JMPDVAR16.设(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=3412H,(20102)=7856H,(21200)=4C2AH,(21202)=65B7H,求下列指令执行后AX寄存器的内容:(1)MOVAX,1200H;(2)MOVAX,BX;(3)MOVAX,[1200H];(4)MOVAX,[BX];(5)MOVAX,1100[BX];(6)MOVAX,[BX][SI];(7)MOVAX,1100[BX][SI]7.执行下列指令后,DX寄存器中的内容是多少?TABLEDW25,36,-1,-16,10000,13PYLDW7……MOVBX,OFFSETTABLEADDBX,PYLMOVDX,[BX]8.如果堆栈的起始地址为2200:0000,栈底为0100H,(SP)=00A8H,求(1)栈顶地址;(2)SS的内容;(3)再存入数据5678H,3AF2H后,SP的内容。9.设已用伪指令EQU定义了4个标识符:N1EQU2100N2EQU10N3EQU20000N4EQU25000下列指令是否正确?并说明原因。(1)ADDAL,N1-N2;(2)MOVAX,N3+N4;(3)SUBBX,N4-N3;(4)SUBAH,N4-N3-N1;(5)ADDAL,N2;(6)MOVAH,N2*N210.按下列要求写出指令:(1)将AX寄存器的低4位清零,其余位不变;(2)将BX寄存器的低4位置1,其余位不变;(3)将AL寄存器的低4位保持不变,高4位取反; (4)测试BX中的位1和位2,当这两位同时为0时将AL置0FFH,否则AL清零;(5)测试BX中的位1和位2,当这两位有一位为0时将AL置0FFH,否则AL清零;(6)将AL中保存的字母ASCII码变换成相应的大写字母的ASCII码;(7)将AL中保存的字母ASCII码变换成相应的小写字母的ASCII码;(8)将AX中的各位取反;(9)将DX中的低7位取反,高9位不变;(10)将CX中的低8位与高8位互换。11.写出完成下述功能的程序段:(1)传送40H到AL寄存器;(2)将AL的内容乘以2;(3)传送16H到AH寄存器;(4)AL的内容加上AH的内容。计算最后结果(AL)=?12.写出完成下述功能的程序段:(1)从缓冲区BUF的0004偏移地址处传送一个字到AX寄存器;(2)将AX寄存器的内容右移2位;(3)将AX内容与BUF的0006偏移地址处的一个字相乘;(4)相乘结果存入BUF的0020H偏移地址处(低位在前)。13.设(BX)=11001011B,变量VAR的内容为00110010B,求下列指令单独执行后BX的内容:(1)XORBX,VAR;(2)ANDBX,VAR;(3)ORBX,VAR;(4)XORBX,11110000B;(5)ANDBX,00001111B;(6)TESTBX,1。14.设(DX)=10111011B,(CL)=3,(CF)=1,求下列指令单独执行后DX的内容:(1)SHRDX,1;(2)SARDX,CL;(3)SHLDX,CL;(4)SHLDX,1;(5)RORDX,CL;(6)ROLDL,CL;(7)SALDH,1;(8)RCLDX,CL;(9)RCRDL,115.选择题(各小题只有一个正确答案)(1)执行下列三条指令后:MOVSP,1000HPUSHAXCALLBXa.(SP)=1000H;b.(SP)=0FFEH;c.(SP)=1004H;d.(SP)=0FFCH;(2)要检查寄存器AL中的内容是否与AH相同,应使用的指令为:a.ANDAL,AHb.ORAL,AHc.XORAL,AHd.SBBAL,AH(3)指令JMPNEARPTRL1与CALLL1(L1为标号)的区别在于: a.寻址方式不同;b.是否保存IP的内容;c.目的地址不同;d.对标志位的影响不同。16.寄存器DX:AX组成32位数,DX为高位,编写程序段实现:(1)DX:AX右移3位,并将移出的低3位保存在CL中;(2)DX:AX左移3位,并将移出的高3位保存在CL中;17.已知在BUF的起始处保存有N个字符的ASCII码,编写汇编语言程序实现,将这组字符串传送到缓冲区BUFR中,并且使字符串的顺序与原来的顺序相反。18.利用移位、传送和相加指令实现AX的内容扩大10倍。19.在缓冲区VAR中连续存放着3个16位的无符号数,编写程序实现将其按递增关系排列;如果VAR中保存的为有符号数,则再编写程序实现将其按递减关系排列。20.编写程序段实现将BL中的每一位重复4次,构成32位的双字DX:AX,例如当BL=01011101B时,得到的(DX)=0F0FH,(AX)=0FF0FH。21.编写程序段实现将AL和BL中的每一位依次交叉,得到的16位字保存在DX中,例如(AL)=01100101B,(BL)=11011010B,则得到的(DX)=1011011010011001B。22.在变量VAR1和VAR2中分别保存有两个字节型的正整数,编写完整的汇编语言程序实现:(1)当两数中有一个奇数时,将奇数存入VAR1,偶数存入VAR2;(2)当两数均为奇数时,两个变量的内容不变;(3)当两数均为偶数时,两数缩小一倍后存入原处。23.已知在字变量VAR1、VAR2和VAR3中保存有3个相同的代码,但有一个错码,编写程序段找出这个错码,并将它送AX,其地址送SI;如果3个代码都相同,则在AX中置-1标志。24.分析下列程序段的功能:MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL25.下列程序段执行后,求BX寄存器的内容:MOVCL,3MOVBX,0B7HROLBX,1RORBX,CL26.下列程序段执行后,求BX寄存器的内容:MOVCL,5MOVBX,7D5CHSHRBX,CL 27.设数组ARRAY的第1个字节存放数组的长度(<256),从第2个字节开始存放无符号8位数,求数组元素之和(结果放在AX中)。如果计算的和超出16位数的范围,则给出溢出标志DX=-1。28.设BUF中存放有N个无符号数(或有符号数),编程实现求它们的最小值(存入AX)和最大值(存入DX)。29.设BUFFER中存放有N个无符号(第1个字节存放缓冲区的长度),编程实现将其中的0元素抹去,并更新其长度。30.编写程序实现N个字乘以或除以1个字,设BUFN存放N个字,BUF1存放乘数或除数,PRODUCT存放乘积,QUOTIENT存放商,REMAINDER存放余数。31.编写一个子程序实现统计AL中1的个数,然后检测出字节型缓冲区BUF中0和1个数相等的元素个数。32.设有n(设为17)个人围坐在圆桌周围,按顺时针给他们编号(1,2,…,n),从第1个人开始按顺时针方向加1报数,当报数到m(设为11)时,该人出列,余下的人继续进行,直到所有人出列为止。编写程序模拟这一过程,求出出列人的编号顺序。33.编写子程序实现以十六进制数在屏幕上显示AL的内容。34.从键盘上读入一个正整数N(0≤N≤65535),转换成十六进制数存入AX,并在屏幕上显示出来。35.在缓冲区BUFFER中,第1个字节存放数组的长度(<256),从第2个字节开始存放字符的ASCII码,编写子程序完成在最高位给字符加上偶校验。36.编写程序完成求多位数(N个字)的绝对值。F1,F1,FFF(i3)37.已知斐波那契数列的定义为:12ii1i2,编写求该数列前n项的子程序。38.编写程序实现循环显示10条信息,保存每条信息的变量分别为INFOM1~INFORM10。39.编写程序实现将包含20个数据的数组ARRAY分成两个数组:正数数组ARRAYP和负数数组ARRAYN,并分别将这两个数组中数据的个数显示出来。40.编写程序实现求缓冲区BUFFER100个字中的最小偶数(存入AX)。1222n241.编写程序实现求级数的前n项和刚大于2000的项数n。42.已知数组A中包含有15个互不相等的整数,数组B中包含有20个互不相等的整数,编写程序实现将既在数组A中出现又在数组B中出现的整数存放于数组C中。43.定义一条宏指令,实现将指定数据段的段地址传送到段寄存器ES或DS的功能。44.定义一条宏指令,实现从键盘中输入一个字符串(利用INT21H的09号功能)。45.定义一条宏指令,实现在屏幕上显示出指定的字符串。46.定义一条宏指令,实现在屏幕上输出回车、换行。47.利用其它指令完成与下列指令一样的功能:(1)REPMOVSB;(2)REPLODSB;(3)REPSTOSB;(4)REPSCASB。48.设在数据段中定义了: STR1DB‘ASSEMBLELANGUAGE’STR2DB20DUP(?)利用字符串指令编写程序段实现:(1)从左到右将STR1中的字符串传送到STR2;(2)从右到左将STR1中的字符串传送到STR2;(3)将STR1中的第6个和第7个字节装入DX;(4)扫描STR1字符串中有无空格,如有则将第一个空格符的地址传送到SI。49.设在数据段中定义了:STRINGDB‘TodayisSunday&July16,2000’编写程序实现将STRING中的’&’用’/’代替。50.分析下列程序段完成的功能:MOVCX,100LEASI,FIRSTLEADI,SECONDREPMOVSB51.分析下列程序段:LEADI,STRINGMOVCX,200CLDMOVAL,20HREPZSCASBJNZFOUNDJMPNOT_FOUND问:转移到FOUND的条件。52.设在数据段的变量OLDS和NEWS中保存有5个字节的字符串,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS,否则顺序执行程序。53.编程实现将STRING字符串中的小写字母变换成大写字母。54.设在数据段中定义了:STUDENT_NAMEDB30DUP(?)STUDENT_ADDRDB9DUP(?)STUDENT_PRINTDB50DUP(?)编写程序实现:(1)用空格符清除缓冲区STUDENT_PRINT;(2)在STUDENT_ADDR中查找第一个’_’字符;(3)在STUDENT_ADDR中查找最后一个’_’字符;(4)如果STUDENT_NAME中全为空格符,则STUDENT_PRINT全存入’*’;(5)将STUDENT_NAME传送到STUDENT_PRINT的前30个字节中,将STUDENT_ADDR传送到STUDENT_PRINT的后9个字节中。55.在DS:X_BUF为起始地址的表中存有按由小到大顺序排列的一组16位无符号数,其中该表的第一、二两字节存放数据个数。现在DS:X_KEY中存有一个关键字(16位无符号 数),要求从上述表中查找第一个此关键字,若找到此关键字,则DI中存放该关键字在该表中的偏移量;若无此关键字,则将该关键字插入X_BUF表中,使该表依然有序,并将该关键字在表中的偏移量存放在DI中。56.分析下列子程序FUNC1,并回答相应的问题。FUNC1PROCNEARXORCX,CXMOVDX,01MOVCL,XJCXZA20INCDXINCDXDECCXJCXZA20A10:MOVAX,02SHLAX,CLADDDX,AXLOOPA10A20:MOVY,DXRETFUNC1ENDP若该子程序的入口参数为X(0≤X≤10),其输出参数为Y,则:(1)该子程序的功能是Y=f(X)=;(2)若X=0,则Y=;若X=3,则Y=;若X=5,则Y=。57.已知N(3Q时,(AX)=1;2P<=Q时,(AX)=-1,在划线处填入必要指令,使以下子程序完整。FUNC3PROCNEARMOVDX,X+2MOVAX,XADDAX,AXADCDX,DXJCC10CMPDX,Y+2C20C10CMPAX,YC20C10:MOVAX,1C30C20:MOVAX,-1C30:RETFUNC3ENDP59.(上机题)编写程序实现,将缓冲区BUFFER中的100个字按递增排序,并按下列格式顺序显示:数据1<原序号>数据2<原序号> ……60.(上机题)按同余法产生一组随机数N(1A:<人数1>B:<人数2>C:<人数3>D:<人数4>E:<人数5>F:<人数6>61.(上机题)编写程序实现下列5项功能,通过从键盘输入1~5进行菜单式选择:(1)按数字键“1”,完成将字符串中的小写字母变换成大写字母。用户输入由英文大小写字母或数字0~9组成的字符串(以回车结束),变换后按下列格式在屏幕上显示:<原字符串>例如:abcdgyt0092<新字符串>ABCDGYT0092按任一键重做;按Esc键返回主菜单。(2)按数字键“2”,完成在字符串中找最大值。用户输入由英文大小写字母或数字0~9组成的字符串(以回车结束),找出最大值后按下列格式在屏幕上显示:<原字符串>Themaximumis<最大值>.按任一键重做;按Esc键返回主菜单。(3)按数字键“3”,完成输入数据组的排序。用户输入一组十进制数值(小于255),然后变换成十六进制数,并按递增方式进行排序,按下列格式在屏幕上显示:<原数值串><新数值串>按任一键重做;按Esc键返回主菜单。(4)按数字键“4”,完成时间的显示。首先提示用户对时,即改变系统的定时器HH:MM:SS(以冒号间隔,回车结束),然后在屏幕的右上角实时显示出时间:HH:MM:SS。按任一键重新对时;按Esc键返回主菜单。(5)按数字键“5”,结束程序的运行,返回操作系统。[参考答案]1.解:(1)var1DW4512H,4512,-1,100/3,10H,65530(2)var2DB’BYTE’,’word’,’WORD’ (3)buf1DB100DUP(?)(4)buf2DB7DUP(5DUP(55H),10DUP(240))(5)var3DBLENGTHbuf1(6)pointerDWvar1,var23.答:(1)MOVSI,100;指令正确,源:立即数寻址,目的:寄存器寻址(2)MOVBX,VAR1[SI];指令正确,源:寄存器相对寻址,目的:寄存器寻址(3)MOVAX,[BX];指令正确,源:寄存器间接寻址,目的:寄存器寻址(4)MOVAL,[DX];指令错误,DX不能用作为地址寄存器(5)MOVBP,AL;指令错误,类型不一致(6)MOVVAR1,VAR2;指令错误,MOV指令不能从存储器到存储器传送(7)MOVCS,AX;指令错误,CS不能用作为目的操作数(8)MOVDS,0100H;指令错误,MOV指令不能将立即数传送到段寄存器(9)MOV[BX][SI],1;指令错误,类型不定(10)MOVAX,VAR1+VAR2;指令错误,MOV指令中不能完成加法运算(11)ADDAX,LENGTHVAR1;指令正确,源:立即数寻址,目的:寄存器寻址(12)ORBL,TYPEVAR2;指令正确,源:立即数寻址,目的:寄存器寻址(13)SUB[DI],78H;指令错误,类型不定(14)MOVSVAR1,VAR2;指令正确,源:隐含寻址,目的:隐含寻址(15)PUSH100H;指令错误,立即数不能直接压入堆栈(16)POPCS;指令错误,CS不能用作为目的操作数(17)XCHGAX,ES;指令错误,XCHG指令中不能使用段寄存器(18)MOVDS,CS;指令错误,MOV指令不能从段寄存器到段寄存器(19)JMPL1+5;指令正确,段内直接转移(20)DIVAX,10;指令错误,DIV指令格式错误(21)SHLBL,2;指令错误,移位指令的移位数要么是1,要么是CL(22)MOVAL,15+23;指令正确,源:立即数寻址,目的:寄存器寻址(23)MULCX;指令正确,源:寄存器寻址,目的:隐含寻址(24)XCHGCL,[SI];指令正确,源:寄存器间接寻址,目的:寄存器寻址(25)ADCCS:[0100],AH;指令正确,源:寄存器寻址,目的:直接寻址(26)SBBVAR1-5,154;指令正确,源:立即数寻址,目的:直接寻址5.答:(1)JMPL1;段内直接寻址(2)JMPNEARL1;段内直接寻址 (3)JNZL1;段内相对寻址(4)JMPBX;段内间接寻址(5)JGL1;段内相对寻址(6)JMPVAR1[SI];段内间接寻址(7)JMPFARPTRL1;段间直接寻址(8)JMPDVAR1;段间间接寻址7.答:DX寄存器中的内容为10FFH9.答:(1)ADDAL,N1-N2;指令错误,因为N1-N2超出一个字节的范围(2)MOVAX,N3+N4;指令正确(3)SUBBX,N4-N3;指令正确(4)SUBAH,N4-N3-N1;指令错误,因为N4-N3-N1超出一个字节的范围(5)ADDAL,N2;指令正确(6)MOVAH,N2*N2;指令正确11.解:(1)MOVAL,40H(2)SHLAL,1(3)MOVAH,16H(4)ADDAL,AH执行后(AL)=96H13.解:(1)XORBX,VAR;执行后(BX)=00F9H(2)ANDBX,VAR;执行后(BX)=0002H(3)ORBX,VAR;执行后(BX)=00FBH(4)XORBX,11110000B;执行后(BX)=003BH(5)ANDBX,00001111B;执行后(BX)=00C4H(6)TESTBX,1;执行后(BX)=00CBH(不变)15.答:(1)d(2)c(3)b17.解:设要传送的字符串有30个。N=30STACKSEGMENTSTACK"STACK"DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTASC1DB"abcdefghijklmnopqrstuvwxyz1234"ASC2DB30DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOPMOVCX,NLEASI,ASC1 ADDSI,CXLEADI,ASC2L1:DECSIMOVAL,[SI]MOV[DI],ALINCDILOOPL1MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDS19.解:程序如下:STACKSEGMENTSTACK"STACK"DW100HDUP(?)TOPLABELWORDSTACKENDSDATASEGMENTVARDW2100,1750,2410DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVAX,STACKMOVSS,AXLEASP,TOPMOVAX,VARCMPAX,VAR+2JBEL1XCHGAX,VAR+2L1:CMPAX,VAR+4JBEL2XCHGAX,VAR+4L2:MOVVAR,AXMOVAX,VAR+2CMPAX,VAR+4JBEL3XCHGAX,VAR+4MOVVAR+2,AX L3:MOVAH,4CH;返回DOSMOVAL,0INT21HCODEENDSENDSTART如果VAR中保存的为有符号数,则只需将上述程序中的3条JBE指令改成JLE指令。21.解:XORDX,DXMOVCX,8L1:SHLBL,1RCLDX,1SHLAL,1RCLDX,1LOOPL123.解:假设字变量VAR1、VAR2和VAR3中至少有两个相等,程序段如下:MOVAX,VAR1CMPAX,VAR2JNZL1CMPAX,VAR3JNZL2MOVAX,-1L1:CMPAX,VAR3JNZL3MOVAX,VAR2LEASI,VAR2JMPL4L3:LEASI,VAR1JMPL4L2:MOVAX,VAR3LEASI,VAR3L4:25.答:(BX)=C02DH32.提示:在n个字节变量中存入1,每次报数时相当于加上该变量的内容;当报数到m时该人出列,相当于使变量内容为0,其编号为其相当偏移地址,因此最好采用寄存器相当寻址方式。这样处理的好处是,继续报数时不必考虑已出列的人,只是他们对后续报数的影响是加0,也就是说他已不起作用。34.提示:显示部分应调用33题编写的显示子程序。43.解:定义的宏指令如下: TRANSSEGMACRODATAMOVAX,DATAMOVDS,AXMOVES,AXENDM44.解:定义的宏指令如下:INPUTSTRMACROBUFLEADX,BUFMOVAH,0AHINT21HENDM45.解:定义的宏指令如下:DISPSTRMACROBUFLEADX,BUFMOVAH,09INT21HENDM50.答:从缓冲区FIRST传送100个字节到SECOND缓冲区。51.答:在STRING缓冲区中,找到第一个非空格字符时转到FOUND。1.有下面两个源程序模块:模块1:SSEGSEGMENTSTACKDW100DUP(?)TOPLABELWORDSSEGENDSDSEGSEGMENTCOMMONVARDB50DUP(?)DSEGENDSESEGSEGMENTAT1000HAREADW70DUP(?)ESEGENDSCSEGSEGMENTPUBLIC……}300H个字节CSEGENDS模块2:SSEGSEGMENTSTACKDW50DUP(?)TOPLABELWORDSSEGENDSDSEGSEGMENTCOMMONVECTDB10DSEGENDS CSEGSEGMENTPUBLIC……}200H个字节CSEGENDS假定连接程序按SSEG、DSEG和CSEG的次序安排各段,栈底从20000H地址开始,请说明连接后程序在内存中的配置情况。2.写出一组语句,指出变量VAR1和远程标号LAB1是外部标识符,变量VAR2和标号LAB2是本模块定义的、可供其它模块访问的标识符。3.在什么情况下EXTRN语句中的标号应赋予NEAR属性?4.假设(1)双字变量VAR1、字节变量VAR2和近程标号LAB1在模块1中定义,但供模块2和模块3使用;(2)字变量VAR3和远程标号LAB2在模块2中定义,而VAR3供模块1使用,LAB2供模块3使用;(3)远程标号LAB3在模块3中定义,供模块2使用。写出每个模块必需的EXTRN和PUBLIC语句。5.编写程序段实现,模块1中访问模块2中定义的字变量NUM1、NUM2、NUM3和NUMB4。在单独的模块中编写一远程过程:SEARCH,完成在一个字节数组中查找给定的字节,如找到则将其在数组中的下标(即数组中的偏移量)返回给变量VAR1;如没有找到则给变量VAR1返回-1。变量VAR1和数组均为外部标识符(可在主程序模块中定义)。请同时写出调用此过程的主程序模块。[参考答案]1.答:SSEG安排在1FFFFH以前的存储空间;DESG段的段地址2000H,占用52个字节;CSEG的段地址为2004H,占用500H个字节;ESEG的段地址为1000H,占用0E0H个字节。3.答:当交叉访问的标号与访问语句所在的代码段连接成同一个段时,EXTRN语句中的标号应赋予NEAR属性。5.解:模块1:DATA1SEGMENTPUBLICEXTRNNUM1:WORD,NUM2:WORD,NUM3:WORD,NUM4:WORDDATA1ENDS模块2:DATA2SEGMENTPUBLICPUBLICNUM1,NUM2,NUM3,NUM4NUM1DW1200HNUM2DW3425HNUM3DW1234HNUM4DW12ABHDATA2ENDS 第五章微处理器总线时序和系统总线习题五1.微处理器的外部结构表现为,它们构成了微处理器级总线。2.微处理器级总线经过总线形成电路之后形成了。3.什么是总线结构?简述计算机系统采用总线结构的优点。4.对教材p220页图6.2,若20位地址全部用74LS373八位锁存器锁存,数据线上使用74LS245总线收发器,试画出系统总线结构图。5.在8086系统总线结构中,为什么要有地址锁存器?6.根据传送信息的种类不同,系统总线分为、和。7.三态逻辑电路输出信号的三个状态是:、和。8.微机中的控制总线提供A.数据信号流;B.存储器和I/O设备的地址码;C.所有存储器和I/O设备的时序信号;D.所有存储器和I/O设备的控制信号;E.来自存储器和I/O设备的响应信号;F.上述各项;G.上述C,D两项;H.上述C,D和E三项。9.微机中读写控制信号的作用是A.决定数据总线上数据流的方向;B.控制存储器操作读/写的类型;C.控制流入、流出存储器信息的方向;D.控制流入、流出I/O端口信息的方向;E.以上所有。10.系统总线中地址线的作用是11.CPU和总线控制逻辑中信号的时序是由信号控制的。12.欲使8086CPU工作在最小方式,引脚MN/MX应接。13.RESET信号是时产生的,至少要保持4个时钟周期的电平才有效,该信号结束后,CPU内的CS为,IP为,程序从地址开始执行。14.CPU在状态开始检查READY信号,电平时有效,说明存储器或I/O端口准备就绪,下一个时钟周期可进行数据的读写;否则,CPU可自动插入一个或几个,以延长总线周期,从而保证快速的CPU与慢速的存储器或I/O端口之间协调的进行数据传送。 15.当M/IO引脚输出高电平时,说明CPU正在访问。16.在构成8086最小系统总线时,地址锁存器8282的选通信号STB应接CPU的信号,输出允许端OE应接;数据收发器8286的方向控制端T应接信号,输出允许端OE应接信号。17.8086微处理器级总线经过总线控制电路,形成了系统三总线,它们是总线,地址总线和数据总线。18.8086CPU在读写一个字节时,只需要使用16条数据线中的8条,在个总线周期内完成;在读写一个字时,自然要用到全部的16条数据线,只是当此字的地址是偶地址时,可在个总线周期内完成,而对奇地址字的访问则要在个总线周期内完成。19.8086最大系统的系统总线结构较最小系统的系统总线结构多一芯片。20.简述8086最大系统总线结构中的总线控制器输出的信号AIOWC和AMWC的作用。21.微机在执行指令MOV[DI],AL时,将送出的有效信号有:A.RESETB.高电平的M/IO信号C.WRD.RD22.设指令MOVAX,DATA已被取到CPU的指令队列中准备执行,并假定DATA为偶地址,试画出以下情况下该指令执行的总线时序图。(1)没有等待的8086最小方式;(2)有一个等待周期的8086最小方式。23.上题中如指令分别为:(1)MOVDATA+1,AX(2)MOVDATA+1,AL(3)OUTDX,AX(DX的内容为偶数)(4)INAL,0F5H重做上题(1)。24.8086最小方式下,读总线周期和写总线周期相同之处是:在状态开始使ALE信号变为有效电平,并输出信号来确定是访问存储器还是访问I/O端口,同时送出20位有效地址,在状态的后部,ALE信号变为电平,利用其下降沿将20位地址和BHE的状态锁存在地址锁存器中;相异之处是从状态开始的数据传送阶段。[参考答案]2.系统总线3.总线结构是微型计算机系统结构的重要特点之一。它是主体部分与其它部分相连接的一种结构方式。其基本思想是,主体部分与其它多个不同部分都通过同一组精心设置的连线相连接,如以微处理器为主体的微处理器级总线和以主机板为主体的系统级总线。微机所采用的总线式结构具有如下优点:1)简化了系统结构。整个系统结构清晰,连线少。 2)简化了硬件设计。无论是自己选择芯片组成系统机还是在现成的系统机上开发微机应用系统,由总线规范给出了传输线和信号的规定,并对存储器和I/O设备如何“挂”在总线上都作了具体的规定,降低了硬件设计的复杂性。3)易于升级更新。在微机更新时,许多时候,不必全部废弃旧机子,而是直接更换主板及过时的部分零配件,以提高微机的运行速度和内存容量。比直接买新微机更经济。4)系统扩充性好。一是规模扩充,二是功能扩充。规模扩充仅仅需要多插一些同类型的插件;功能扩充仅仅需要按总线标准设计一些新插件,插入微机的扩充插槽中即可,这使系统扩充既简单又快速可靠,还便于查错。7.高电平、低电平、高阻态8.H9.E13.系统加电或操作员按面板上的RESET键高0FFFFH00FFFF0H16.ALE地DT/RDEN18.11224T1高M/IOT1低T2第六章主存储器习题六1.用下列RAM芯片构成32KB存储器模块,各需多少芯片?16位地址总线中有多少位参与片内寻址?多少位可用作片选控制信号?(1)1K×1(2)1K×4(3)4K×8(4)16K×12.若存储器模块的存储容量为256KB,则利用上题中给出的RAM芯片,各需多少块?20位地址总线中有多少位参与片内寻址?多少位可用作片选控制信号? 3.一台8位微机系统的地址总线为16位,其存储器中RAM的容量为32KB,首地址为4000H,且地址是连续的。问可用的最高地址是多少?4.某微机系统中内存的首地址为4000H,末地址为7FFFH,求其内存容量。5.为地址总线为16位的某8位微机设计一个容量为12KB的存储器,要求ROM区为8KB,从0000H开始,采用2716芯片;RAM区为4KB,从2000H开始,采用2114芯片。试画出设计的存储器系统的连线图。6.一台8位微机系统需将内存RAM扩充8KB,其扩充存储空间为8000H开始的连续存储区。设系统的地址总线为A15~A0,数据总线为D7~D0,控制总线为MREQ和WR,存储器芯片用2114。画出扩充的存储器模块的连接线路图。地址译码器选用3-8译码器74LS138,需要的门电路可自行选择。7.选用合适的存储芯片和译码芯片为8086CPU(工作于最小模式)设计一个8KB的ROM和16KB的RAM的存储器系统。8.8088/8086/80286/80386/80486/Pentium/PentiumⅡ/PentiumⅢ的寻址范围各为多少?9.简述高速存储器Cache的基本工作原理。[参考答案]1.构成32KB存储器所需芯片数目、片内寻址及片选译码的地址线见下表所示。表7-1芯片数目、片内寻址和片选译码的地址线的关系RAM芯片需芯片数目片内寻址地址线片选译码地址线1K×1256AAAA07,10位1015,6位1K×464AAAA09,10位1015,6位4K×88AAAA011,12位1215,4位16K×44AAAA013,14位1415,2位3.由首地址为4000H及容量为32KB可知,该存储器中RAM的寻址范围为4000H~0BFFFH,则可用的最高地址为0BFFFH5.从题图可知,存储器选用高位地址线A10A15中的最高两位A15和A14作为译码输入,采用部分译码法形成片选送控制信号,地址有重叠区。4组RAM的基本地址分别为:0000H~03FFH,4000H~43FFH8000H~83FFH,0C000H~0C3FFH每组的地址范围分别为:0000H~3FFFH,4000H~7FFFH8000H~0BFFFH,0C000H~0FFFFH 9.不同档次的PC机因其使用的CPU的地址总线位数不同,其能力也不相同,寻址范围等m于2个字节,其中m为地址总线位数。表7-1不同类型CPU的寻址范围CPU数据总线位数地址总线位数寻址范围8086/80888201MB80286162416MB80386/8048632324GBPentium32324GBPentiumⅡ/Ⅲ323664GB习题二一.选择题1.计算机工作中只读不写的存储器是()。(A)DRAM(B)ROM(C)SRAM(D)EEPROM2.下面关于主存储器(也称为内存)的叙述中,不正确的是()。(A)当前正在执行的指令与数据都必须存放在主存储器内,否则处理器不能进行处理(B)存储器的读、写操作,一次仅读出或写入一个字节(C)字节是主存储器中信息的基本编址单位(D)从程序设计的角度来看,cache(高速缓存)也是主存储器3.CPU对存储器或I/O端口完成一次读/写操作所需的时间称为一个()周期。(A)指令(B)总线(C)时钟(D)读写4.存取周期是指()。 (A)存储器的写入时间(B)存储器的读出时间(C)存储器进行连续写操作允许的最短时间间隔(D)存储器进行连续读/写操作允许的最短时间3间隔5.下面的说法中,()是正确的。(A)EPROM是不能改写的(B)EPROM是可改写的,所以也是一种读写存储器(C)EPROM是可改写的,但它不能作为读写存储器(D)EPROM只能改写一次6.主存和CPU之间增加高速缓存的目的是()。(A)解决CPU和主存间的速度匹配问题(B)扩大主存容量(C)既扩大主存容量,又提高存取速度(D)增强CPU的运算能力7.采用虚拟存储器的目的是()。(A)提高主存速度(B)扩大外存的容量(C)扩大内存的寻址空间(D)提高外存的速度8.某数据段位于以70000起始的存储区,若该段的长度为64KB,其末地址是()。(A)70FFFH(B)80000H(C)7FFFFH(D)8FFFFH9.微机系统中的存储器可分为四级,其中存储容量最大的是()。(A)内存(B)内部寄存器(C)高速缓冲存储器(D)外存10.下面的说法中,()是正确的。(A)指令周期等于机器周期 (B)指令周期大于机器周期(C)指令周期小于机器周期(D)指令周期是机器周期的两倍11.计算机的主内存有3K字节,则内存地址寄存器需()位就足够。(A)10(B)11(C)12(D)1312.若256KB的SRAM具有8条数据线,那么它具有()地址线。(A)10(B)18(C)20(D)3213.可以直接存取1M字节内存的微处理器,其地址线需()条。(A)8(B)16(C)20(D)2414.规格为4096×8的存储芯片4片,组成的存储体容量为()。(A)4KB(B)8KB(C)16KB(D)32KB15.一个有16字的数据区,其起始地址为70A0:DDF6H,则该数据区末字单元的物理地址为()。(A)14E96H(B)7E814H(C)7E7F6H(D)7E816H16.某微型计算机可直接寻址64M字节的内存空间,其CPU的地址总线至少应有()条。(A)20(B)30(C)16(D)2617.对于地址总线为32位的微处理器来说,其直接寻址范围可达()。(A)64MB(B)256MB(C)512MB(D)4GB18.通常高速缓存是由快速()组成。(A)SRAM(B)DRAM(C)EEPROM(D)Flash19.CPU在执行指令的过程中,每完成一次对存储器或I/O端口的访问过程,称为()。 (A)时钟周期(B)总线周期(C)总线读周期(D)总线写周期20.某CPU有32条地址线,与之相连的一个I/O芯片的口地址为210H~21FH,则该I/O芯片的片选信号至少应由()条地址线译码后产生。(A)16(B)10(C)4(D)621.采用高速缓存Cache的目的是(B)。(A)提高总线速度(B)提高主存速度(C)使CPU全速运行(D)扩大寻址空间22.堆栈的工作方式是(D)。(A)先进先出(B)随机读写(C)只能读出,不能写入(D)后进先出23.EPROM是指(D)。(A)随机读写存储器(B)可编程只读存储器(C)只读存储器(D)可擦除可编程只读存储器24.连续启动两次独立的存储器操作之间的最小间隔叫(A)。(A)存取时间(B)读周期(C)写周期(D)存取周期25.对存储器访问时,地址线有效和数据线有效的时间关系应该是(C)。(A)数据线较先有效(B)二者同时有效(C)地址线较先有效(D)同时高电平26.微机的内存器可用(A)构成。(A)RAM和ROM(B)硬盘(C)软盘(D)光盘27.和外存储器相比,内存储器的特点是(C〕。 (A)容量大、速度快、成本低(B)容量大、速度慢、成本高(C)容量小、速度快、成本高(D)容量小、速度快、成本低28.若内存容量为64KB,则访问内存所需地址线(A)条(A)16(B)20(C)18(D)1929.若用6264SRAM芯片(8K×8位)组成128KB的存储器系统,需要(A)片6264芯片。(A)16(B)24(C)32(D)6430.若内存容量为64KB,则访问内存所需地址线(A)条。(A)16(B)20(C)18(D)1931.断电后存储的资料会丢失的存储器是(A)(A)RAM(B)ROM(C)CD-ROM(D)硬盘32.断电后存储的资料会丢失的存储器是(A)。(A)RAM(B)ROM(C)CD-ROM(D)硬盘33.连接到64000H~6FFFF地址范围上的存储器用8K×8位芯片构成,该芯片需要()片。(A)4(B)8(C)6(D)12二、判断题1.静态随机存储器中的内容可以永久保存。2.总线周期是指CPU执行一条指令所需的时间。3.静态随机存储器中的内容可以永久保存。4.Cache是一种快速的静态RAM,它介于CPU与内存之间。5.寻址256M字节内存空间,需28条地址线。 6.无论采用何种工艺,动态RAM都是利用电容存储电荷的原理来保存信息的。19.EPROM是指可擦除可编程随机读写存储器。╳36.某内存模块的地址范围为80000H~0BFFFFH,该模块的容量为256K(√)三、填空题1.为保证动态RAM中的内容不消失,需要进行()操作。2.16K字节的存储芯片有()根地址线,用它构成64K空间的存储器共需()片,与8位机相连时需地址译码器74LS138至少()片,若要求该地址空间为连续的,则译码器的引脚A应接地址线(),引脚B接地址线(),引脚C接地址线()。3.随机存储器RAM主要包括()和()两大类。4.构成64K*8的存储系统,需8K*1的芯片()片。5.某存储模块的容量为64K,它的起始地址若为20000H,则末地址应为()。6.某RAM芯片的存储容量是8K×8bit,则该芯片引脚中有几根地址线?几根数据线?如已知某半导体存储器芯片SRAM的引脚中有14根地址线和8根数据线,那么其存储容量应为()。7.电路结构如下,请给出图中RAM1和RAM2的地址范围。 8.某RAM芯片的存储容量是4K×8位,该芯片引脚中有()根地址线,()根数据线。9.某16位微机系统的地址总线为20位,其存储器中RAM的容量为128KB,首地址为80000H,且地址是连续的。问可用的最高地址是()H。10.用2K×8的SRAM芯片组成32K×16的存储器,共需SRAM芯片()片,产生片选信号的地址至少需要()位。11.8086中地址/数据线分时复用,为保证总线周期内地址稳定,应配置(),为提高总线驱动能力,应配置()。12、8086和8088的地址总线有()根,能寻址()MB的存储器空间。13.组成32M*8位的存储器,需要1M*4位的存储芯片共()片。14.8086CPU从偶地址中按字节读时,存储器数据进入数据总线的();从奇地址按字节读时,进入数据总线的()。15.1KB=____1024___字节,1MB=___1024__KB。16.某8086微处理器系统中设计了一个存储为128KB的SRAM存储器模块,约定该存储器模块的起始地址为80000H,则该存储器模块的末地址为()。17.设微机的地址总线为16位,其RAM存储器容量为32KB,首地址为4000H,且地址是连续的,则可用的最高地址是()。四.做图题1、设某计算机要用32K*4的动态RAM存储器芯片扩展128K*8的存储器。请回答:(1)扩展该存储器系统共需要几片RAM芯片?(2)每块芯片应该有多少根数据线和多少根地址线? (3)试画出存储器的组成图,并与CPU连接(设CPU有20根地址线)。(4)根据所画出的连接图,确定其地址空间范围?2、将一个8086微机系统再用16K*8的存储器芯片,它占的地址为D0000H至D7FFFH,试画出该存储器与CPU的接口图。3、用16K*8的SRAM存储器芯片组成的64K字节的RAM存储器电器,试回答下列问题:(1)试画出存储器的组成图,并与CPU连接,要求所组成的存储器空间从10000H开始并且是连续的。(2)求各存储器的地址范围。一、选择题1.(B)2.(B)3.(B)4.(D)5.(C)6.(A)7.(C)8.(C)9.(D)10.(B)11.(C)12.(B)13.(C)14.(C)15.(B)16.(D)17.(D)18.(A)19.(B)20.(D)21.(B)22.(D)23.(D)24.(A)25.(C)26.(A)27.(C)28.(A)29.(A)30.(A)31.(A)32.(A)33.(A)34.(A)35.(C)二、判断题1.×2.×3.×4.√5.√6.√7.×8.√三、填空题1.定时刷新 2.14;4;1;A14;A15;1或03.SRAM,DRAM4.645.2FFFFH6.13根地址线,8根数据线;16KB7.RAM1:92600H~927FFHRAM2:92A00H~92BFFH8.12根地址线,8根数据线。9.9FFFFH10..32,4_11.锁存器,驱动器12.20,113.6414..数据线低8位数据线高8位15.1024,102416.9FFFFH17.0BFFFH四.做图题第七章输入输出技术习题一1.写出指令,将一个字节输出到端口25H。2.写出指令,将一个字从端口1000H输入。3.写出指令,分两次将1000从端口1000H输出,先输出低字节,后输出高字节。 4.下列指令经汇编后各是几个字节的指令?INAL52H;OUT0CH,ALINAXDX;OUTDX,AX5.编写一段指令序列,功能是轮流交替地测试分别属于两个设备的两个状态寄存器。当测知某个状态寄存器的位0是1,则从这个状态寄存器对应的设备读入数据。每读入一个字节对这个状态寄存器进行一次测试。如果测得位3为1,则停止这个设备的读入,再进入轮流测试状态。假设两个状态寄存器的端口地址分别是300H和308H,两个输入数据端口分别是302H和30AH,输入数据存入数据存贮器,开始地址分别是BUFF1和BUFF2。6.当采用输入操作情况下,除非计算机等待数据,否则无法传送数据给计算机。A)程序查询方式;B)中断方式;C)DMA方式7.在微型机接口中,设备地址选片的方法有哪几种?如何选用?8.Intel80x86CPU可以访问的I/O空间有:A)4GBB)1MBC)64KBD)1KB9.8086CPU有①条地址总线,可形成②的存贮器地址空间,可寻址范围为③;地址总线中的④条线可用于I/O寻址,形成⑤的输入输出地址空间,地址范围为⑥;PC机中用了⑦条地址线进行I/O操作,其地址空间为⑧,可寻址范围为⑨。10.存贮器的每个字节单元占存贮器地址空间的一个地址;相应的,输入输出端口占地址空间的。11.实现主机与外设之间同步需要解决的基本问题有二,一为,另一为。12.主机与外设之间实现数据的输入输出的基本方式有,和。13.对于微机而言,任何新增的外部设备,最终总是要通过与主机相接。14.在主机板外开发一些新的外设接口逻辑,这些接口逻辑的一侧应与相接,另一侧与相接。15.I/O接口的含义,从硬件来说,包括,,;从软件来说,可以理解为和。16.对于用户而言,接口设计的任务就是开发出和。17.需要靠在程序中排入I/O指令完成的数据输入输出方式有。(A)DMA(B)无条件程序直接传送(C)程序查询控制式(D)中断方式18.系统总线是通过与外设的接口逻辑相连接的,所有是并联的。19.8086CPU用指令从端口读入数据,用OUT指令。20.在下列指令中,能使80x86CPU对I/O端口进行读/写访问的是: A)中断指令B)串操作指令C)输入/输出指令D)MOV指令21.在IBMPC机接口开发中用到某一大规模集成电路芯片,其内部占16个I/O端口地址,分配占用300~30FH,请设计一个片选信号CS形成电路。22.IBMPC系统中,如果AEN信号未参加I/O端口地址译码,将出现什么问题?在没有DMA的某微机系统中,是否存在一样的问题?23.利用三态门(74LS244)作为输入接口,接口地址规定为04E5H,试画出其与8086最小系统总线的连接图。24.利用三态门输出的锁存器(74LS244)作为输出接口,接口地址规定为E504H,试画出其与8086最大系统总线的连接图。若上题中输入接口的bit4和bit7同时为0时将DATA为首地址的十个内存数据连续由输出接口输出;若不满足条件则等待,试编写相应的程序段。25.什么是中断?PC机中有那些种类的中断?借助中断机制可实现哪些操作功能?26.中断向量表的功能是什么?详述CPU利用中断向量表转入中断服务程序的过程。27.简述实模式下可屏蔽中断的中断响应过程?28.如果利用中断方式传输数据,数据是如何传输的?中断结构起了什么作用?29.根据中断过程的要求设计的一个中断系统,大致需要考虑哪些问题?30.类型14H的中断向量(即中断服务程序的32位入口地址)存在存储器的哪些单元里?31.给定(SP)=0100,(SS)=0300,(PSW)=0240,以及存储单元的内容(00020)=0040,(00022)=0100,在段地址为0900及偏移地址为00A0的单元中有一条中断指令INT8,试问执行INT8指令后,SP、SS、IP、PSW的内容是什么?栈顶的三个字是什么?32.8259初始化编程是如何开始的?顺序如何?33.设某微机系统要管理64级中断,问组成该中断机构时需片8259。(A)8片(B)10片(C)9片(D)64片34.完全嵌套的优先级排序方式的规则是什么?用哪些操作命令且在什么时候设置命令能保证这种优先级排序规则实现?35.如设备D1、D2、D3、D4、D5按完全嵌套优先级排列规则。设备D1的优先级最高,D5最低。若中断请求的次序如下所示,试给出各设备的中断处理程序的次序。假设所有的中断处理程序开始后就有STI指令,并在中断返回之前发出结束命令(1)设备3和4同时发出中断请求(2)在设备3的中断处理程序完成之前,设备2发出中断请求(3)在设备4的中断处理程序完成之后,设备5发出中断请求(4)以上所有中断处理程序完成并返回主程序后,设备1、3、5同时发出中断请求在设备3的中断处理程序完成之前,设备2发出中断请求36.初始化时设置为非自动结束方式,那么在中断服务程序将结束时必须设置什么操作命令?如果不设置这种命令会发生什么现象?37.初始化时设置为自动结束方式,那么中断嵌套的深度可否控制?38.中断服务程序结束时,用RETF指令代替IRET指令能否返回主程序?这样做存在什么问题? 39.总结一下,在哪些情况下需用CLI指令关中断?在哪些情况下需用STI指令开中断?40.按中断源处于CPU内部还是外部,中断可分为外部中断和两类,前者又分为和。41.一次程序中断大致可分为:(1),(2),(3),(4),(5)等过程。42.采用DMA方式传送数据时,每传送一个数据就要占用的时间A)一个指令周期;B)一个机器周期;C)一个存储周期;D)一个总线周期43.DMA方式数据传送与程序控制数据传送相比较,有何不同之处?44.通道程序是由组成A)I/O指令;B)通道控制字(或称通道指令);C)通道状态字45.在以DMA方式传送数据的过程中,由于没有破坏和的内容,所以一旦数据传送完毕,主机可以立即返回原程序。46.如果认为CPU等待设备的状态信号是处于非工作状态(即踏步等待),那么,在下面几种主机与设备数据传送方式中,(1)主机与设备是串行工作的,(2)主机与设备是并行工作的,(3)主程序与外围设备是并行运行的A)程序查询方式;B)中断方式;C)DMA方式47.系统总线的发展过程是:从系统总线开始,经历了总线,又发展为总线和总线。48.RS-232接口是(1)接口,它通常用对(2)连接和(3)之间的连接,AS-232标准规定采用(4)逻辑,其逻辑“1”电平在(5)的范围内,逻辑“0”电平在(6)的范围之内49.比较8253的方式0与方式4、方式1与方式5有什么区别?50.IBMPC/XT系统中8253的计数器0用于产生实时时钟中断请求信号,中断服务程序如教材第369页程序所示。请问8253的计数器0被初始化为什么状态?51.如50题所述,实时时钟中断服务程序中有INT1CH指令为用户提供一个出入口,请你编一程序利用这一出入口在屏幕上每隔大约1s更新并显示时间。52.通过8253的计数器0产生中断请求信号,欲在可设最大初值范围内延长产生中断的时间,无效的方法是:A)初始化时使CR0尽量大;B)在OUT0变高之前重置初值;C)在OUT0变高之前在GATE0加一触发信号;D)降低加在CLK0端的信号频率53.已知某可编程接口芯片中计数器的口地址为40H,计数频率为2MHz,该芯片的控制字为8位二进制数,控制字寄存器的口地址为43H,计数器达到0值的输出信号用作中断请求信号,执行下列程序后,中断请求信号的周期是ms。MOVAL,00110110B OUT43H,ALMOVAL,0FFHOUT40H,ALOUT40H,AL54.若8253芯片可利用8086的外设接口地址D0D0H~D0DFH,试画出电路连接图,加到8253上的时钟信号为2MHz:(1)若利用计数器0,1,2分别产生下列三种信号:①周期为10us的对称方波②每1s产生一个负脉冲③10s后产生一个负脉冲;每种情况下,试说明8253如何连接并编写包括初始化在内的程序。(2)若希望利用8086通过接口控制GATE,当CPU使GATE有效开始,20us后在计数器0的OUT端产生一个正脉冲,试设计完成此要求的硬件和软件。55.说明8254的六种工作方式?若加到8254上的时钟频率为0.5MHz,则一个计数器的最长定时时间是多少?若要求10分钟产生一次定时中断,试提出解决方案。56.在IBMPC系统中根据下列不同条件设计接口逻辑,均利用8253,都完成对外部脉冲信号测重复频率的功能。(1)被测脉冲信号的重复频率在10~1000Hz范围内。(2)被测脉冲信号的重复频率在0.5~1.5Hz范围内。(3)被测脉冲信号重复频率在10~100Hz范围内。(4)被测是间歇脉冲信号,每次有信号时有100个脉冲,重复频率为0.8~1.2MHz间歇频率大约每秒15次,要求测有信号时的脉冲重复频率。57判断题(1)8254芯片不接入扩充槽的系统总线。(2)INDST,SRC指令中,SRC的寻址方式为寄存器方式,DST的寻址方式有直接和间接两种。(3)从地址为0FEH的端口读一字节的指令可以是INAL,0FEH;也可以是MOVDX,0FEHINAL,DX(4)向地址为0FE2H的端口输出一字的指令与3)题类似,只是其目的操作数而非源操作数有两种寻址方式。(5)IN和OUT指令将影响ZF位。(6)程序中断方式输入输出的含义是利用CPU响应内中断的能力,用IN和OUT指令(即程序)来实现数据的输入输出。(7)系统总线是主机板与外界之间的直接界面,任何一个外设均可直接“挂”到该总线上。(8)占用多个I/O端口的大规模集成电路的地址译码器的设计类似于存贮器的地址译码器设计,只是地址范围小得多,控制信号有所不同。(9)主机与键盘之间有一条线专用于传送从键盘到主机的串行键扫描码,不能反向传送。(10)一个中断类型号乘以4,就是该中断服务程序的入口地址。[参考答案]3.MOVAX,1000MOVDX,1000H OUTDX,ALMOVAL,AHOUTDX,AL说明:此题若手工将1000化为十六进制数,则多此一举。6.A7.答:有线选法和译码两种,在实际设计时,究竟采用那种方法,要根据系统的规模大小来确定。一般来说,系统规模大的要用译码方法来选片,这样可以增加芯片数量。例如,三根地址线采用线选法只能选三片,而采用译码法就可以接八片,但需要增加译码器。译码器设计又分为全地址译码和部分地址译码,在系统规模允许下,部分地址译码可以简化电路,节省组件。9.①20②1M③00000H~FFFFFH④16⑤64K⑥0000H~FFFFH⑦10⑧1K⑨000H~3FFH11.外设与主机之间的联络及响应处理方式多外设管理方式12.程序直接控制传送方式程序中断控制方式存贮器直接存取方式15.主机板上的接口逻辑系统总线具体外设的接口逻辑接口的软件和软件的接口17.BCD20.C22.答:在PC机中,有用于主机与外设之间数据传送的DMA控制逻辑,若在开发外设接口逻辑时,未将用于分辨DMA操作和I/O操作的信号AEN以低电平有效(I/O操作)加入地址译码器,就会在其它设备与存贮器之间进行DMA传输,或利用DMA机构进行动态存贮器刷新时,在这个I/O端口地址译码器的输出端可能输出不应有的有效选择信号。而这个端口并不是DMA传输涉及的端口。为避免这种误操作,此时应将AEN加入I/O端口地址译码。但在不含DMA的微机系统中,不存在这个问题。26.中断向量表是用于存放中断服务程序入口地址的。每一种中断都有一中断类型号,CPU得到此中断类型号,将之乘以4,即查到中断向量表的一个地址,从这个地址开始的连续四个单元中存的就是这种中断的中断服务程序入口地址,将前两个单元中的偏移地址装入IP,后两个单元的段地址装入CS,CPU就转去执行中断服务程序了。29.答:(1)设立必要的中断源,确定它们提出的中断请求的方式.(2)根据急迫程度的不同,规定好中断源的优先级别,以确定当几个中断源同时请求时,处理机能有一个先后响应次序.(3)当处理机响应中断后,需要把被中断程序的现场,断点保存起来,以便中断处理结束后能返回原程序.(4)中断服务程序设计.(5)恢复现场,返回原程序.33.C38.能返回,但存在的问题是未能弹出中断前压栈的PSW,无法恢复至中断前的计算机状态。40.内部中断可屏蔽中断非可屏蔽中断 44.B46.(1)A(2)B(3)C48.(1)以串形方式进行传输的标准(2)CRT终端(3)调制解调器(4)负(5)-5V至-15V(6)+5V至+15V52.C55.(1)D(2)H(3)L(4)K(5)I57.(1)D(2)H(3)L(4)K(5)I习题二一.选择题1.CPU与外设间数据传送的控制方式有()。(A)中断方式(B)DMA方式(C)程序控制方式(D)以上三种都是2.CPU与I∕O设备间传送的信号有()。(A)数据信息(B)控制信息(C)状态信息(D)以上三种都是3.在中断方式下,外设数据输入到内存的路径是()。(A)外设→数据总线→内存(B)外设→数据总线→CPU→内存(C)外设→CPU→DMAC→内存(D)外设→I∕O接口→CPU→内存4.CPU响应中断请求和响应DMA请求的本质区别是()。(A)中断响应靠软件实现(B)速度慢(C)控制简单(D)响应中断时,CPU仍然仍控制总线,而响应DMA请求时,CPU要让出总线5.将微处理器、内存储器及I/O接口连接起来的总线是()。(A)片总线(B)外总线(C)系统总线(D)局部总线 6.在下列指令中,能使PC机CPU对I/O端口进行读写访问的是()。(A)中断指令(B)串操作指令(C)输入输出指令9D)传送指令7.下列几种芯片是PC机的常用芯片,它们之中可接管总线控制数据传送的是()。(A)定时器/计数器芯片(B)串行接口芯片(C)并行接口芯片(D)DMA控制器芯片8.下列几种芯片是PC机的常用I/O接口芯片,它们之中可接管总线控制数据传送的是()。(A)8253A(B)8237A(C)8259A(D)8255A9.在下列指令中,能使PC机CPU对I/O端口进行读写访问的是()。(A)中断指令(B)串操作指令(C)输入/输出指令(D)传送指令10.将微处理器、内存储及I/O接口连接起来的总线是()。(A)片总线(B)外总线(C)系统总线(D)内部总线11.支持无条件传送方式的接口电路中,至少应包含()。(A)数据端口,控制端口(B)状态端口(C)控制端口(D)数据端口12.CPU与慢速的外设进行数据传送时,采用()方式可提高CPU的效率。(A)查询(B)中断(C)DMA(D)无条件传送13.当采用()输入操作情况时,除非计算机等待,否则无法传送数据给计算机。(A)程序查询方式(B)中断方式(C)DMA方式(D)IOP处理机方式 14.微机中地址总线的作用是()。(A)用于选择存储单元(B)用于选择进行信息传输的设备(C)用于指定存储单元和I/O设备接口电路的选择地址(D)用于确定操作对象15.计算机使用总线结构便于增减外设,同时()。(A)减少了信息的传输量(B)提高了信息的传输量(C)减少了信息传输线的条数(D)增加了信息传输线的条数16.微机中控制总线提供()。(A)来自I/O设备和存储器的响应信号(B)所有存储器和I/O设备的时序信号和控制信号(C)存储器和I/O设备的地址码(D)上述(B)(A)17.占用CPU时间最长的数据传送方式是()。(A)DMA(B)中断(C)查询(D)无条件18.在微型计算机中将各个主要组成部件连接起来,组成一个可扩充基本系统的总线称之为()。(A)外部总线(B)内部总线(C)局部总线(D)系统总线19.现行PC机中,I/O口常用的I/O地址范围是()。(A)0000H~FFFFH(B)0000H~7FFFH(C)0000H~3FFFH(D)0000H~03FFH20.PC机执行输出指令OUT时,向相应的I/O接口芯片产生的有效控制信号是()。(A)AEN(B)IOR(C)IOW(D)ALE 21.当M/IO=0,W/R=0时,80486CPU完成的操作为()。(A)存储器读(B)I/O读(C)存储器写(D)I/O写22.以80486CPU构成的PC机,其系统总线至少应采用()。(A)EISA总线(B)S—100总线(C)ISA总线(D)PC/XT总线23.通常一个外设的状态信息在状态端口内占有()位。(A)1(B)2(C)4(D)824.按与存储器的关系,I/O端口的编址方式分为()。(A)线性和非线性编址(B)集中与分散编址(C)统一和独立编址(D)重叠与非重叠编址25.在中断传送方式下,主机与外部设备间的数据传送通路是()。(A)数据总线DB(B)专用数据通路(C)地址总线AB(D)控制总线CB26.状态信息是通过()总线进行传送的。(A)数据(B)地址(C)控制(D)外部27.下列总线中,属于局部总线的是()。(A)ISA(B)EISA(C)MCA(D)PCI28.利用程序查询方式传送数据时,CPU必须读()以判断是否传送数据。(A)外设的状态(B)DMA的请求信号(C)数据输入信息(D)外设中断请求二、判断题 1.在查询方式下输入输出时,在I/O接口中设有状态寄存器,通过它来确定I/O设备是否准备好。输入时,准备好表示已满;输出时,准备好表示已空。2.无条件式的I/O是按先读状态口,再读数据口的顺序传送数据的。3.I/O数据缓冲器主要用于协调CPU与外设在速度上的差异。4.查询式输入输出是按先读状态端口,后读/写数据端口的顺序传送数据的。5.连接CPU和外设的接口电路中必须要有状态端口。6.总线是专门用于完成数据传送的一组信号线。7.I/O接口的基本功能之一是完成数据的缓冲。8.要实现微机与慢速外设间的数据传送,只能利用查询方式完成。三、填空题1.对I/O端口有两种编址方法,它们是()编址和()编址。2.CPU从I/O接口中的()获取外设的“准备就绪”或“忙/闲”状态信息。3.若要实现存储器与存储器、存储器与外设之间直接进行数据交换(不通过CPU)应采用的方法是()。4.CPU与I/O接口间的信息一般包括()、()和()三类。5.能支持查询传送方式的接口电路中,至少应该有()端口和()端口。四、问答题1.什么是接口?为什么外设需要通过接口连接系统?2.什么叫总线?为什么各种微机系统中普遍采用总线试结构?3.为什么要规定标准总线?各种总线中最基本的信息总线是哪些?五、阅读程序 1.阅读下列程序段,回答问题INAL,82HXORAH,AHADDAX,AXMOVBX,AXMOVCX,2SHLBX,CLADDAX,BX①程序段的功能是什么?②若从82H端口读入的数据为05H,执行程序段后AX=?2.读下列程序段,分析它所实现的功能。DATASEGMENTGRAYDB18H,34H,05H,06H,09HDB0AH,0CH,11H,12H,14HCOUNTEQU5DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX MOVBX,OFFSETGRAYMOVCX,COUNTCYCLE:INAL,01HXLATOUT02H,ALLOOPCYCLERETCODEENDSENDSTART六、编写程序1.采用无条件传送方式,编写一个程序段,从端口210H读入50个字节数据,存入以BUFF开始的50个连续的存储单元中。2.利用查询方式编写一个程序段,从端口320H读入100个字节数据存入以ARRAY开始的100个连续的存储单元中,设查询状态口的地址为310H,查询D7为1时,为准备好。一.选择题1.(D)2.(D)3.(D)4.(D)5.(C)6.(C)7.(D)8.(B)9.(C)10.(C)11.(D)12.(B)13.(A)14.(C)15.(C)16.(D)17.(C)18.(D) 19.(D)20.(C)21.(B)22.(C)23.(A)24.(C)25.(A)26.(A)27.(D)28.(A)二、判断题1.√2.√3.√4.√5.×6.×7.√8.×三、填空题1.独立,统一2.状态端口3.DMA。4.数据信息;状态信息;控制信息5.状态;数据四、问答题1.什么是接口?为什么外设需要通过接口连接系统?接口是指具有独立功能单元的相互联接部分。由于各种外设的工作原理,工作速度,电平种类,信息格式,驱动方式,所需的控制联络信号等各有不同,因此它们需要通过一些接口与系统相连。2.什么叫总线?为什么各种微机系统中普遍采用总线试结构? 总线即各个部件之间进行信息传输的公共通道,它是由若干信号线组成的。采用总线可使计算机系统结构简化,可靠性提高,构成方便,易于扩充,升级。3.为什么要规定标准总线?各种总线中最基本的信息总线是哪些?为使不同厂商可以按同样的总线标准和规范来生产各种不同的功能芯片,模块和整机,可使各级别产品的兼容性,互换性和整个系统的可维护性,可扩展性从根本上得到保证。五、阅读程序1.①程序段的功能是将从82H端口读入的值乘以10,②32H2.程序的功能是:根据外设端口(01H)送来的数据,从GRAY表中查出对应的代码,回送到外设的02H端口,共取五次。六、编写程序1.LEABX,BUFFMOVDX,210HMOVCX,50L1:INAL,DXMOV[BX],AL INCBXLOOPL12.LEABX,ARRAYMOVCX,100LP0:MOVDX,310HINAL,DXTESTAL,80HJZLP0MOVDX,320HINAL,DXMOV[BX],ALINCBXLOOPLP0 第八章中断技术习题八一、单项选择题1.用3片8259A级联,最多可管理的中断数是()。(A)24级(B)22级(C)23级(D)21级2.CPU响应INTR和NMI中断时,相同的必要条件是()。(A)当前指令执行结束(B)允许中断(C)当前访问内存结束(D)总线空闲3.通常,中断服务程序中的一条STI指令目的是()。(A)允许低一级中断产生(B)开放所有可屏蔽中断(C)允许同级中断产生(D)允许高一级中断产生4.特殊屏蔽方式要解决的主要问题是()。(A)屏蔽所有中断(B)设置最低优先级(C)开放低级中断(D)响应同级中断5.对可编程接口芯片进行读/写操作的必要条件是().(A)RD=0(B)WR=0(C)RD=0或WR=0(D)CS=06.用两只中断控制器8259A级联后,CPU的可屏蔽硬中断可扩大到()。(A)64级(B)32级(C)16级(D)15级7.在PC机中,启动硬中断服务程序执行的是()。(A)主程序中安排的中断指令(B)中断控制器发出的中断请求信号 (C)主程序中安排的转移指令(D)主程序中安排的调用指令8.如果有多个中断请求同时发生,系统将根据它们的优先级高低,响应优先级最高的中断请求,若要调整响应顺序,则应使用()。(A)中断嵌套(B)中断响应(C)中断屏蔽(D)中断向量9.当系统发生某个事件时,CPU暂停现行程序的执行转去执行相应程序的过程,称为()。(A)中断请求(B)中断响应(C)中断嵌套(D)中断屏蔽10.8086/8088CPU采用()方式,保证在有多个中断源的中断系统中,确定一个中断源并转入相应的中断服务程序。(A)中断向量(B)向量中断(C)优先排队(D)并行工作11.PC机中,确定硬中断的服务程序入口地址的是()。(A)主程序中的调用指令(B)主程序中的转移指令(C)中断控制器发出的类型码(D)中断控制器中的中断服务寄存器12.8086/8088CPU的引脚中,接有硬中断信号的引脚有()。(A)15个(B)8个(C)2个(D)1个13.设8259A当前最高优先级为IR5,如果要使该中断在下一循环中变为最低优先级,则OCW2应设为()。(A)11100000(B)10100101(C)10100000(D)0110010114.欲读取8259A的IMR内容,可()。 (A)先向8259A写入OCW3。然后读8259A的奇地址(B)直接读8259A的偶地址(C)先向8259A写入OCW3。然后读8259A的偶地址(D)直接读8259A的奇地址15.80486CPU响应中断时,自动压入堆栈的信息是()。(A)AX,BX,CX,DX的内容(B)AX,CX的内容(C)CS,IP,SP的内容(D)CS,IP,标志寄存器的内容16.实模式下,80486管理的内存空间中,地址为00000H~003FFH中存放着()(A)用户程序代码(B)BIOS代码(C)DOS系统代码(D)中断向量表17.设某中断服务程序在中断向量表的地址为:0:70H,则该中断的中断类型码应是()。(A)35H(B)18H(C)1BH(D)1CH18.下列引起CPU程序中断的四种情况中,()需要由硬件提供中断类型码。(A)INTO(B)NMI(C)INTR(D)INTn19.实模式下,对于80486微机系统,其中断类型码为18H的中断向量从内存中物理地址为()开始存放,共占()个字节。(A)00072H,4(B)00048H,2(C)00030H,2(D)00060H,420.若8259工作在自动循环方式下,当前IR3上的中断请求已执行并返回,则8个中断源中优先级最高的是()。(A)IR4(B)IR2(C)IR3(D)IR021.8259A应用中,需对IR5,IR3进行屏蔽,操作命令字OCW1应写入()。 (A)D7H(B)28H(C)53H(D)35H22.中断向量可以提供()。(A)被选中设备的起始地址(B)传送数据的起始地址(C)中断服务程序入口地址(D)主程序的断点地址23.非屏蔽中断的中断类型号是()。(A)1(B)2(C)3(D)424.通常情况下,一个外中断服务程序的第一条指令是STI,其目的是()。(A)开放所有屏蔽中断(B)允许低一级中断产生(C)允许高一级中断产生(D)允许同一级中断产生25.执行返回指令,退出中断服务程序,这时返回地址来自()。(A)ROM区(B)程序计数器(C)堆栈区(D)CPU的暂存寄存器26.实模式下,NMI中断的中断矢量在中断矢量表中的位置是()。(A)由DOS自动分配(B)由程序指定(C)固定在已0008H开始的2个字单元中(D)固定在中断矢量表表首27.4片8259级联工作,可管理的外部中断源的级数为()。(A)4(B)32(C)28(D)2928.PC机中为使工作于一般全嵌套方式的8259中断控制器能接受下一个中断请求,在中断服务程序结束处应()。(A)执行IRET指令(B)执行POP指令(C)发送EOI命令(D)发送OCW3命令29.80486CPU工作在实模式下执行指令INT30H时,中断服务程序的入口地址存放在以()开始的两个字节单元中。 (A)00120H(B)00090H(C)000C0H(D)00060H30.下列说法中,错误的是()。(A)8259A的自动EOI方式只适用于不出现多重中断的场合。(B)8259A的初始化结束后,在写入OCW2之前,它按完全嵌套方式工作。(C)在PC/XT下不能扩展新的8259A。(D)8259A的8个中断源的中断向量在中断向量表中是连续存放的。31.若8259A工作在自动循环方式下,当前IR1上的中断请求已执行并返回,则8个中断源中优先级最高的是()。(A)IR2(B)IR0(C)IR7(D)IR532.要屏蔽某外部中断,可通过改变8259A()的内容实现。(A)IRR(B)IMR(C)ISR(D)PR33.欲读取8259A的IRR的内容,必须先写()命令字。(A)ICW1(B)OCW2(C)ICW2(D)OCW334.80X86系统中硬件中断服务程序的入口地址可由()得到。(A)主程序中的调用指令(B)主程序中的转移指令35.80486CPU有()引脚可接收外部中断请求信号。(A)15个(B)8个(C)2个(D)1个36.中断控制器8259A采用级连方式时最多可管理()中断源。(A)64个(B)32个(C)16个(D)15个37.在下列各种中断中,需由外部电路提供中断类型号的是()。(A)INTO(B)INTn(C)NMI(D)INTR 38.中断控制方式的优点是()。(A)提高CPU的利用率(B)提高CPU与外设的数据传送精度(C)提高CPU与外设的数据传送速度(D)减少外设的等待时间二.判断题1.单片8259A最多可接8个中断源。2.中断服务程序结束时,可用RET指令代替IRET指令返回主程序。3.若8259A工作在优先级自动循环方式,则IRQ4的中断请求被响应并且服务完毕后,优先级最高的中断源是IRQ3。4.CPU在响应外中断时,会自动将标志标志寄存器的IF和TF清零。5.可屏蔽中断要执行两个中断响应总线周期。6.内中断不受IF和TF标志的影响。7.在可屏蔽中断的嵌套原则中,不允许低级中断打断高级中断,但允许同级中断相互打断。8.同一片8259的8个中断源的中断向量在中断向量表中可以不连续存放。9.中断向量地址是中断服务程序入口地址。10.利用8259A对外中断进行管理时,只能管理8个中断源。11.在中断接口电路中,由中断请求寄存器来保存外设的中断请求信号。12.在80x86中INTO的中断优先级比NMI的中断优先级要高。13.中断向量地址是中断向量表的地址。14.8259A的8个中断源的中断向量在中断向量表中可以不连续存放。15.8259A送给CPU的中断请求信号是通过INT发出的。 16.80X86系统中硬件中断服务程序的入口地址可由程序中的调用指令得到。三、填空题1.类型码为()的中断所对应的中断向量存放在0000H:0058H开始的4个连续单元中,若这4个单元的内容分别为(),则相应的中断服务程序入口地址为5060H:7080H。2.CPU在指令的最后一个时钟周期检测INTR引脚,若测得INTR为()且IF为(),则CPU在结束当前指令后响应中断请求。3.从CPU的NMI引脚产生的中断叫做(),他的响应不受()的影响。4.中断类型码为15H的中断,其服务程序的入口地址一定存放在()四个连续的单元中,若这四个单元的的内容为:66H、50H、88H、30H,则其服务程序的入口地址为()。5.中断控制器8259A中的中断屏蔽寄存器IMR的作用是()。6.CPU响应可屏蔽中断的条件是()、()和()。CPU开中断、有中断源提出中断请求和CPU执行完现行执令后7.在8086/8088微机系统中,INT20H指令中断向量存放在中。8.CPU在响应中断时,首先是保护(),然后将中断服务程序入口地址送入()。9.在8086/8088微机中,实现CPU关中断的指令是(),实现开中断的指令是()。10.如果CPU同时接收到中断请求和总线请求,则CPU应先响应()。 11.当用8259A管理INTR中断时,要发出EOI命令结束中断是操作()命令字。12.执行INTn指令时,其中断类型号由()提供,响应INTR时,中断类型号由()提供,响应NMI时,中断类型号由()提供,执行BOUND指令时,中断类型号由()提供。13.INTR、NMI均属于外中断,其中INTR被称为()中断,NMI被称为()中断。14.80486在实模式下,当某中断源的中断类型码为70H时,中断服务程序的偏移地址和段基址将分别填入()单元和()单元。15.CUP复位时,由于()被清零,使从INTR输入的可屏蔽中断不被响应。16.2片8259A级联可管理()个可屏蔽中断。17.INTR输入是()有效。18.级连系统中,从8259A中的INT引脚应与主8259A的()连接。19.()时,使用8259A的CS2~CS0引脚。20.用二片8259A级连后,CPU的可屏蔽方式硬中断可扩充到()级。22.80486CPU的NMI引脚输入的中断请求称为()中断。23.8259有两种中断触发方式()和()。四、问答题1.简述8259A的主要功能。2.什么是中断嵌套?中断嵌套的深度有无限制?为什么?答案一、单项选择题 1.(B)2.(A)3.(B)4.(C)5.(D)6.(D)7.(B)8.(C)9.(B)10.(B)11.(C)12.(C)13.(C)14.(D)15.(D)16.(D)17.(D)18.(C)19.(D)20.(A)21.(B)22.(C)23.(B)24.(C)25.(C)26.(C)27.(D)28.(C)29.(C)30.(C)31.(A)32.(B)33.(D)34.(C)35.(C)36.(A)37.(D)38(A)二.判断题1.√2.×3.√4.√5.√6.×7.×8.×9.×10.×11.√12.√13.×14.×15.√16.×三、填空题1.16H;80、60、502.1;13.非屏蔽中断_;中断屏蔽寄存器4.0054H_;3088:5066_5.禁止某些中断源中断_6.CPU开中断、有中断源提出中断请求和CPU执行完现行执令后7.0000H:0080H8.断点;IP9.CLI;STI10.总线请求11.OCW212.CPU;外部电路;CPU;CPU13.可屏蔽中断;非屏蔽中断14.001C2H;001C0H15.IF16.15 17.高电平18.IRi19.级连20.1522.非屏蔽23.电平触发,边沿触发四、问答题1.简述8259A的主要功能单片8259可以管理8个外部中断,多片级连最多可以管理64个外部中断;对它管理的每个中断源进行单独的允许与禁止;且具有多种优先级管理方式;能自动提供中断类型号2.什么是中断嵌套?中断嵌套的深度有无限制?为什么?中断嵌套是在一个中断服务程序的执行过程中转入对另一个中断请求的服务,中断嵌套的深度有限制,因为堆栈的容量有限。第九章定时/计数接口电路习题四一、单项选择题1.8253作为定时器和计数器时()。(A)使用的计数方式相同(B)工作方式不同(C)实质相同(D)输出定时信号不同2.8253的计数器的最大计数初值是()。(A)65536(B)FFFFH()FFF0H(D)0000H 3.PC机执行输出指令OUT时,向相应的I/O接口芯片产生的有效控制信号是()。---------------------(A)AEN(B)IOR(C)IOW(D)ALE4.要求从8253A定时器0的输出端OUT0得到200MHz的方波信号,应将8253A的通道0的工作方式设置为()。(A)方式0(B)方式1(C)方式2(D)方式35.下列几种芯片中能完成定时/计数任务的是()。(A)8255A(B)8237(C)8251(D)82546.定时器/计数器8254内部有3个()位的计数器。(A)4(B)8(C)16(D)327.要使8254通道2工作于方式3输出非对称的周期性方波,必须有()。(A)GATE为高电平,计数初值为奇数(B)计数初值为偶数,GATE为高电平(C)GATE为低电平,计数初值为奇数(D)计数初值为偶数,GATE为低电平8.某系统中欲采用8254的计数器0作频率信号发生器,引入计数器0的时钟频率为1.275MHz若要求它输出一个频率为5000Hz的信号,则在初始化时,送到计数器0的计数初值为()。(A)0FFFH(B)02FFH(C)01FFH(D)00FFH9.当8253可编程定时/计数器工作在方式0时,控制信号GATE变为低电平后,对计数器的影响是()。(A)结束本次计数循环,等待下一次计数开始 (B)暂时停止现行计数工作(C)不影响本次计数,即计数器的计数不受该信号的影响(D)终止本次计数过程,立即开始新的计数循环10.某一测控系统要使用一脉冲信号产生单稳信号,如果使用8253可编程定时/计数器来实现此功能,则8253应工作在()。(A)方式0(B)方式1(C)方式2(D)方式3(E)方式4(F)方式511.某一测控系统要使用连续的方波信号,如果使用8253可编程定时/计数器来实现此功能,则8253应工作在()(A)方式0(B)方式1(C)方式2(D)方式3(E)方式4(F)方式512.若8253可编程定时/计数器处于计数过程中,当CPU对它装入新的计数值时,其结果将是()(A)8253可编程定时/计数器禁止编程(B)8253可编程定时/计数器允许编程,并改变当前的计数过程(C)8253可编程定时/计数器允许编程,但不改变当前的计数过程(D)8253可编程定时/计数器允许编程,是否影响当前计数过程随工作方式而变13.当8253可编程定时/计数器工作在方式0,在初始化编程时,一旦写入控制字后()(A)输出信号端OUT变为高电平(B)输出信号端OUT变为低电平(C)输出端保持原来的电位值(D)立即开始计数 14.INTEL8253通道工作于方式3,接入6MHZ的时钟,如要求产生2400HZ的方波,则计数器的初值应为()(A)2000(B)2500(C)3000(D)400015.可编程定时器/计数器8253的控制字为()个字节。(A)1(B)2(C)3(D)416.起动8253的计数器开始计数的方式有()。(A)软件方式(B)硬件方式(C)软件和硬件方式(D)门控信号17.向8253写入的计数初值写到了()中。(A)初值寄存器(B)计数器0(C)减计数单元(D)控制字寄存器18.在对8253进行任何操作前,都必须先向8253写入一个(),以确定8253的工作方式。(A)控制字(B)计数初值(C)状态字(D)指令19.计数初值送到8253的()寄存器中。(A)控制寄存器(B)计数初值寄存器(C)减计数单元(D)输出锁存寄存器20.可以从8253的()寄存器中读出减计数器的值。(A)控制寄存器(B)计数初值寄存器(C)减计数单元(D)输出锁存寄存器二.判断题1.8253A既可作为计数器,又可作为定时器使用。 2.当8253可编程定时/计数器工作在方式0时,控制信号GATE变为低电平后,对计数器的影响是暂时停止现行计数工作。3.8254定时器/计数器工作在方式3时,其OUT引脚上输出的是周期性的对称方波。三、填空题1.设8253的计数器用于对外部事件记数,计满100后输出一跳变信号,若按BCD方式计数,则写入计数初值的指令为MOVAL,()和OUTPORT,AL。2.设8253的计数器1的输入时钟频率为1MHz,以BCD码计数,要求该通道每隔5ms输出一个正跳变信号,则其方式控制字应为()。3.8253A芯片有()个计数通道,每个通道可有()种工作方式。4.当需要利用8254产生对称性方波时,应选的工作方式为(),把它作为一个可编程的单稳态电路使用时,应工作在()下。5.8254在进行计数时,实际上是对()信号线上的信号进行计数。6.要使使8253定时/计数器的OUT输出100HZ的方波,计数频率为100KHZ,则计数的初值应为()。7.8253中的每个计数器可作为二进制和()进制计数器用。答案一、单项选择题1.(C)2.(D)3.(C)4.(D)5.(D)6.(C)7.(A)8.(D)9.(B)10.(B)11.(D)12.(D)13.(B)14.(B)15.(A)16.(C)17.(A)18.(A)19.(B)20.(D) 二.判断题1.√2.√3.×三、填空题1..5BH2.71H3.3;64.方式3;方式15.CLK6.10007.十第十章并行和串行接口电路习题一1.异步串行通信接口8250的编程模型中有个可I/O编址的寄存器,在通信之前有个需要置入初值,在通信过程中,为了通信的可靠性,CPU需要从个状态寄存器中读入状态信息,进行判别以决定后面的操作。2.简述并行接口与串行接口的异同。3.是对通信的最重要的要求。4.异步串行通信时,利用可以让程序知道什么时候可以发送代码,什么时候应该读入接收的代码以及接收是否出现错误,出现的是何种错误。5.流通量控制是为了适应通信双方终端设备对数据处理能力的需要,在DTE与DCE之间的接口上,对数据传输的和的控制。6.同步通讯之所以比异步通讯具有较高的传输频率是因为A)同步通讯不需要应答信号;B)同步通讯方式的总线长度较短;B)同步通讯用一个公共的时钟信号进行同步;D)同步通讯中,各部件存取时间比较接近;E)以上各项因素的综合结果 7.以RS-232为接口,进行7位ASCII码字符传送,带有一位奇校验位和两位停止位,当波特率为9600波特时,字符传送率为A)960;B)873;C)1371;D)4808.在数据传送过程中,数据由串行变并行或并行变串行,其转换是通过A)数据寄存器;B)移位寄存器C)锁存器9.计算机主机和终端串行传送数据时,要进行串-并或并-串转换;这样的转换A)只有通过专门的硬件来实现;B)可以用软件实现,并非一定要用硬件实现10.假设串行通讯口的输入数据寄存器的端口地址为50H,状态寄存器的端口地址为51H,它的各位为1时的含义如下:请编写程序,输入一串字符并存入缓冲区BUFF,同时校验输入的正确性,如有任何错误转出错处理程序ERR_ROUT。11.写出一段指令序列,把IBMPC的RS232C串行异步通信接口设置为传输速率为1200bps,传输7位ASCII码,偶校验,1位停止位。画出传输字母C时的波形图。这种设置下,每秒钟最多能传输多少字符?12.对IBMPC的RS232C串行口编三段程序,分别完成如下功能:(1)发送代码,其功能如BIOS调用时(AH)=1的功能。(2)接收代码,其功能如BIOS调用时(AH)=2的功能。(3)接收和发送利用中断方式。13.远程终端和计算机间的通讯可以通过和传输,远程通讯时,计算机和远程终端需分别装有。14.在异步串行通信过程中,用OUT指令向置入所要发送的字符代码,就可把代码发向DCE;用IN指令读取,就可以把DCE发来的代码输入CPU。15.波特率表示,1波特等于16.显示系统由和两大部分组成;显示方式可以分为和两类。17.某CRT显示器可显示64种ASCII字符,每帧可显示64字25排;每个字符字形采用78点阵,即横向7点,字间间隔1点,纵向8点,排间间隔6点;帧频50Hz,采取逐行扫描方式。试问:(1)缓存容量有多大?(2)字符发生器(ROM)容量有多大?(3)缓存中存放的是字符的ASCII代码还是点阵信息?(4)缓存地址与屏幕显示位置如何对应?(5)设置哪些计数器以控制缓存访问与屏幕扫描之间的同步?它们的分频关系如何?18.编写一个顺序写磁盘文件的程序,该文件包括姓名(<16个字符)、年龄(1个字)和电话号码(<10个字符),这些字符和数据在屏幕上出现提示符之后,由用户从键盘输入。 19.对应屏幕上第40列最下边一个象素的内容单元地址是什么?20.写出把光标置在第12行、第8列的指令。21.编写指令把12行0列到22行79列的屏面清除。22.编写程序段:按下Home键(扫描码为47H),则将光标置在0行0列,否则光标位置不动。23.写出以下指令序列:(1)设置80列黑白方式。(2)把光标设置在第5行的开始。(3)上卷10行。(4)显示10个闪烁的*号。24.编写指令:设置图形方式并选择背色为绿色。25.某显示器分辨率为1024768,则屏幕刷新像素个数为。26.某显示器分辨率为1024768,屏幕刷新频率为60Hz,像素位宽为16bit,则显示器的刷新带宽度为。27.在一共320200的彩色/图形显示器上,用直接编程方法编程显示一个直径含100个象素点的圆面。这个圆面分为三个相等的扇区,分别显示为红、绿和兰色。背景为白色。28.编写程序使一只鸟的图形飞过屏幕。飞鸟的动作可由小写字母V(ASCII码76H)变为破折号(ASCII码0C4H)来模仿,这两个字符先后交替在两列上显示。鸟的开始位置是0列20行,每个字符显示1/10秒,然后消失。29.试概述主机调用磁盘并完成一次批量传送的全过程,叙述中应着重说明:①主机怎样启动磁盘;②何时、以何种方式给出数据在磁盘上的地址;③何时、以何种方式完成数据传送;(4)怎样结束调用过程。30.编写建立并写入磁盘文件的程序,这个磁盘文件包括零件号(5个字符),零件名称(12个字符)和单价(1个字)。程序允许用户从键盘输入这些数据。31.编写一个程序读出并显示31题建立的文件内容32.写出确定文件记录数的指令,假定打开文件操作已经执行,FCB中的文件长度欲为FCBFLSZ,记录长度欲为FCBRCSZ。33.编写指令:用BIOSINT13H来读出一个扇区的内容,存储器缓冲区为INDSK,驱动器为A、0头、6磁道、3扇区。在设备3的中断处理程序之前,设备2发出中断请求。34.一张单面密度3.5英寸软盘有80条磁道,每条磁道有18个扇区,每个扇区存1024个字节,则该软盘总容量为。35.编一段程序,在磁盘上建立并写入一个文件,文件的内容是A~E的字符码,每个字符连续重复180H次。[参考答案]1.10533.可靠5.时间数量7.A8.B10.MOVDI,0MOVCX,80BEGIN:INAL,51HTESTAL,02HJZBEGININAL,50H MOVBUFF[DI],ALINCDIINAL,51HTESTAL,00111000BJNZERRORLOOPBEGINJMPEXITERROR:CALLERR_ROUTEXIT:…13.长距离线路电话网调制解调器17.答:CRT显示器缓存与屏幕显示间的对应关系:(1)缓存容量6425=1600B。(2)ROM容量648=512B。(3)缓存中存放的是待显示字符的ASCII代码。(4)显示位置自左至右,从上到下,相应地缓存地址由低到高,每个地址码对应一个字符显示位置。(5)点计数器8:1分频,字计数器(64+12):1分频,行计数器(8+6):1分频,排计数器(25+10):1分频。23.(1)MOVAH,00MOVAL,02INT10H(2)MOVDH,4MOVDL,0MOVAH,02INT10H(3)MOVAH,6MOVAL,10MOVBH,07MOVCX,00MOVDX,184FHINT10H(4)MOVAH,9MOVAL,’*’MOVBH,0MOVBL,87HMOVCX,10INT10H25.78643226.94.372MHz30.答:(1)主机通过输出指令或传送指令向接口指定磁盘驱动器台号。(2)查询该台磁盘是否可调用,如可调用则执行第(3)步。(3)通过输出指令向接口送出圆柱号,并启动寻道,然后可继续执行主程序,等待第一次中断请求。 (4)找到磁道,向主机发出第一次中断请求,通过中断服务判别寻道是否正确,如不正确,重新定标再寻道。(5)如正确,主机通过输出指令向接口送出磁盘起始扇区号和扇区计数值,送出相应主存首址,然后启动读或写工作模式,返回主程序。(6)当找到起始扇区后,穿插安排DMA传送。(7)批量传送结束,接口向主机提出第二次中断请求,通过中断服务程序,取回状态字,判传送过程有无错误,如有错,转出错处理,否则调用过程结束。习题二一、单项选择题1.8255A既可作数据输入、出端口,又可提供控制信息、状态信息的端口是()。(A)B口(B)A口(C)A、B、C三端口均可以(D)C口2.8255A的方式选择控制字为80H,其含义是()。(A)A、B、C口全为输入(B)A口为输出,其他为输入(C)A、B为方式0(D)A、B、C口均为方式0,输出----------3.8255A引脚信号WR=0,CS=0,A1=1,A0=1时,表示()。(A)CPU向数据口写数据(B)CPU向控制口送控制字(C)CPU读8255A控制口(D)无效操作4.一微机化仪器采用8255A芯片作数据传送接口,并规定使用接口地址的最低两位作芯片内部寻址,已知芯片的A口地址为0F4H,则当CPU执行输出指令访问0F7H端口时,其操作为()。(A)数据从端口C送数据总线(B)数据从数据总线送端口C(C)控制字送控制字寄存器(D)数据从数据总线送端口B5.当8255A的端口A、端口B均工作在方式0的输入方式时,端口C可以作为()用。(A)两个4位I/O端口或1个8位I/O端口(B)状态端口(C)部分引脚作端口A、端口B的联络信号(D)全部作联络信号6.当并行接口芯片8255A被设定为方式2时,其工作的I/O口()。(A)既能作输入口、也能作输出口使用(B)仅能作输入口使用(C)仅能作不带控制信号的输入口或输出口使用(D)仅能作输出口使用7.当并行接口芯片8255A被设定为方式2时,其工作的I/O口()。 (A)仅能作不带控制信号的输入口或输出口使用(B)仅能作输入口使用(C)既能作输入口、也能作输出口使用(D)仅能作输出口使用8.intel公司生产的用于数据并行传送的可编程接口芯片是()。(A)8218(B)8251(C)8253(D)82559.一片1ntel8255A需占用()个端口地址。(A)2(B)4(C)6(D)810.8255的A口中断输出时,应将A口工作方式初始化为()才能满足。(A)方式0(B)方式1(C)方式2(D)不初始化11.在远距离串行通信中,采用调制技术是为了使信号()。(A)强度加大(B)有条不紊传送(C)一位一位传送(D)不失真传送12.8255A接口芯片的端口A有()种工作方式。(A)5(B)3(C)4(D)213.8255的读写信号WR=0,A0=1,A1=1,完成的工作是()。(A)数据写入C端口(B)数据写入控制字寄存器(C)数据写入A端口(D)数据写入B端口14.8255A能实现双向传送功能的工作方式为()。(A)方式0(B)方式1(C)方式2(D)方式315.8255A使用了()个端口地址。(A)1(B)2(C)3(D)416.某系统采用8255A作并行I/O接口,初始化时CPU所访问的端口地址为0CBH,并设定为方式1输出,则A口的口地址应为()。(A)0C8H(B)0CAH(C)0CH(D)0EH17.在8255的初始化程序中,使INTEA=1的目的是使()。(A)A口在中断方式下完成输入/输出操作(B)B口在中断方式下完成输入/输出操作(C)A口在查询方式下完成输入/输出操作(D)B口在查询方式下完成输入/输出操作 18.8255工作在()下,不需联络信号线。(A)方式1(B)方式2(C)方式0(D)所有方式19.在8255A中可以进行按位置位/复位的端口是()。(A)端口A(B)端口B(C)端口C(D)所有端口20.8255A工作在方式2时,ACKA有效表示()。(A)数据已存入端口A(B)数据已被外设取走(C)将数据存入端口A(D)通知外设将端口A数据取走21.在Intel8255A中只能工作在方式0下的端口是()。(A)端口A(B)端口B(C)端口C(D)控制寄存器端口二、填空题1.若要可编程并行芯片8255A三个端口均作为输入口,则其方式选择控制字应为()。2.8255A的A端口有()种工作方式,它们分别是()。3.8255A的三个端口中只有端口()没有输入输出锁存功能。4.8255A的端口A工作于方式2时,使用端口C的()作为与CPU和外部设备的联络信号。5.8255A与CPU连接时,地址线一般与CPU的地址总线的()连接。6.8255A控制字的最高位D7=()时,表示该控制字为方式控制字。7.8255A的端口A的工作方式是由方式控制字的()位决定。8.8255A的端口B的工作方式是由方式控制字的()位决定。9.8255A的端口C按位置复位控制字的()位用来指定端口C中置位/复位的具体位置。10.8255A的端口C按位置复位控制字的()位决定对端口C的某一位置位或复位。11.8255A中包括两组控制电路,其中A组控制(),B组控制()。12.Intel8255A是一个()接口芯片。13.8255A内部具有()个输入/输出端口。14.8255A的每个端口的数据寄存器长度为()位。15.8255A中选通信号STB的功能是()。 16.当8255A的A口、B口置成方式0,且作为输入口,C口输出口时,其控制字为()。三.判断题1.8255A的A端口和B端口都能在方式2下进行工作。2.在8255A中可以进行按位置位/复位的端口是端口A、B、C。3.传输距离较近时,常采用并行传送方式,传输距离较远时,常采用串行传送方式。4.8255控制字的最高位D7=1,表示该控制字为方式控制字。5.8255与CPU连接时地址线一般与CPU的地址总线A1和A0连接。6.8255三个端口中只有端口A有输入锁存功能。7.8255的每个端口的数据寄存器的长度为8位。8.8255A的端口A工作在方式2时,端口B只能工作在方式0下。9.8255A有3个独立的8位并行I/O口。四.编程1.电路结果如图所示,若要求8个发光二极管L0~L7依次点亮,问:①图中8255A中的三个端口各工作在什么方式下?②给出初始化的程序段③编制出能实现题目要求的汇编语言源程序。2.电路结果如图所示,若要求每按一次K,LED0~LED7改变一次状态,问: ①图中8255A中的三个端口各工作在什么方式下?②给出相关的初始化的程序段。③编制出能实现题目要求的汇编语言源程序。255A口A地址为200H,要使口A工作在方式0输出,口B工作在方式1输入,PC7—PC4为输入PC3—PC0为输出,请编写初始化程序段。答案一、单项选择题1.(D)2.(C)3.(B)4.(C)5.(A)6.(A)7.(C)8.(D)9.(B)10.(B)11.(D)12.(B)13.(B)14.(C)15.(D)16.(A)17.(A)18.(C)19.(C)20.(B)21.C)二、填空题1.100110112.三;基本输入/输出方式、选通输入/输出方式、双向方式3.C4.PC7~PC3 5.A0和A16.17.D6和D58.D29.D3D2D110.D011.端口A和端口C的上半部分、端口B和端口C的下半部分12.可编程的通用并行输入/输出13.314.815.通知CPU外设已将数据送至端口16.92H三.判断题1.×2.×3.×4.√5.√6.×7.√8.×9.√四.编程1.①均工作在方式0下②MOVDX,183HMOVAL,80H(或80-8FH)OUTDX,AL③START:MOVAL,0FEHMOVDX,180H SS1:OUTDX,ALSHLAL,1JNCSTARTJMPSS12.①A口方式0,B口方式1,输出,②MOVDX,20BHMOVAL,84HOUTDX,AL③START:MOVAH,0FEHSS1:MOVDX,20AHAGAIN:INAL,DXTESTAL,04HJZAGAINMOVDX,208HMOVAL,AHOUTDX,ALSHLAH,1JNCSTARTJMPSS13.方式字10001110MOVAL,8EHMOVDX,203H OUTDX,AL第7章串行接口一、选择题1.设串行异步通信的数据格式是:1个起始位,7个数据位,1个校验位,1个停止位,若传输率为1200,则每秒钟传输的最大字符数为()。(A)10个(B)110个(C)120个(D)240个2.在数据传输率相同的情况下,同步字符传输的速度要高于异步字符传输,其原因是()。(A)字符间无间隔(B)双方通信同步(C)发生错误的概率少(D)附加的辅助信息总量少3.异步串行通信中,收发双方必须保持()。(A)收发时钟相同(B)停止位相同(C)数据格式和波特率相同(D.以上都正确4.在数据传输率相同的情况下,同步传输率高于异步传输速率的原因是()。(A)附加的冗余信息量少(B)发生错误的概率小(C)字符或组成传送,间隔少(D)由于采用CRC循环码 校验5.用REPESCASB指令对字符串进行扫描,如CX=0时,扫描结束,那么表示()。(A)在字符串中遇上第一个AL中指定的字符(B)在字符串中有一个AL中指定的字符(C)在字符串中有一个不是AL中指定的字符(D)在字符串中遇上第一个不是AL中指令的字符6.intel公司生产的用于数据串行传送的可编程接口芯片是()。(A)8259(B)8237(C)8255(D)82517.在异步通信方式中,通常采用()来校验错误。(A)循环冗余校验码(B)奇、偶校验码(C)海明校验码(D)多种校验方式的组合8.intel8251A的TxD、RxD引脚的信号电平符合()。(A)DTL标准(B)TTL标准(C)HTL标准(D)RS-232C标准9.8251的方式字(模式字)的作用是()。(A)决定8251的通信方式(B)决定8251的数据传送方向(C)决定8251的通信方式和数据格式(D)以上三种都不对10.异步传送中,CPU了解8251A是否接收好一个字符数据的方法是()。(A)CPU响应8251A的中断请求 (B)CPU通过查询请求信号RTS(C)CPU通过程序查询RxD接收线状态(D)CPU通过程序查询RxRDY信号状态11.传送ASCII码时D7位为校验位,若采用偶校验,传送字符4的ASCII码34H时的编码为()。(A)B4H(B)34H(C)35H(D)B5H12.异步串行通信的主要特点是()。(A)通信双方不需要同步(B)传送的每个字符是独立发送的(C)字符之间的间隔时间应相同(D)传送的数据中不含有控制信息13.在异步串行通信中,使用波特率来表示数据的传送速率,它是指()。(A)每秒钟传送的字符数(B)每秒钟传送的字节数(C)每秒钟传送的字数(D)每秒钟传送的二进制位数14.串行通信中,若收发双方的动作由同一个时钟信号控制,则称为()串行通信。(A)同步(B)异步(C)全双工(D)半双工-----------15.当CPU通过8251A与调制解调器相连时,其中DSR表示调制解调-----------器是否准备好,CPU是通过()方式获得DSR的值。----------------------(A)DSR信号直接送到CPU(B)当DSR信号有效时,8251A向CPU发出中断请求 -----------(C)CPU读8251A的状态寄存器(D)CPU无法知道DSR信号的状态16.如果8251A的方式寄存器的地址为2F1H,则它的控制寄存器的地址是()。(A)2F0H(B)2F2H(C)2F3H(D)2F1H17.在数据传送过程中,数据由串行变为并行,或由并行变为串行,这种转换是通过接口电路中的什么实现的()。(A)数据寄存器(B)移位寄存器(C)锁存器(D)状态寄存器18.如果约定在字符编码的传送中采用偶校验,若接收到校验代码11010010,则表明传送中()。(A)未出现错误(B)出现奇数位错(C)出现偶数位错(D)最高位出错19.传输距离较近时,常采用()。(A)串行接口(B)简单接口(C)可编程接口(D)并行接口20.串行通信适用于()微机间的数据传送。(A)不同类型(B)同类型(C)近距离(D)远距离21.两台微机间进行串行通信时,波特率应设置为()。(A)不同(B)相同(C)可相同也可不同 (D)固定不变22.两台微机间进行串行双工通信时,最少可采用()根线。(A)2(B)3(C)4(D)5二、判断题1.同步串行传送能够得到比异步串行传送高的传输速率。2.奇偶校验是根据传送的数据中"1"的个数进行编码的。3.在微型计算机中,串行输入输出端口与微处理器之间是采用串行方式交换数据的。4.调制解调器实现的是异步数据通信。5.异步串行通讯中,一个字符的编码是基本传递单位的组成部分之一。6.8251是可编程串行通信接口,它只能工作在异步通信方式下。7.串行异步通信与同步通信的不同之处是分别适用于近距离和远距离通信。三、填空题1.传送ASCII码时,D7位为校验位,若采用奇校验在传送字符B的ASCII码42H时,其编码为()。2.串行传送数据的方式有()、()两种。3.串行通信中约定:一个起始位,一个停止位,偶校验,则数字“5”的串行码为(),数字“9”的串行码为()。4.利用8251进行异步串行通讯,当设定传输速率为8400波特,传 输格式为1个起始位,1个停止位时,每秒最多可传送的字节数是()。5.串行接口传送信息的特点是(),而并行接口传送信息的特点是()。6.在异步串行通信中,使用波特率来表示数据的传送速率,它是指()。7.Intel8251A工作在同步方式时,最大波特率为();工作在异步方式时,最大波特率为()。8.Intel8251A工作在同步方式时,每个字符的数据位长度为(),停止位的长度为()。9.Intel8251A从串行输入线上接收好了一个字符后,将信号()置为有效。10.Intel8251A工作在同步方式时,引脚同步检测信号SYNDET可作为输入或输出信号使用,若工作在外同步方式,该引脚为();若工作在内同步方式,该引脚为();11.异步串行通信规程规定,传送数据的基本单位是(),其中最优先传送的是(),长度为()比特,信号电平为()。12.异步串行通信规程规定,传送的每个字符的最后是(),其宽度为(),信号电平为()。13.同步串行通信包括()和()两类。14.在HDLC同步传送规程中,同步字符的编码为()。15.如果8251A设定为异步通信方式,发送器时钟输入端和接收器时 钟输入端都连接到频率为19.2KHz的输入信号,波特率为1200,字符数据长度为7位,1位停止位,采用偶校验。则8251A的方式控制字为()。16.面向字符型的串行通信协议规定数据是以()为单位传送的。第十一章开关量与模拟量接口技术习题十一一、选择题1.下列芯片中,可用作CPU与8位A/D转换器之间接口的是()。(A)8251(B)8254(C)8255(D)82592.一个8位D/A转换器的分辨能力可以达到满量程的()。(A)1/8(B)1/256(C)1/16(D)1/32 3.从转换工作原理上看,()的A/D转换器对输入模拟信号中的干扰抑制能力较强。(A)逐次逼近式(B)双积分型(C)并行比较式(D)电压频率式4.能将数字信号转换为模拟信号的接口芯片是()。(A)8259(B)D/A(C)8251(D)A/D5.当外设输入的信号变化很快时,应考虑在A/D转换器的输入端加一个()。(A)传感器(B)滤波电路(C)采样保持器(D)多路模拟开关6.D/A转换器输出模拟电压的最大幅值不会超过()。(A)+5V(B)0V(C)输入电压(D)参考电压7.使多路模拟信号共有一个A/D转换器时,需使用()。(A)采样保持器(B)多路模拟开关(C)传感器(D)滤波电路8.将各种物理信号变成电信号的装置称为()。(A)采样保持器(B)传感器(C)模/数转换器(D)数/模转换器二、判断题1.当D/A转换器与CPU相连时,如果CPU的数据总线的位数小于D/A转换器的位数,则需要采用多级缓冲结构。2.在A/D转换原理中,采用逐次逼近式其转换速度是最快的。三、填空题1.ADC0809是一个分辨率为()位,具有()路模拟量输入,基于()转换原理的A/D转换器。 2.在某模拟量输出通道中,利用DAC0832构成多路D/A独立结构,要求其各路D/A同时输出模拟量信号,则此时各路D/A中的DAC0832的数据输入必须采用()缓冲方式进行。3.A/D转换的主要作用是()。4.D/A转换的主要作用是()。5.一个测控系统的模出通道是采用多路D/A,要求同时输出各路模拟量控制信号,则此时D/A的数据输入方式必须选用()。6.过程控制设备的核心是()、()。四、问答题1.在D/A转换器与主机的连接中,有单缓冲与多缓冲等多种方式,简述多缓冲方式的主要特点。2.D/A转换器接口的任务是什么?它和微机连接时,一般有哪几种接口形式?一、选择题1.(C)2.(B)3.(B)4.(B)5.(C)6.(D)7.(B)8.(B)二、判断题1.√2.×三、填空题1.8;8;逐次逼近2.双3.将模拟信号转换为数字信号4.将数字信号转换为模拟信号 5.多缓冲方式6.A/D转换、D/A转换四、问答题1.在D/A转换器与主机的连接中,有单缓冲与多缓冲等多种方式,简述多缓冲方式的主要特点。其主要特点是,可以一次将N个对象的值同时进行转换(在系统中有多D/A的时候)2.D/A转换器接口的任务是什么?它和微机连接时,一般有哪几种接口形式?2.D/A转换器接口的任务是什么?它和微机连接时,一般有哪几种接口形式?D/A转换器接口的任务是将数字信号转换为模拟信号。它和微机连接时,有单缓冲方式、双缓冲方式和直通方式。第十二章微机系统设计与实现习题十二自测试题一、选择题(20’)1.80X86微处理器PentiumIII属于__A__。A.CISC微处理器B.微控制器C.RISC微处理器D.位片式微处理器2.已知两个符号数X、Y的补码分别为D6H和A5H,则[X+Y/2]补为___D__。A.28HOF=1B.28HOF=0C.A8HOF=1D.A8HOF=03.8086/8088CPU的内部结构由C组成。A.ALU、EU、BIUB.寄存器组、ALU C.EU、BIUD.ALU、BIU、地址加法器4.8086/8088CPU构成系统的两种组态,与之有关的控制信号是B。A.S0、S1、S3B.MN/MXC.TESTD.QS0,QS15.在不考虑段超越情况下,8086/8088中DI寄存器给出的偏移地址位于___B___。A.DS或SS段B.DS或ES段C.DS或CS段D.仅DS段6.在8086/8088微机系统中,堆栈与堆栈指针SP的正确位置是__D__。A.堆栈在CPU中,SP也在CPU中B.堆栈在ROM中,SP在CPU中C.堆栈在CPU中,SP在RAM中D.堆栈在RAM中,SP在CPU中7.构成8086系统32KB的存储空间,选择存储器的最佳方案是__C___。A.一片32K×8BitB.2片16K×8BitC.4片8K×8BitD.8片4K×8Bit8.80X86CPU可以访问的I/O地址空间共有__C1___,使用的地址信号线为__B2___,CPU执行OUT输出指令时,向相应的I/O接口芯片产生的有效控制信号是__D3___。A1.256B1.1KC1.64KD1.128KA2.A7~A0B2.A15~A0C2.A15~A1D2.A19~A0A3.RD低电平,WR三态,M/IO低电平B3.RD三态,WR低电平,M/IO高电平C3.RD低电平,WR高电平,M/IO高电平D3.RD高电平,WR低电平,M/IO高电平9.8086/8088中断系统可处理__B1__个中断源,中断类型码的范围为__A2__,中断向量设置在内存__A3__,优先权最高、最低的中断分别是___A4___。A1.255B1.256C1.128D1.1024A2.0~255B2.1~255C2.0~127D2.0~1023A3.00000H~003FFHB3.00400H~007FFHC3.FFFFFH~FF800HA4.除法出错,单步B4.NMI,单步C4.NMI,INTRD4.除法出错,INTR10.当8253定时器0的时钟脉冲为1MHZ时,其二进制计数时的最大定时时间为B1,这时写入定时器的初值为A2。A1.65.535msB1.65.536msC1.131.71msD1.131.72msA2.0000HB2.FFFFHC2.0001HD2.FFFEH11.8255工作于中断方式传送数据时,可供使用的8位数据端口个数有__B。A.1B.2C.3D.412.设异步串行通信时,每个字符对应1个起始位,7个信息位,1个奇/偶校验位和2个停止位,每秒传送这样字符240个,其波特率为___B__b/s。A.2400B.2640C.1200D.192013.在汇编过程中不产生指令码,只用来指示汇编程序如何汇编的指令是___B___。A.汇编指令B.伪指令C.机器指令D.宏指令 14.汇编语言源程序经汇编后,可直接生成___B___。A..OBJ及.ASM文件B..OBJ及.LST文件C..LST及.ASM文件D..OBJ、.LST及.ASM文件二、按下图所示硬件填空(35’)1.(1)与图中(1)处相连的控制信号为M/IO。(2)由图中给出的端口地址,可判断出与图中(2)、(3)处相连的地址信号分别为A14,A15。(3)单片6116的存储容量是2K×8bit。(4)图中存储器的基本地址空间从04000H到04FFFH。2.(1)ADC0809属于__逐次比较___型模数转换器。(2)A/D转换器转换开始时,必须要有__启动信号___。(3)读取A/D转换结果有__直接读取__、___中断__、__查询__种方式,此电路采用的是___查询___方式。3.(1)图中0832工作在___直通___方式。(2)设0832的参考电压为-5V,当需转换的数字量为40H时,Vo=1.25V。4.(1)8255的A、B、C口及控制寄存器的地址分别为5000H、5001H、5002H、5003H。(2)8255工作方式:A组为方式0,输入。B组为方式0,输出。(3)阅读下面程序并填空,程序中采集了ADC0809的IN4~IN7模拟通道。MOVDX,5003H;8255初始化MOVAL,00011000BOUTDX,ALMOVCX,4MOVBL,CLMOVDI,OFFSETDATBUFCLDNEXT:MOVDX,5002H;输出ADC通道号MOVAL,BLOUTDX,ALMOVDX,5003HMOVAL,00000111BOUTDX,AL;该程序段的作用是NOP;NOP;通道锁存并启动A/D转换。MOVAL,00000110BOUTDX,ALMOVDX,5002HWAIT:INAL,DX;查询A/D转换是否结束 TESTAL,80HJZWAITMOVDX,5000HINAL,DX;读A/D转换结果至ALSTOSBINCBLLOOPNEXT61166116A10~A0A10-A0A10-A0WRWEWE+M/IO74LS138Y0CSOECSOE+G2AIO7-IO0IO7-IO0RDY1(3)G2B(2)G1Y2CPUDB500*HY3A13C580*HA12BA11AWRCS8255D7~D0A0A0WR+(1)A1A1RDPC0PC1PC2PC3PC7PA0~PA7PB0~PB7+RDD0~D7-5VD0~D7EOCV0VrefOEViALEIN1:CSSTART::WR1WR2CIN7XFERBDAC0832AADC0809三、阅读程序,回答问题(15’)1.数据段定义如下:地址内容DATASEGMENT1BUF1DB1,2,3,‘123’2L1EQU$-BUF13BUF2DW0‘1’L2EQUBUF2-BUF1‘2’DATAENDS‘3’00 设定位后BUF1的地址为2000:0000①.在右图中写出该段占用内存情况②.填空L1=___6__L2=___6__2.DATASEGMENTBUFFERDB12H,35H,26H,64H,52H,41H,0ABH,78H,0DFH,67HCOUNTEQU$-BUFFERA1DB?_DATA_ENDS_STACKSEGMENTPARASTACK"STACK"DB256_DUP_(0)STACKENDSCODESEGMENT_ASSUME__CS:CODE,DS:DATA,SS:STACKSTARTPROC__FAR__PUSHDSMOVAX,__0___;作用是用标准序方法返回DOSPUSHAXMOVAX,__DATA_MOVDS,AXMOVBX,OFFSETBUFFERMOVCX,COUNT-1MOVSI,0MOVAL,[BX][SI]LOP1:INCSICMPAL,[BX][SI]JAELOP2MOVAL,[BX][SI]LOP2:LOOPLOP1MOVA1,ALRETSTARTENDP;表明__主过程结束_CODEENDS;表明__代码段结束_END_START__;表明_源程序结束_(1).在横线上填空。(2).指令’LOOPLOP1’引起的循环有____9____次。(3).程序执行结束时,A1单元的内容为___DFH__。(4).该程序功能是__找出BUFFER中的最大元素存入A1中____。四、编程(可仅用指令性语句编写)(10’) 在数据段DS中的一个数据块STRING由大小写英文字母、数字、其他符号组成,长度为COUNT。将其传送到同一段中STRING1为首地址的内存区,并将英文中大写字母转换成小写英文字母,其余不变。提示:’A’的ASCII码是41H,‘a’的ASCII码是61H。LEASI,STRINGLEADI,STRING1MOVCX,COUNTNEXT:MOVAL,[SI]CMPAL,41HJBGOCMPAL,5AHJAGOADDAL,20HGO:MOV[DI],ALINCSIINCDILOOPNEXT五、(20’)某一实时时钟系统由8253和8259A组成,如下图。8253的工作频率为1MHZ,端口地址为C0H~C3H,0通道的输出接至8259A的IR0,使其每50ms向CPU申请一次中断。设8259A的端口偶地址为20H,采用缓冲器方式和普通的EOI命令,中断请求信号是边沿触发,当中断响应时,8259A输出的中断类型码为08H。要求在不增加硬件的情况下,实现每10秒钟从端口60H输入一个数据至内存缓冲区BUFFER。写出相应的主程序(包括8259A初始化,中断向量设置,8253初始化等)和中断服务子程序。1MHZDBCLK0GATE0+5VOUT0译8088:码8253CSIR0器8259A:A1INTRA0INTCLIMOVAL,00010011BOUT20H,ALMOVAL,00001000BOUT21H,AL MOVAL,00001101BOUT21H,ALPUSHDSMOVAX,SEGINTPROCMOVDS,AXMOVDX,OFFSETINTPROCMOVAX,2508HINT21HPOPDSMOVAL,00110110BOUT0C3H,ALMOVAL,50HOUT0C0H,ALMOVAL,C3HOUT0C0H,ALMOVCX,0MOVSI,OFFSETBUFFERSTIAA:HLTJMPAAINTPROCPROCPUSHAXINCCXCMPCX,200JNZEXITMOVCX,0INAL,60HMOV[SI],ALINCSIEXIT:MOVAL,20HOUT20H,ALPOPAXIRETINTPROCENDP答案:自测试题二一、选择与填空(35分)1.若X=-31,Y=-8,字长n=8,采用补码运算求得[X-Y]补的结果是。 A.10010111B.11101001C.10100111D.110110012.下列数中最大的数是。A.(10000011)2B.(10010101)BCDC.(92)16D.(101)103.已知DS=2000H,SS=1500H,BP=0200H,传送指令MOVAX,[BP+5]源操作数的寻址方式是①,物理地址是②。①A.寄存器寻址B.寄存器间接寻址C.基址寻址D.直接寻址②A.15205HB.20205HC.17005HD.22005H4.下列指令中合法的指令是和。A.MOVCL,SIB.PUSHCSC.MOV[BX+DI],ADRYD.MOVSS,1500HE.INAX,120HF.MOV[BX],5G.MOVDSP[SI],DSH.MOV[BP+BX+4],AL其中:ADRY、DSP为变量5.总线周期的T1状态下,数据/地址线上是①信息,用②信号将此信息锁存起来。①A.数据B.地址C.控制D.状态②A.RDB.WRC.MN/MXD.ALE6.为了解决CPU与外部设备工作速度的不一致,在I/O接口电路中,输入必须有,输出必须有____________。A.锁存器B.缓冲器C.译码器D.控制器7.在串行接口中,RS-232-C的逻辑“1”电平为___________________。A.0~+5VB.+5V~+15VC.–5V~-15VD.1.5V~5V8.在异步串行通信中,相邻两帧数据的间隔是。A.0B.任意的C.确定的D.与波特率有关9.一个SRAM芯片,有14条地址线和8条数据线,则该芯片最多能存储ASCII码字符的个数是。A.16384B.32768C.256D.1410.下述产生片选信号CS的方法中,被选中芯片不具有唯一确定地址的是。A.线选法或部分译码B.仅部分译码C.仅线选法D.全译码 11.中断类型码为40H的中断服务程序入口地址存放在中断向量表中的起始地址是。A.DS:0040HB.DS:0100HC.0000H:0100HD.0000H:0040H12.8086/8088响应不可屏蔽中断时,其中断类型码是。A.由CPU自动产生B.从外设取得C.由指令INT给出D.由中断控制器提供13.在PC系统中,采用汇编语言编程时,为了显示字符和打印字符,。A.两者都必须采用系统功能调用B.两者都必须采用BIOS功能调用C.前者必须用系统功能调用,后者必须用BIOS功能调用D.两者都可用系统功能调用或BIOS功能调用14.CPU响应INTR引脚上的中断请求的条件之一是。A.IF=0B.IF=1C.TF=0D.TF=115.8086/8088进行外设访问的地址空间为。A.00H~FFHB.0000H~03FFHC.0000H~FFFFHD.00000H~FFFFFH16.在8255可编程并行接口芯片中,可用于双向选通I/O方式(即方式2)的端口为。A.PA口B.PB口C.PC口D.PA和PB17.8086/8088中用来区分构成的是最大模式还是最小模式系统的控制信号是。A.S,S,SB.MN/MXC.TESTD.QS0,QS101218.可用紫外线擦除的存储器是。A.E2PROMB.EPROMC.RAMD.FLASH19.对于掉电,8086/8088是通过来处理的。A.软件中断B.DMA请求C.可屏蔽中断D.非屏蔽中断20.为保证动态RAM的内容不消失,需要进行操作。21.8位D/A转换器,若满量程电压为+5V,分辨率所对应的电压为mV。当输入的数字量为H时,转换后输出电压为3.5V。 22.DAC0832的三种工作方式为、、。23.若8253定时器0的时钟脉冲为1MHz,在二进制计数时的最大定时时间为ms,此时计数器的初值应置为。24.8086/8088CPU由和两部分组成,8086CPU与8088CPU的主要区别是和。二、阅读程序,回答问题(20分)1.MOVAH,0MOVAL,45HMOVCL,04HSALAX,CLSHRAL,CLHLT执行程序段后,AX=2.CLDLEADI,[0126H]MOVCX,0100HXORAX,AXREPSTOW程序段功能是3.数据段定义如下:DATASEGMENT地址内容BUF1DW‘31’,1234H2000:0000BUF2EQU3BUF3DB2DUP(BUF2,10)BUF4EQU$-BUF3BUF5EQU$-BUF4DATAENDS设定位后BUF1的地址为2000H:0000H(1)在右图中写出该数据段占用内存的内容及其对应的地址。 (2)填空:BUF2=BUF4=BUF5=SEGBUF3=OFFSETBUF3=4.阅读下列程序:DATASEGMENTDA1DB‘ABCD’COUNTEQU4DA2DBCOUNTDUP(0)DATAENDSSTACKSEGMENTPARASTACK‘STACK’DB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXLEASI,DA1LEADI,DA2MOVCX,COUNTLOP1:MOVAL,[SI]MOVDL,0LOP2:CMPAL,0JZNEXTSHRAL,1JNCEEINCDLEE:JMPLOP2NEXT:MOV[DI],DLINCSIINCDILOOPLOP1MOVAH,4CH INT21H;返回DOSCODEENDSENDSTART回答以下问题:(1)程序完成的功能是(2)程序运行结束后,DL中的内容为(3)程序运行结束后,CX中的内容为(4)指令CMPAL,0在程序中的作用是(5)程序运行结束后,DA2+1单元中的内容为(6)程序运行结束后,DA2+2单元中的内容为三、编程(10分)编写程序段,实现从数据段以BUF为首地址的字符串中寻找‘A’字符,将它们的偏移地址依次存放于ADDS为首地址的存储区内,并统计‘A’的个数,存放于NUM单元中,该字符串以‘$’结尾(‘$’=24H)。四、接口(35分)1.某微机系统提供以下信号:地址线A0~A19,数据线D0~D7,控制线WR、RD。试用两片静态RAM芯片6264BL(8K8bits),扩充为16K8bits的存贮器系统。(10分)(1)单片存储器寻址需要多少根地址线?并在图中虚线框中写出地址下标。(2)假如扩充的存贮器空间为10000H开始的连续存储区,画出电路连线图。(3)写出各个SRAM芯片的所在地址空间。 (MEMW)))WR(MEMR)RD74LS138A19G1A18CPUA17G2ACSOEWECSOEWEA16G2BA15C0#1#A14BA-AD7-D0A-A0D7-D00A13AA12...A0D7-D02.8253与8088CPU的连线如图所示。(10分)(1)写出8253的0#、1#、2#计数器及控制寄存器的地址,8088未用的地址线均设为0。(2)设8253的0#计数器作为十进制计数器用,其输入计数脉冲频率为100KHz,要求0#计数器输出频率为1KHz的方波,试写出设置8253工作方式及计数初值的有关指令。8088CPU74LS1388253A9G1数据D7…D0Vcc+5VA8总线G2AA7Y4CSGATE0A6GA52B100KHzCIORRDCLK0A4A3B1KHzIOWWROUT0A2AA1A1A0A03.下图为8086/8088的A/D转换电路,ADC0809通过8255A与PC总线连接,连线如图所示,未用的地址线均设为0。(15分) 0809D7…D0D7…D0PAD7…D0IORRDIOWWRPB7EOC8255IN0A0..A1CS8086/8088ST..831ALE..A8G1SY0L4IN7A77A6G2AY1ADDCA5GADDB2BA4CADDAA3BA2AYOE7A1+5VA0(1)写出8255A的A口、B口、C口及控制寄存器地址分别为、、、。(2)ADC0809是式的位A/D转换器。(3)下列程序段的功能是:从模拟通道IN7开始进行A/D转换并连续采样16个数据,然后对下一通道IN6采样16次,……直到通道IN0采样完毕,采样所得数据存放在数据段中起始地址为1000H的连续内存单元中。请按要求在空格中填入相应的指令和数据。;8255A初始化;(设置控制字,不用的位均置0)MOVSI,1000H;设置采样数据存储器首地址MOVBL,8;设置模拟通道计数器MOVDX,;设置模拟通道IN7口地址LOP1:MOVCX,16;设置16次采样计数器LOP2:;启动A/D转换PUSHDX LOP3:;查询(检测)PB7(即EOC)JZLOP3;转换结束,读入采样数据INCSIPOPDXLOOPLOP2DECDXDECBLJNZLOP1HLT答案一、选择与填空(每空1分,共35分)1.B2.C3.C,A4.B,G5.B,D6.B,A7.C8.B9.A10.A11.C12.A13.D14.B15.C16.A17.B18.B19.D20.刷新21.19.5mv,B3H22.双缓冲方式,单缓冲方式,直通方式23.65.536,024.EU,BIU,区别:①外部数据总线8086是16位,8088是8位②BIU指令队列8086是6字节,8088是4字节二、阅读程序,回答问题(20分)1.(3分)AX=0405H2.(3分)程序段功能是将地址为0126H开始的256个字单元清03.(8分)地址内容2000:000031H000133H000234H000312H000403H (2)填空:BUF2=3BUF4=4BUF5=4SEGBUF3=2000HOFFSETBUF3=0004H4.(6分)(1)寻找字符串中各字符含1的个数(2)02H(3)0(4)缩短寻找的过程(5)02H(6)03三、编程(10分)BUFDB‘…………’,‘$’COUNTEQU$-BUFADDSDWCOUNTDUP(?)NUMDW?……LEABX,BUFLEASI,ADDSMOVCX,0L1:MOVAL,[BX]CMPAL,41H;‘A’JNZL2MOV[SI],BXINCCXADDSI,2L2:INCBXCMPAL,24H;‘$’JNZL1 MOVNUM,CXHLT四、接口(共35分)1.(10分)(1)片内需要13根地址线,即A12~A02分(2)电路连线如下:4分CPU的数据总线D7~D0、读写控制线RD、WR分别与两片存储器芯片的数据线D7~D0、读写控制线OE、WE直接相连;CPU的地址线A12~A0直接与两片存储器芯片的A12~A0相连;A19与38译码器的高电平有效的使能端相连,A18与38译码器的一个低电平有效的使能端相连,A17、A16通过或门和38译码器的另一个低电平有效的使能端相连;A15、A14、A13分别与38译码器的地址控制端C、B、A相连;38译码器的输出端Y0与0#存储器芯片的CS相连,38译码器的输出端Y1与1#存储器芯片的CS相连。(3)0#地址范围:10000H~11FFFH4分1#地址范围:12000H~13FFFH2.(10分)(1)地址:210H~213H2分(2)控制字00110111,N=100KHz/1KHz=100MOVAL,37H8分MOVDX,213HOUTDX,ALMOVDX,210HMOVAL,00HOUTDX,ALMOVAL,01HOUTDX,AL3.(15分)(1)地址:11CH,11DH,11EH,11FH4分(2)逐次逼近,8位2分(3)MOVDX,11FH9分MOVAL,92H OUTDX,AL107HOUTDX,ALMOVDX,11DHINAL,DXTESTAL,80HMOVDX,11CHINAL,DXMOV[SI],AL'