• 917.28 KB
  • 2022-04-22 11:27:36 发布

》课后答案_(第3版)清华大学出版社__杨素行.pdf

  • 43页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第一章微型计算机基础第一章微型计算机基础题1-1计算机发展至今,经历了哪几代?答:电子管计算机、晶体管计算机、集成电路计算机、超大规模集成电路计算机、非冯诺伊曼计算机和神经计算机。题1-2微机系统由哪几部分组成?微处理器、微机、微机系统的关系是什么?答:1、微机系统分硬件和软件,硬件包括CPU、存储器、输入输出设备和输入输出接口,软件包括系统软件和应用软件。2、微处理器是指微机的核心芯片CPU;微处理器、存储器和输入输出设备组成微机;微机、外部设备和计算机软件组成微机系统。题1-3微机的分类方法包括哪几种?各用在什么应用领域中?答:按微处理器的位数,可分为1位、4位、8位、32位和64位机等。按功能和机构可分为单片机和多片机。按组装方式可分为单板机和多板机。单片机在工业过程控制、智能化仪器仪表和家用电器中得到了广泛的应用。单板机可用于过程控制、各种仪器仪表、机器的单机控制、数据处理等。题1-4微处理器有哪几部分组成?各部分的功能是什么?答:微处理器包括运算器、控制器和寄存器三个主要部分。运算器的功能是完成数据的算术和逻辑运算;控制器的功能是根据指令的要求,对微型计算机各部分发出相应的控制信息,使它们协调工作,从而完成对整个系统的控制;寄存器用来存放经常使用的数据。题1-5微处理器的发展经历了哪几代?Pentium系列微处理器采用了哪些先进的技术?答:第一代4位或低档8位微处理器、第二代中高档8位微处理器、第三代16位微处理器、第四代32位微处理器、第五代64位微处理器、第六代64位高档微处理器。Pentium系列微处理器采用了多项先进的技术,如:RISC技术、超级流水线技术、超标量结构技术、MMX技术、动态分支预测技术、超顺序执行技术、双独立总线DIB技术、一级高速缓冲存储器采用双cache结构、二级高速缓冲存储器达256KB或512KB、支持多微处理器等。题1-6何为微处理器的系统总线?有几种?功能是什么?答:系统总线是传送信息的公共导线,微型计算机各部分之间是用系统总线连接的。一般有三组总线:地址总线、数据总线和控制总线。地址总线AB就是传送CPU发出的地址信息,是单向总线。数据总线DB传送数据信息,是双向总线,CPU既可通过DB从内存或输入设备接口电路读入数据,又可通过DB将CPU内部数据送至内存或输出设备接口电路。控制总线CB传送控制信息,其中有的是CPU向内存及外设发出的信息,有的是外设等发给CPU的信息。题1-7何为引脚的分时复用?如何从8088的地址、数据复用引脚准确的得到地址和数据信息?答:引脚的分时复用是指一个引脚在不同时刻传送不同的信息,比如:在一个总线周期里既传送地址又传送数据。可以利用ALE和DEN信号来获得复用的地址信号和数据信号:ALE为地址锁存允许信号,高电平有效时,把地址-数据线上出现的地址信号锁存到地址锁存器中;DEN为数据允许信号,低电平有效时该信号允许数据输入或输出。1 第一章微型计算机基础在总线的T1状态,输出地址信息。ALE输出一个正脉冲,它的下降沿把地址信息打入锁存器中;当DEN变为低电平时,说明引脚上出现数据信息。题1-8标志寄存器的功能及各种标志的含义是什么?进位标志和溢出标志的区别是什么?答:标志寄存器记录了算术和逻辑结果的一些特征。如CF进位标志位、PF奇偶标志位、AF辅助进位位、ZF零标志位、SF符号标志位、OF溢出标志位、TF跟踪标志位、IF中断标志位、DF方向标志位。CF:当进行加法或减法运算时,若最高位发生进位或借位则CF=1,否则CF=0。OF:当算术运算的结果超出了带符号数的范围,即溢出时,OF=1,否则OF=0。题1-9查表得出下列字符的ASCII码:回车、换行、空格、$、/、*、9、A、B、C、D、E、F、a、b。答:回车(0DH)、换行(0AH)、空格(20H)、$(24H)、/(2FH)、*(2AH)、9(39H)、A(41H)、B(42H)、C(43H)、D(44H)、E(45H)、F(46H)、a(61H)、b(62H)。题1-10何为定点数、浮点数?何为无符号数、有符号数?答:计算机中数的小数点位置固定的表示法称为定点表示法,用定点表示法表示的数称为定点数;计算机中数的小数点位置不固定的表示法称为浮点表示法,用浮点表示法表示的数称为浮点数。无符号数用全部位表示数的大小;有符号数用二进制数的最高位表示数的符号,其余的位表示数的大小。题1-11写出下列数表示的无符号数的范围(1)8位二进制数(2)16位二进制数答:(1)8位无符号数:0~255;8位有符号数:-128~127;(2)16位无符号数:0~65535;16位有符号数:-32768~32767;题1-12用8位和16位二进制数,写出下列数的原码、反码、补码。(1)+1(2)-1(3)+45(4)—45(5)+127(6)-127答:(1)00000001;00000001;000000010000000000000001;0000000000000001;0000000000000001(2)10000001;11111110;111111111000000000000001;1111111111111110;1111111111111111(3)00101101;00101101;001011010000000000101101;0000000000101101;0000000000101101(4)10101101;11010010;110100111000000000101101;1111111111010010;1111111111010011(5)01111111;01111111;011111110000000001111111;0000000001111111;0000000001111111(6)11111111;10000000;100000011000000001111111;1111111110000000;1111111110000001注意:-128用8位数只有补码没有原码和反码,8位原码:-127~127,8位反码:-127~127,8位补码:-128~127。题1-13微机某内存单元的内容为C5H,若它表示的是一个无符号数,写出该数在下列各进制中的表达式。(1)二进制(2)八进制(3)BCD码(4)十进制答:(1)11000101(2)305(3)0000000110010111(4)197题1-14微机某内存单元的内容为C5H,若它表示的是一个有符号数,则该数对应的十进制数是什么?2 第一章微型计算机基础答:-59题1-15求A95BH与8CA2H之和;并写出运算后标志寄存器中的SF、ZF、CF、OF的值答:和为35FD;SF=0;ZF=0;CF=1;OF=1。3 第二章微型计算机指令系统第二章微型计算机指令系统题2-1试分别说明以下各指令的源操作数属于何种寻址方式。答:1、MOVAX,[SP]——寄存器间接寻址2、MOVDS,AX——寄存器寻址3、MOVDI,0FF00H——立即数寻址4、MOVBX,[2100H]——直接寻址5、MOVCX,[SI+5]——变址寻址6、MOVAX,TABLE[BP][DI]——基址加变址寻址7、MOVDX,COUNT[BX]——基址寻址题2-2已知有关寄存器中的内容为,(DS)=0F100H,(SS)=0A100H,(SI)=1000H,(DI)=2000H,(BX)=3000H,(BP)=4000H。偏移量TABLE=0AH,COUNT=0BH。说明题2-1中第1小题和第4~7小题指令源操作数的物理地址。答:1、物理地址=SS×16+SP=0A1000H+4000H=A5000H4、物理地址=DS×16+2100H=F3100H5、物理地址=DS×16+SI+5H=F1000H+1000H+5H=F2005H6、EA=BP+DI+TABLE=600AH物理地址=DS×16+EA=F1000H+600AH=F700AH7、EA=BX+COUNT=300BH物理地址=DS×16+EA=F1000H+300BH=F400BH题2-3某一个存储单元的段地址为ABCDH,偏移地址为ABCDH,试说明其物理地址是什么;而另一个存储单元的物理地址为F1000H,偏移地址为FFF0H,试说明其段地址是什么。答:ABCD0H+ABCDH=B689DH——物理地址F1000H-FFF0H=E1010H,所以段地址为:E101H。题2-4分别采用三种不同寻址方式的指令将偏移地址为5000H的存储单元的一个字传送到6000H单元,要求源操作数和目标操作数分别采用以下寻址方式:1、直接寻址2、寄存器间接寻址3、变址寻址答:1、MOVAX,[5000H]MOV[6000H],AX2、MOVSI,5000HMOVDI,6000HMOVBX,[SI]MOV[DI],BX3、MOVAX,[SI+5000H]MOV[SI+6000H],AX题2-5说明以下8086/8088指令是否正确,如果不正确,简述理由。1 第二章微型计算机指令系统1、MOVAL,SI2、MOV[1001H],[1000H]3、MOVDS,2000H4、MOVCS,AX5、PUSH5000H6、POPDL7、INAX,1234H8、XCHGBX,0F000H答:1、错。源数据和目标数据类型不匹配。2、错。不能用一条MOV指令完成两个存储单元的数据传送。3、错。不能直接向DS中送立即数。4、错。CX寄存器不能作为目的操作数。5、错。数据类型不符合语法。6、错。POP指令以字为操作数。7、错。端口地址8位,超出范围。8、错。源数据类型错误。题2-6阅读以下程序段,说明其运行结果:1、MOVDX,0F100HMOVDH,[DX]MOVAH,[DX]初值:(F100H)=‘A’,(4100H)=‘B’结果:(AH)=41H2、MOVSI,2100HMOV[2800H],SIMOVSP,2800HPOPDI结果:(DI)=2100H,(SP)=2802H。3、MOVSI,2000HMOVDI,3000HMOVSP,0FF00HPUSHSIPUSHDIXCHGSI,DIMOVAL,[SI]MOVBL,[DI]POPSIPOPDI初值:(2000H)=‘1’,(3000H)=‘a’结果:(SI)=3000H,(DI)=2000H,(AL)=61H,(BL)=31H,(SP)=FF00H。题2-7试用8086/8088指令编写程序段,分别实现以下要求:2 第二章微型计算机指令系统1、将AL和BL寄存器的内容互换2、将1000H和1001H内存单元中的字互换3、将2000H和2100H内存单元中的字互换4、将BL,CL和DL三个寄存器的内容互换,即BLCLDL答:1、XCHGAL,BL2、MOVBL,[1000H]MOVAL,[1001H]XCHGAL,BL3、MOVBX,[2000H]MOVAX,[2100H]XCHGAX,BX4、XCHGBL,CLXCHGCL,DLXCHGDL,BL题2-8将首地址为3000H的100个存储单元的内容传送到首地址为3100H的内存区,要求分别使用以下指令:1、一般传送指令MOV2、串操作指令MOVS,但不加重复前缀REP3、加重复前缀的串操作指令REPMOVS答:1、MOVSI,3000HMOVDI,3100HMOVCX,100CIRCLE:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPCIRCLE2、MOVSI,3000HMOVDI,3100HMOVCX,100CIRCLE:MOVSBLOOPCIRCLE3、MOVSI,3000HMOVDI,3100HMOVCX,100CLDREPMOVSB题2-9说明以下8086/8088指令是否正确,如果不正确,简述理由1、ADDBL,F100H2、SUBES,20H3、AND0FH,AL4、CMP[SI],[DI]3 第二章微型计算机指令系统5、INC2000H6、MULBL,CL7、DIV08H8、SALAX,5答:1、错。源操作数和目标操作数的数据类型不匹配。2、错。段寄存器不能参加算术运算。3、错。源操作数和目标操作数位置颠倒。4、错。不能同时为存储器。5、错。操作数类型错误。6、错。其中一个操作数是隐含的。7、错。必须是寄存器或存储器操作数。8、错。超过1的循环次数要通过赋值CL来完成。题2-10已知寄存器AL和BL的内容分别如下,试分析执行ADDAL,BL指令后,寄存器AL以及标志位CF,ZF,SF,AF,OF和PF的内容。1、(AL)=45H,(BL)=31H2、(AL)=7AH,(BL)=56H3、(AL)=F2H,(BL)=8DH4、(AL)=B1H,(BL)=F8H5、(AL)=37H,(BL)=C9H答:题号ALCFZFSFAFOFPF1、76H0000002、D0H0011103、7FH1000104、A9H1010115、00H110101(注:考虑CF时要当操作数为无符号数,考虑OF时要当操作数为有符号数,下同)题2-11已知寄存器AL和BL的内容分别如下,试分析执行SUBAL,BL指令以后,寄存器AL以及标志位CF,ZF,SF,AF,OF和PF的内容。1、(AL)=96H,(BL)=42H2、(AL)=27H,(BL)=38H3、(AL)=6CH,(BL)=A1H4、(AL)=B4H,(BL)=E7H5、(AL)=1DH,(BL)=E5H答:题号ALCFZFSFAFOFPF1、54H0000102、EFH1011003、CBH1010104、CDH1011005、38H1000004 第二章微型计算机指令系统题2-12阅读以下程序段:MOVSI,4000HMOVDI,4100HMOVAL,[SI]ADDAL,[DI]DAAMOV[DI],ALMOVAL,[SI+1]MOVAL,[DI+1]DAAMOV[DI+1],AL1、根据给定的初值,说明运行结果。初值:(4000H)=63H,(4001H)=54H(4100H)=88H,(4101H)=29H结果:(4100H)=51H,(4101H)=84H。2、在以上程序段中,当执行ADDAL,[DI]指令,但尚未执行DAA指令时,有关寄存器和标志位的内容为:(AL)=EBH,(CF)=0,(ZF)=0,(SF)=1,(AF)=0,(OF)=0,(PF)=1。3、在以上程序段中,当第一个执行DAA指令后,有关寄存器和标志位的内容为:(AL)=51H,(CF)=1,(ZF)=0,(SF)=0,(AF)=1,(OF)=0,(PF)=0。4、如果在以上程序段中去掉两条DAA指令,但初值不变,则运行结果为:(4100H)=EBH,(4101H)=7DH。题2-13阅读以下程序段:START:LEABX,TABLEMOVCL,[BX]LOOPER:INCBXMOVAL,[BX]CMPAL,0AHJNCX1ADDAL,30HJMPNEXTX1:ADDAL,37HNEXT:MOV[BX],ALDECCLJNZLOOPER1、假设从地址TABLE开始,10个存储单元的内容依次为:05H,01H,09H,0CH,00H,0FH,03H,0BH,08H,0AH依次写出运行以上程序段以后,从地址TABLE开始的10个存储单元的内容。2、简单扼要说明以上程序段的功能。答:1、5 第二章微型计算机指令系统35H31H39H43H30H46H33H42H38H41H2、此程序段的功能是将这些存储单元的数据(十六进制)转化为相应的ASCII码。题2-14用一条或几条8086/8088指令实现以下要求:1、将AL寄存器清零,但进位标志CF不变。2、将AL寄存器和进位标志CF同时清零。3、将进位标志位清零,但AL寄存器内容不变。4、将AL寄存器中内容的第0,2,4,6位取反,其余位不变。5、将AL寄存器中内容的高4位清零,低4位保留。6、将AL寄存器中的带符号数(以补码形式存放)取绝对值后存入CL寄存器。7、统计AX寄存器的内容中‘1’的个数,将统计结果存入CL寄存器。8、两个不压缩的BCD码分别存放在3000H和3001H单元的低4位,高4位均为零。试将两个不压缩的BCD码组合成为一个压缩的BCD码,前者放在低4位,后者放在高4位,存放到3002H单元。例如:初值位:(3000H)=07H,(3001H)=05H要求结果为:(3002H)=57H9、将4000H和4001H单元中的两个ASCII码分别转化成相应的十六进制数,然后共同存放到4002H单元,前者放在低4位,后者放在高4位。例如:初值位:(4000H)=42H=‘B’,(4001H)=36H=‘6’要求结果为:(4002H)=6BH10、将BL寄存器中的无符号数乘128,高位放在BH寄存器,低位放在BL寄存器,要求执行速度尽量快。11、将CL寄存器中的带符号数乘16,高位放在CH寄存器,低位放在CL寄存器,要求执行速度尽量快。12、一个4位十进制数以压缩BCD码的形式存放在偏移地址为DATA和DATA+1的内存单元中,DATA单元存放个位和十位,DATA+1单元存放百位和千位。要求将其转换为相应的ASCII码,存放到以BUFF为首地址的4个内存单元。例如:初值为:(DATA)=47H,(DATA+1)=92H要求结果为:(BUFF)=‘7’,(BUFF+1)=‘4’(BUFF+2)=‘2’,(BUFF+3)=‘9’答:1、MOVAL,02、XORAL,AL3、ANDAL,AL6 第二章微型计算机指令系统4、XORAL,55H5、ANDAL,0FH6、TESTAL,80H;判断是否为负数JNZNEXT;如果是负数则跳转NEXTMOVBL,ALNEXT:NEGAL;负数求补,即绝对值MOVBL,AL7、XORBL,BLMOVCL,0FH;循环次数Circle:SHLAX,1;左移一位,首位移进CF,ROL也可以实现JCNEXT1;判断CF是否为1JMPNEXT2NEXT1:INCBLNEXT2:LOOPCircleMOVCL,BL8、MOVBL,[3000H]MOVAL,[3001H]MOVCL,04HSHLAL,CLADDAL,BLMOV[3002H],AL9、XORAX,AXXORBX,BXMOVAL,[4001H]MOVBL,[4000H]CMPAL,39HJAL1SUBAL,30HX1:CMPBL,39HJAL2SUBBL,30HX2:MOVCL,04HSHLAL,CLADDAL,BLMOV[4002H],ALMOVAH,4CHINT21HL1:SUBAL,37HJMPX1L2:SUBBL,37HJMPX210、XORAX,AXXORBH,BHMOVCL,07H7 第二章微型计算机指令系统SHLBX,CL11、XORAX,AXXORCH,CHMOVAX,CXMOVCL,04HSHLAX,CLMOVCX,AX12、LEASI,DATALEADI,BUFFMOVCL,02HLOAD:MOVAL,[SI]MOVBL,ALANDAL,0FHADDAL,30HMOV[DI],ALINCDIMOVAL,BLPUSHCXMOVCL,04HRORAL,CLPOPCXANDAL,0FHADDAL,30HMOV[DI],ALINCDIINCSILOOPLOAD题2-15假设AL寄存器的内容为FEH,BL寄存器的内容为04H,试问:1、执行MULBL指令后,AX寄存器的内容是什么?标志位OFC和CF的值是什么?2、执行IMULBL指令后,AX寄存器的内容是什么?标志位OFC和CF的值是什么?答:1、AX=3F8H;CF=OF=12、AX=FFF8H;CF=OF=0题2-16假设AX寄存器的内容为0101H,BL寄存器的内容为0AH,试问执行DIVBL指令后,AL寄存器的内容是什么?AH寄存器的内容是什么?答:AL=19H;AH=07H题2-17假设AX寄存器的内容为FFF5H,BL寄存器的内容为FEH,试问执行IDIVBL指令后,AL寄存器的内容是什么?AH寄存器的内容是什么?答:AL=05H;AH=0FFH题2-18已知被减数和减数均为包括6个字节的十六进制数,分别存在首地址为8 第二章微型计算机指令系统DATA1和DATA2的内存区,低位在前,高位在后。试用8086/8088指令编写减法的程序段,要求相减以后得到的结果存放在首地址为DATA3的内存区。答:MOVCX,6MOVSI,0CLDLOOPER:MOVAL,DATA1[SI]SBBAL,DATA2[SI]MOVDATA3[SI],ALINCSIDECCXLOOPLOOPER题2-19如果题2-18中的被减数和减数均为包括包括6个字节的压缩BCD码(相当于12位十进制数),试重新编写减法的程序段。答:MOVCX,6MOVSI,0CLDLOOPER:MOVAL,DATA1[SI]SBBAL,DATA2[SI]DASMOVDATA3[SI],ALINCSIDECCXLOOPLOOPER题2-20有一个数据块中存放了若干8位无符号数,数据块的长度存放在BLOCK单元,数据块本身从BLOCK+1单元开始存放,编写程序段找出数据块中最大的无符号数,存放到MAX单元。答:XORCX,CXMOVCX,[BLOCK]LEASI,BLOCK+1MOVAL,[SI]P1:INCSICMPAL,[SI]JAEP2MOVAL,[SI]P2:DECCXJNZP1LEASI,MAXMOV[SI],AL题2-21以BUFFER为首地址的内存区存放了100个16位带符号数,编写程序段比较它们的大小,找出其中最小的带符号数,存进MIN和MIN+1单元。答:LEASI,BUFFER9 第二章微型计算机指令系统MOVCX,100CLDLODSWMOVMIN,AXDECCXNEXT:LODSWCMPAX,MINJLLESSJMPGOONLESS:MOVMIN,AXGOON:LOOPNEXT题2-22两个字符串的长度均为100,首地址分别为STRING1和STRING2,比较两个字符串是否完全相同,如果相同,将BL寄存器置为00H;如果不完全相同,将BL寄存器置为FFH,并将第一个字符串中的第一个不相同字符的地址放在SI寄存器。答:LEASI,STRING1LEADI,STRING2MOVCX,100CLDREPECMPSBJCXZMATCHDECSIMOVBL,FFHMATCH:MOVBL,OOH题2-23一个数据块的首地址为DATA,结束符为‘$’,编写程序段统计数据块中分别等于正值、负值和零的数据个数,分别存入PLUS、MINUS和ZERO单元。答:XORAL,ALMOVPLUS,ALMOVMINUS,ALMOVZERO,ALLEASI,DATACLDCHECK:LODSBORAL,ALJSX1JZX2CMPAL,24H;“$”的ASCII码是24HJNZX3JMPENDX1:INCMINUSJMPCHECKX2:INCZERO10 第二章微型计算机指令系统JMPCHECKX3:INCPLUSJMPCHECKEND:…;后续处理程序………11 第三章汇编程序设计第三章汇编程序设计题3-1分别说明以下各个变量占有多少内存单元,以及各内存单元的内容(用十六进制表示)。1、DATADB1,2,3,4,"1234",-5,-128,0FFH,"0FFH"2、EXPDB51+4*63、NUMDW0,65535,"20",100,40/2-"A"4、DWORDDD12,-3,0ABCDH,3*7+155、ALPHADB"?"6、BETADW?,?7、TABLEDB5DUP(4DUP(9),3DUP(8),6,0)8、BUFFDW10DUP(2,-2,6DUP(?))答:1、15个内存单元。内容分别为:01H,02H,03H,04H,31H,32H,33H,34H,FBH,80H,FFH,30H,46H,46H,48H。2、1个内存单元。内容分别为:4BH。3、10个内存单元。内容分别为:00H,00H,FFH,FFH,30H,32H,64H,00H,D3H,FFH。4、16个内存单元。内容分别为:0CH,00H,00H,00H,FDH,FFH,FFH,FFH,CDH,ABH,00H,00H,24H,00H,00H,00H。5、1个内存单元。内容分别为:3FH。6、4个内存单元。内容分别为:没有赋予特定的内容。7、45个内存单元。为5组重复的内容,每组9个,内容分别为:09H,09H,09H,09H,08H,08H,08H,06H,00H。8、160个内存单元。为10组重复的内容,每组16个,内容分别为:02H,00H,FEH,FFH,然后有12个没有赋予特定内容的单元。题3-2假设有以下的符号定义伪操作:DATA1EQU19HDATA2EQU-1DATA3EQU"A"如果随后分别执行以下指令,试说明有关寄存器的内容(用十六进制表示)。1、MOVAL,DATA1*DATA2+DATA32、MOVBL,DATA1/DATA2-DATA33、MOVCL,DATA3MODDATA24、MOVDL,DATA1ANDDATA35、MOVAH,DATA1ORDATA2XORDATA36、MOVAX,DATA1LEDATA27、MOVBX,DATA3GTDATA1答:1、(AL)=28H2、(BL)=A6H3、(CL)=0FH4、(DL)=01H5、(AH)=BEH6、(AX)=0000H7、(BX)=FFFFH1 第三章汇编程序设计题3-3假设有以下数据定义伪操作:BUFF1DB"WXYZ"BUFF2DB10DUP(?)BUFF3DW50DUP(?)BUFF4DD100DUP(?)如果随后分别执行以下指令,试说明有关寄存器的内容。1、MOVSI,BUFF12、MOVDI,OFFSETBUFF13、MOVAL,TYPEBUFF24、MOVAH,TYPEBUFF35、MOVBL,LENGTHBUFF26、MOVBH,LENGTHBUFF37、MOVCL,SIZEBUFF28、MOVCH,SIZEBUFF39、MOVDL,TYPEBUFF410、MOVDH,SIZEBUFF4答:1、(SI)="XW"2、(DI)为变量BUFF1的偏移地址3、(AL)=14、(AH)=25、(BL)=106、(BH)=507、(CL)=108、(CH)=1009、(DL)=410、(DH)=400题3-4编写程序段从键盘接受一个字符,如为‘Y’,跳转到标号YES;如为‘N’,跳转到标号‘NO’。如果键入的字符既不是‘Y’,也不是‘N’,则等待重新键入。要求对键入的大写字母和小写字母同样处理。答:MAIN:…...KEY:MOVAH,1INT21HCMPAL,"Y"JEYESCMPAL,"y"JEYESCMPAL,"N"JENOCMPAL,"n"JENOJMPKEYYES:……2 第三章汇编程序设计NO:……题3-5试编写完整的汇编语言程序,实现两个5位十进制数的加法。例如计算48721+60395=?要求被加数和加数均以ASCII码表示,相加所得的和也以ASCII码表示。同时应考虑两个5位十进制数相加时,所得的和可能有6位。答:COUNTEQU05HDATASEGMENTFIRSTDB"12784"SECONDDB"59306"SUMDB6DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSI,OFFSETFIRSTMOVDI,OFFSETSUMMOVBX,OFFSETSECONDMOVCX,COUNTCLDADDASC:LODSFIRSTMOVAH,[BX]ADCAL,[BX]AAASTOSSUMINCBXLOOPADDASCMOVAL,30HADCAL,0STOSBMOVSI,OFFSETSUMMOVDI,OFFSETSUMMOVCX,COUNTGETASC:LODSSUMORAL,30HSTOSSUMLOOPGETASCMOVAH,4CHINT21HCODEENDSENDSTART3 第三章汇编程序设计题3-6试编写完整的汇编语言程序,实现两个以下乘法运算,被乘数5位十进制数,乘数为1位十进制数,例如计算30816*6=?被乘数和乘数均以ASCII码形式存放。要求乘积也以ASCII码形式存放。答:COUNTEQU05HDATASEGMENTDATA1DB"61803"DATA2DB"6"RESULTDB6DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSI,OFFSETDATA1MOVDI,OFFSETRESULTMOVBL,DATA2ANDBL,0FHMOVCX,COUNTCLDMULBCD:LODSDATA1SUBAL,30HMULBLAAMADDAX,[DI]AAAMOV[DI],AXINCDILOOPMULBCDMOVCX,COUNT+1MOVSI,OFFSETRESULTMOVDI,OFFSETRESULTGETASC:LODSRESULTORAL,30HSTOSBLOOPGETASCMOVAH,4CHINT21HCODEENDSENDSTART题3-7首地址为STRING的内存存放了一个由数字‘0’~‘9’,英文大写字母‘A’~‘Z’以及英文小写字母‘a’~‘z’组成的ASCII字符串,字符串的结4 第三章汇编程序设计束符为CR(即回车符,其ASCII码为0DH),字符串总长度不超过256个。要求编写完整的汇编语言程序,将字符串传送到首地址为BUFFER的另一内存区,遇到结束符CR即停止传送,并要求统计传送的字符总数以及其中的英文大写字母的数目,分别存入SUM单元和CAPITAL单元。答:DATASEGMENTSUMDB00HCAPITALDB00HSTRINGDB"12ABCDas",0DHBUFFERDB256DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXMOVSI,OFFSETSTRINGMOVDI,OFFSETBUFFERCLDSECH:LODSSTRINGSTOSBINCSUMCMPAL,0DHJEDONECMPAL,41HJLSECHCMPAL,5AHJGSECHINCCAPITALJMPSECHDONE:MOVAH,4CHINT21HCODEENDSENDSTART注:SUM中包含回车符。题3-8程序中多次要求将某两个8位寄存器或内存单元中的无符号数相乘,并将得到的乘积放在某个16位寄存器或存储单元中,要求:1、定义一个宏指令。2、假设进行以下两次宏调用,写出宏调用和宏扩展的结果。(1)将BL和CL寄存器的内容相乘,乘积放在DX寄存器。(2)将CH寄存器和DATA存储单元的内容相乘,乘积放在存储单元BUFFER和BUFFER+1。答:1、MULTIPYMACROOPR1,OPR2,RESULTPUSHAX5 第三章汇编程序设计MOVAL,OPR1MULOPR2MOVRESULT,AXPOPAXENDM2、(1)MULTIPYBL,CL,DX+PUSHAX+MOVAL,BL+MULCL+MOVDX,AX+POPAX(2)MULTIPYBH,DATA,BUFFER+PUSHAX+MOVAL,BH+MULDATA+MOVBUFFER,AX+POPAX6 第四章半导体存储器第四章半导体存储器题4-1从下列各小题得四个选项中选出一个正确的,将编号填入相应的括号内:1、以下存储器,其中(②)是EPROM只读存储器。①6264②2716③2816④21642、在某台计算机内部,以下存储器中,(④)是计算机的内存。①CD-ROM②3.5寸软磁盘③使用EPROM的电子盘④168引脚的32MB存储条3、2764是8KB的EPROM,其地址线和数据线分别是(③)根。①3,4②13,4③13,8④8,84、2164芯片是64KB的动态存储器,其地址线和数据线分别为(④)根(注意:同一位数据线输入和输出是分开的,算作一根数据线)。①64,8②8,8③16,1④8,15、以下存储器中,(③)需要刷新。①2764②62256③2164④28166、指出以下存储器中,(①)需要通过紫外线擦除器擦除。①27256②62256③2816④21647、某72个引脚的内存条,其数据线引脚为32根,内存条上的动态存储器为2M×36共4片,故计算机内存总容量为(①)MB,且具有奇偶校验位。①32②16③64④88、某168个引脚的内存条,其数据线引脚为64根,内存条上的动态存储器为4M×64共8片,故计算机内存总容量为(②)MB,不具有奇偶校验位。①128②256③64④329、用DEBUG的D0;03FF命令查看的内存,其容量为(③)。①400②1000③1024④1023题4-2将正确内容填入括号:1、DRAM需要刷新的原因是因为DRAM靠(电容)存储电荷,如果不刷新,会因为漏电而失去存储的信息。2、存储器是指地址范围为0~9FFFFH的(640)KB的内存。3、模式下的存储器地址范围是(00000)~(FFFFF)H的1MB内存。4、EPROM存储器靠(紫外线)照射,可擦除原有内容,使每个单元内容为(FF)H。5、电子盘是用大容量存储器,按磁盘格式组成的外存储器,如果用DiskonChip(FlashROM)芯片,其容量最大为(288)MB。6、2816或2864是(EEPROM)类型的只读存储器,它可用于系统参数的在线修改。1 第四章半导体存储器7、存储器片选引脚,国际上都设计为(288)电平有效。8、动态存储器的片选信号为(RAS)和(CAS)。9、IBM-PC的存储器读控制信号为(MEMR),写控制信号(MEMW)。10、常用的EPROM型号对应的容量是:2732(4)KB2764(8)KB27128(16)KB27256(32)KB27512(64)KB27C040(512)KB题4-3主存储器,内存保留区的含义;常规内存,扩展内存,高位内存的含义是什么?答:不管是8088还是286以上的微机,为了保持兼容性,仍然把物理地址范围在00000H~9FFFFH的640KB内存成为主存储器,而把A0000H~FFFFFH的384KB内存叫内存保留区,留给视频适配器和ROM-BIOS使用。地址在100000H以上的存储器称为扩展存储器,也叫XMS。以80286为例(书上P255),在内存保留区内,地址0A0000~0BFFFFH是显示缓冲区。从0C0000H~0FFFFFH共256MB是系统的ROM区,前128KB供I/O通道中扩展到ROM用,最后的64KB(0F0000~0FFFFFH)是系统板上的基本ROM区,存放BIOS等程序。从100000H~FDFFFFH共14.872MB用于支持多用户系统,这部分内存是由用户插入扩展卡后增大存储空间的。最后的128KB(FE0000~FFFFFFH)是被用来复制0E0000~0FFFFFH空间的机器代码的。题4-4Windows98应用程序可以访问多少内存空间?Windows2000与WindowsXP应用程序又可以访问多少内存空间?答:(书上P268)Windows应用程序最多可以访问32位的线性内存空间,从0H~FFFFFFFFH共4GB。操作系统对内存按页管理,每页长1000H,这样内存就有100000H页。因采用不同的Windows操作系统,其应用程序可访问的内存空间从2GB不等。其中,Windows98的应用程序可以占用整个4GB内存空间,而Windows2000和WindowsXP的应用程序只占用0~7FFFFFFFH这2GB内存空间。2 第四章半导体存储器题4-5双口RAM有什么用途?它的特点是什么?答:双端口RAM用于高速共享数据缓冲器系统中;特点是:两个端口都可以独立读/写的静态存储器,实际上它是作为双CPU系统的公共全局存储器来使用的,例如可用于多机系统通信缓冲器,DSP系统和高速磁盘控制器等。题4-6串行EEPROM有什么优点?答:EEPROM的典型优点是非挥发性、可字节擦除、编程速度快(一般小于10ms)。对EEPROM编程无需将EEPROM从系统中移出,从而使存储和刷新数据(或编程)非常方便、有效、可行。EEPROM还使得通过无线电或导线进行远距离编程成为可能,消除了EPROM的紫外光擦除窗口,封装成本低,而且测试简单。串行EEPROM的优点是管脚少、使用方便。题4-7闪存有什么用途?其特点是什么?答:闪速存储器(FlashMemory)是一类非易失性存储器,即使在电源关闭后仍能保持片内信息;与EPROM相比较,闪存具有明显的优势,即在系统中电可擦除和可重复编程,而不需要特殊的高电压;与EEPROM相比较,闪存具有成本低,密度大的特点。其独特的性能使其广泛运用于各个领域,包括嵌入式系统,如PC及外设,电信交换机,蜂窝电话,网络互联设备,仪器仪表和汽车器件,同时还包括新兴的语音,图像,数据存储类产品,如数码相机,数字录音机和个人数字处理(PDA)。题4-8在题图4-8中,8031CPU外部扩展EPROM,有1片27128和1片2764,其P2,7引脚相当于A15,请说明这两片存储器的地址范围(包括地址重叠区)。3 第四章半导体存储器答:27128的地址范围为0~3FFFH,地址重叠区为4000H~7FFFH;2764的地址范围为8000H~9FFFH,地址重叠区为A000H~BFFFH,C000H~DFFFH,E000H~FFFFH。题4-9在题图4-9中,利用74LS138同时扩展1片EPROM2764和1片SRAM6264,请分析这两片存储器的地址范围。答:2764的地址范围是0~1FFFH,6264的地址范围是8000H~9FFFH,没有地址重叠区。题4-10在教材图4.33中,改用74LS138译码器代替74LS30,画出连线图,仍4 第四章半导体存储器然使用SRAM6116A的地址范围为A0000H~A07FFH。答:略题4-11在教材4.34中,将A19经过非门连接G1,请分析这时Y0~Y7对应的存储器地址范围。答:略题4-12在题图4-12中,说明所连接的存储器SRAM62256的地址范围。答:62256为32KB的SRAM,片内需要15根地址线,因为74LS138采用Y7译码输出端,故62256的地址范围为38000H~3FFFFH。5 第五章数字量输入输出第五章数字量输入输出题5-1什么叫I/O端口?典型的I/O接口包括哪几类I/O端口?答:对于可编程的通用接口芯片,其内部往往有多个可寻址读写的寄存器,称之为端口。端口有宽度,一般以字节为单位来组织。端口有自己的地址(端口地址),CPU用地址对每个端口进行读写操作。主机和外设之间的信息交换都是通过操作接口电路的I/O端口来实现的。根据端口接收和输出的信息不同,可将端口分为三类:数据端口、状态端口和控制端口。题5-2计算机I/O端口编址有几种不同方式?简述各自的主要优缺点。答:在微型计算机系统中常用两种I/O编址方式:存储器映像编址和I/O端口单独编址。存储器映像编址的优点是:无须专用的I/O指令及专用的I/O控制信号也能完成;且由于CPU对存储器数据的处理指令非常丰富,现可全部用于I/O操作,使I/O的功能更加灵活。I/O单独编址的优点是:I/O端口分别编址,各自都有完整的地址空间;因为I/O地址一般都小于存储器地址,所以I/O指令可以比存储器访问指令更短小,执行起来更快;而且专用的I/O指令在程序清单中,使I/O操作非常明晰。题5-3用简洁的语言叙述直接存储器访问(DMA)方式的本质特征。答:外部设备不经过CPU直接对存储器进行访问的一种数据传送模式。利用系统总线,由外设直接对存储器进行读出或写入,以最大限度提高存储器与外部设备之间的数据传输率。题5-4在8086/8088CPU执行指令过程中,4个系统总线控制信号MEMR、MEMW、IOR和IOW在一个总线周期内可能一个以上有效吗?在DMA传送过程中又有可能吗?请说明原因。答:在CPU执行指令过程中不会,在DMA传送过程中会。在CPU控制的一个总线周期内,MEMR、MEMW、IOR和IOW4个信号都需要地址总线指定一个I/O端口或一个存储器单元来进行读或写操作,因此它们中只能一个有效。而DMA传送在一个总线周期内要完成读写两种操作。题5-5PC/XT主板上的I/O地址译码电路如题图5-5所示。根据此图回答下列问题:1、控制信号AEN的名称是什么?AEN在此起什么作用?2、若用户自己开发的接口选用I/O地址为400H会产生什么问题?3、说明信号IOW在此处的作用1 第五章数字量输入输出答:1、AEN在此限制地址译码电路只在CPU执行指令时起作用(不会在DMA传送时,错将存储器地址当成I/O地址译码)2、译码电路是不完全译码,有地址重叠,400H地址是本译码电路Y0输出端的重叠区。3、IOW在此限制译码输出端选中只写端口。题5-680X86系统输入/输出接口如题图5-6所示。Y230H是I/O地址译码输出信号。当系统总线上的I/O地址为230H时,译码输出有效的低电平。IOR、IOW是低电平有效的控制总线信号,DB0是系统数据总线的最低位。现CPU连续执行了下列指令:MOVDX,230HXORAL,ALNOTALOUTDX,ALINAL,DX1、执行上面的OUT指令时,图中IOR和IOW哪个有效?DB0=?2、请具体分析全部指令执行后,AL的最低位D0=?2 第五章数字量输入输出答:1、IOW信号有效,DB0=1。2、最后AL的D0=0。题5-780X86CPU在中断发生时首先要获得中断类型号,有几种获得中断类型号的方法?请分别举例说明。答:1、从中断管理电路获得,如INTR引起的外部中断,在第二个中断响应周期中,中断管理电路将中断源的类型号送到数据总线上共CPU读取。2、由CPU内部获得,如NMI中断被响应时,CPU自动产生类型号为2的中断,转入相应的服务程序。题5-8若当前CPU正在对某一外部中断请求IRQm服务,而外部又有两个外部中断信号IRQn和IRQi同时有效,试说明的请求马上得到响应的条件是什么(0<=(m、n、i)<=7)?答:1、CPU当前开中断;2、IRQi的优先级同时大于IRQn和IRQm。题5-9PC/XT从00020H开始的一段内存地址及其内容对应如下所列(十六进指数):地址(H):20,21,22,23,24,25,26,27,28,29,2A,2B内容(H):3C,00,86,0E,45,00,88,0E,26,00,8E,0E1、外部可屏蔽中断IRQ2的中断矢(向)量地址是多少?2、IRQ2的中断服务程序入口地址是多少,用物理地址回答。答:1、IRQ2的中断类型号为0AH,矢量地址为28H。2、中断服务程序的入口地址为0E8EH:0026H=0E906H。题5-1080X86CPU每一次中断响应发出两个响应信号INTA各起什么作用?答:第一个INTA信号表示中断请求已被响应;第二个INTA信号通知中断控制逻辑将中断3 第五章数字量输入输出类型号发送到数据线上,同时清除中断请求。题5-11若用户要使用系统的IRQ7,其中断服务程序的入口地址为2000:0100H,如何安装中断矢量(不包括保护原矢量)。答:PUSHDSMOVAX,2000HMOVDS,AXMOVDX,100HMOVAH,25HMOVAL,0FHINT21HPOPDS题5-12可编程计数/定时电路8253的控制字可以设定一种‘数值锁存操作’。这种操作又何必要?答:读计数器的当前值时,先读低字节、后读高字节。由于计数器并未停止计数,有可能在先后读高低字节的两条指令之间,计数器的值已发生变化。为避免这种错误,在读数前先对计数器写一个D5D4=00的控制字,把计数器的当前值锁存到16位的输出锁存器中。此后计数器照常计数,但锁存器的值不跟着变。待CPU将锁存器中的两字节都先后读完,锁存器的内容自动又随计数器变化。题5-13可编程计数器8253的级连是何意思,什么时候会用到级连?答:级连(又称为串联)是指一个计数器的输出作为另一个计数器的输入。当计时间隔大于大于单通道最大的计时间隔时,常常用8253的级联提高计时间隔。题5-148253的片选信号如题图5-14连接。1、列出8253内各计数器及控制字的一组地址。2、现有1MHz方波,欲利用这片8253产生1KHz方波。请简单说明如何实现(说明利用的计数器、工作方式及计数初值),并写出对8253编程的有关内容。答:1、计数器0的地址为3B0H,计数器1的地址为3B1H,计数器2的地址为3B2H,控制字寄存器的地址为3B3H。2、对1MHz方波分频即可产生1KHz方波,选择计数器0,工作在方式3,计数初值为1000。MOVDX,3B3H4 第五章数字量输入输出MOVAL,00110110BOUTDX,ALMOVDX,3B0HMOVAX,1000OUTDX,ALMOVAL,AHOUTDX,AL题5-15举例说明计算机异步串行通信中奇偶校验的原理。答:奇偶校验位将每个传送字符中为‘1’的位数凑成奇数个或偶数个,供接受方进行奇偶检查。比如:采用奇校验,数据为10110001B,数据中‘1’的个数为4个,则奇偶校验位的值为‘1’。题5-16从下列各小题中选择正确答案:1、8255在RESET复位以后:(1)A、B、C三个端口全置成输出方式。(2)三个端口全置成输入方式。(3)三个端口方式不定,待用方式控制字设定。2、初始化编程时,欲将8255A口设置成方式1输入、B口设置成方式0输出:(1)应对A、B、C三个端口各写一个字节的控制字。(2)对A组、B组各写一个字节的控制字。(3)三个端口合写一个控制字。答:1、(2)2、(3)题5-17现有一片8255A如题图5-17连接,设其在系统中所分配的I/O地址为200H~203H,开关K0~K3闭合,其余开路,执行完下列程序之后,请指出:1、A口和B口各工作于什么方式?各是输入还是输出?2、指出各个发光二极管LED的发光状态?MOVAL,99HMOVDX,203HOUTDX,ALMOVDX,200HINAL,DXXORAL,0FHMOVDX,201HOUTDX,AL5 第五章数字量输入输出答:1、A口方式0输入,B口方式0输出。2、各个发光二极管LED全灭。题5-18从下列各小题中选择正确答案:在DMA传送中,地址总线上出现的是:(1)被访问的一个存储器单元的地址。(2)被访问的一个I/O端口的地址。(3)分时出现被访问的存储器单元和I/O端口的地址。答:略6 第六章模拟量输入输出第六章模拟量输入输出题6-1模拟量输入通道通常由哪几部分组成?各部分在数据采集系统中起什么作用?答:典型的模拟量输入通道由以下五部分组成:传感器、信号处理环节、多路转换开关、采样保持器和A/D转换器。传感器:能够把生产过程的非电物理量转换成电量,有些研究部门和生产厂家已研究生产出各种变送器,将传感器输出的微弱电信号或电阻值等非电量转换成统一电流信号或电压信号。信号处理环节:一方面,将传感器输出的信号放大或处理成与A/D转换器所要求的输入相适应的电压水平。另一方面,传感器与现场信号相连接,处于恶劣工作环境,其输出叠加有干扰信号,因此信号处理用于去除干扰信号。多路转换开关:要监测或控制的模拟量往往不只一个,为了节约投资,可以用多路模拟开关,使多个模拟信号公用一个A/D转换器进行采样和转换。采样保持器:在A/D进行转换期间,保持采样输入信号的大小不变。A/D转换器:将模拟输入量转换成数字量,以便由计算机读取,进行分析处理。题6-2模拟量的输出通道通常由哪几部分组成?各部分的作用如何?答:典型的模拟量输出通道由以下三部分组成:锁存器、D/A转换器、放大驱动。锁存器:计算机输出的数据在总线上稳定的时间很短,用锁存器保持数字量的稳定。D/A转换器:把计算机输出的数字量转换成模拟量。放大驱动:提高驱动能力,用于驱动外设。题6-3D/A转换器的转换精度是指什么?若有一片10位DAC芯片,其最大输入电压为5V,它能分辨出的最小输出电压是多少?答:精度表明D/A转换的精确程度。它可分为绝对精度和相对精度。绝对精度是指对应于给定的满刻度数字量,D/A实际输出与理论值之间的误差。该误差是由于D/A的增益误差、零点误差和噪声等引起的。相对精度是指在满刻度已校准的情况下,在整个刻度范围内对应于任一数码的模拟量输出与理论值之差。能分辨出的最小输出电压为5/1024=4.9mv。题6-4已知DAC0832芯片的最大输出电压为5V,1、若其最小位变化一个二进制数位,对应的电压变化是多少?2、若已知输入的数据为0B5H,试计算其输出电压应为多少?答:1、DAC0832芯片为8位D/A转换器,则分辨率为8位,最小位变化一个二进制数位,对应的电压变化为5/255=19.61mv。2、输入的数据为0B5H=181,其输出电压为5*181/255=3.549v。题6-5画出DAC0832与8088双缓冲方式的接口逻辑框图(端口地址为220H和221H),并写出产生锯齿波的程序。答:1、1 第六章模拟量输入输出2、程序如下所写:MOVDX,220HMOVAL,0FFHINCALOUTDX,ALCALLDELAYK:INCDXOUTDX,ALCALLDELAY;调延时子程序DECDXJMPKDELAY:MOVCX,DATA;设时间常数LOOPDELAYRET题6-6DAC0832与8位CPU接口的连接逻辑图如题图6-6所示,试判断DAC0832工作在何种方式?如果想要在示波器上显示锯齿波,请编写有关程序。2 第六章模拟量输入输出答:1、DAC0832工作在单缓冲工作方式。2、程序如下所写:MOVDX,PORTA;设置端口地址MOVAL,0FFH;设初值K:INCALOUTDX,AL;往DAC0832端口输入数据CALLDELAY;调延时子程序JMPKDELAY:MOVCX,DATA;设时间常数LOOPDELAYRET题6-7关于DAC1210芯片的工作原理,请回答以下问题:1、为什么DAC1210芯片内部有两级输入寄存器?这3组寄存器起什么作用?2、为什么第一级输入寄存器要分为8位和4位两组,而它们的选通信号又都用同一个LE1?把它们设计成一组12位的输入寄存器可以么?有何优缺点?3、请设计一个DAC1210与8088CPU接口的连接示意图(采用双缓冲方式)。4、请设计一个DAC1210与12位CPU接口的连接示意图(采用单缓冲方式)。答:1、(1)为了和8位微处理器机接口,一个12位的数据要分两次写入,那么D/A转换器就有一个中间值,这是不允许的。为了消除中间值,必须使D/A转换器的所有输入位同时接受信息。第二级的存在消除了中间值。(2)先把低8位数字量送入8位暂存的锁存器,由于4位和8位的锁存器的地址相同,因此第二次送高4位数字量时,同时选通低8位的锁存器,从而12位的数字量同时送给12位D/A转换器。2、(1)第一级输入寄存器要分为8位和4位两组是为了和8位微处理器机接口,可3 第六章模拟量输入输出以用8位数据线传送数据,它们的选通信号相同,可以把12位数据同时送给12位的寄存器。(2)若将其设计为12位的输入寄存器,与8位微处理器机接口时,必须要外扩数据锁存器。3、4、4 第六章模拟量输入输出题6-8试比较积分型的A/D转换器与逐次逼近式的A/D转换器二者的优缺点。答:1、积分型的A/D转换器的优点是对常态干扰(串模干扰)有很强的抑制作用,精度高;缺点是转换速度比较慢、转换时间不固定。2、逐次逼近式A/D转换器的优点是转换速度较快,转换时间固定,不随输入信号的变化而变化;缺点是抗干扰能力相对积分型的差。题6-9A/D转换器的主要技术参数有哪几个?它们的物理意义各是什么?答:1、分辨率:反映A/D转换器对输入微小变化响应的能力,通常用数字输出最低位(LSB)所对应的模拟输入的电平值表示。2、精度:有绝对精度和相对精度两种表示方法。(1)绝对精度:是指对应于给定的满刻度数字量,D/A实际输出与理论值之间的误差。该误差是由于D/A的增益误差、零点误差和噪声等引起的。(2)相对精度:是指在满刻度已校准的情况下,在整个刻度范围内对应于任一数码的模拟量输出与理论值之差。3、转换时间:是指完成一次A/D转换所需的时间,即由发出启动转换命令信号到转换结束信号开始有效的时间间隔。4、电源灵敏度:是指A/D转换芯片的供电电源的电压发生变化时,产生的转换误差。5、量程:是指所能转换的模拟输入电压范围,分单极性、双极性两种类型。6、输出逻辑电平:多数A/D转换器的输出电平与TTL电平兼容。在考虑数字量输出与微处理器的数据总线接口时,应注意是否要三态逻辑输出,是否要对数据进行锁存等。7、工作温度范围:由于温度会对比较器、运算放大器、电阻网络等产生影响,故只在一定的温度范围内才能保证额定精度标准。题6-10以8位逐次逼近式的A/D转换器为例,说明它的工作原理,并回答以下问题:1、为什么逐次逼近式的A/D转换器比积分式的A/D转换器的转换时间短?A/D转换器的转换时间的实际含义是什么?2、A/D转换器的分辨率用什么表示?其物理意义是什么?答:1、逐次逼近式A/D转换器是利用比较器从高位到低位依次进行试探比较,速度比较快;积分式的A/D转换器把输入电压转换为与其平均值成正比的时间间隔,同时把此间隔转换为数字,需要时间比较长。转换时间也表示A/D转换器的速度,它决定了可以采样信号的最高频率。2、分辨率通常用数字输出最低位(LSB)所对应的模拟输入的电平值表示,它反映A/D转换器对输入微小变化响应的能力。题6-11已知ADC0809的时钟频率为640kHz,为了简化电路,一般采用500kHz,现有单片机与其接口,单片机的主频为4MHz,现拟利用双D触发器74LS74将4MHz分频得到ADC0809所需的CLOCk信号,试问:1、需要几片74LS74?2、74LS74的逻辑引脚图如题图6-11所示,请画出其正确的分频电路,并将其输出注明至CLOCK信号。5 第六章模拟量输入输出答:1、由4M/500k=4知,需要八分频。需要4个D触发器,即需要两片4LS74。题6-12若ADC0809A/D转换器与Intel8088CPU通过Intel8255接口,设8255的PB为数据口,PA,PC为控制口。将8路输入模拟量顺序从IN0~IN7转换成数字量,并顺序地放于内存中。1、画出ADC0809通过Intel8255与Intel8088CPU接口的框图。2、画出实现以上数据采集的流程图,并用汇编语言编写程序。答:1、6 第六章模拟量输入输出2、MOVAL,92HMOVDX,83HOUTDX,ALMOVAX,DATA1MOVDS,AXMOVSI,2000H;存储区的地址MOVBL,8;循环的次数MOVDX,88H;从IN0开始转换LOP1:INAL,DXPUSHDXMOVDX,80HLOP2:INAL,DX;读A口的内容TESTAL,01H;检测EOC,判断是否转换完毕JZLOP2MOVDX,81HINAL,DX;读B口的内容MOV[SI],AL;存入缓冲区INCSIPOPDXINCDXDECBLJNZLOP1HLT题6-13V/F转换器与A/D转换器相比有何特点,为何说它可适用于电磁干扰严重的工作环境?7 第六章模拟量输入输出答:1、V/F转换器的主要特点:(1)V/F转换器的最大特点使单路脉冲输出:便于实现数字量的光电隔离,可用于强电磁干扰的应用场合。(2)线性度好、工作频率高。(3)对工频干扰有一定抑制作用。(4)灵活的输入配置:允许输入电压或电流有一个宽的变化范围。(5)可选择单极性、双极性或差分V/F转换器转换器。2、V/F转换器本身就是一个积分过程,且用V/F转换器实现A/D转换,就是频率技术过程,相当于在计数时间内对频率信号进行积分,因而具有较强的抗干扰能力,另外可采用光电耦合连接V/F转换器与计算机之间的通道,实现光电隔离。所以可以用于电磁干扰严重的工作环境。题6-14在图6.29所示的多路模拟量共享A/D转换器和D/A转换器的电路中,若模拟量输入和输出各有8路,今要选择模拟多路开关,请回答以下问题:1、对于8路模拟量输入电路,选哪种多路开关合适?2、对于8路模拟量输出电路,应选择哪种型号的多路开关?答:1、应选择由多到一的模拟多路开关,例如AD7501,AD7503即可。当然选择由多到一和由一到多的双向开关也可用。2、必须选由一到多的模拟多路开关,例如:CD4015B。题6-15已知八选一模拟多路开关集成芯片AD7501的真值表如表6.6所示,若由EN和三条地址线A0、A1、A2的状态来依次选择8个模拟通道,如题图6-15所示,请编写相应的程序段。8 第六章模拟量输入输出答:MAIN:MOVDX,200HMOVCX,08HK:MOVDX,00HCALLDELAYINCDXLOOPKSJMPMAIN题6-16采样保持器在数据采集系统中起什么作用?对于什么类型的模拟量,不需采样保持器?答:1、A/D转换器完成一次完整的转换过程是需要时间的,如果在转换过程中模拟信号有较大的变化将会引起转换误差,采样保持器的作用是在A/D进行转换期间,保持采样输入信号大小不变。9 第六章模拟量输入输出2、为了满足A/D转换精度的要求,希望在转换时间内,最大信号变化幅度应小于A/D转换器的量化误差。也可以说,对于变化较缓慢的模拟信号,可以不用采样保持器。题6-17以LF398采样保持器为例,简述采样保持器的工作原理。选择保持电容器应考虑什么因素?答:1、采样保持电路有两种工作模式:采样模式和保持模式。当控制信号(8脚)大于1.4V并且参考电压(7脚)接地时,LF398处于采样期间,模式控制开关闭合,通过开关对电容快速充电,采样保持器的输出随输入变化。当控制信号(8脚)和参考电压(7脚)都接地时,LF398处于保持期间,模式控制开关断开,由于输出运放的输入阻抗高,理想情况下,电容器将保持充电时的最高值,处于保持状态。2、电容值的选择应综合考虑精度、采样频率、下降误差、采样/保持偏差等参数。题6-18已知陶瓷封装的12位A/D转换芯片AD574AKD,其线性误差如表6.3所示,转换时间Te=25微秒,如果用它直接采集一个每秒正、负变化20次的交变模拟信号AI的波形,数据采集系统的组成框图如题图6-18所示,请回答如下问题:1、图6-18的电路中,80C196单片机能否正确采集AI的波形?2、若要求以上电路转换结果的误差小于等于A/D转换器的线性误差,则模拟信号AI的变化频率必须限于多大的范围内?3、若想要采集一路市电的交流电压信号,需对以上电路进行哪些改进?有几种途径可以满足正确采集市电的交流电压信号的要求?答:1、可以正确采集AI的波形。A/D转换芯片的频率是40kHz,一个周期可以采样2000点。2、要想误差小于A/D转换器的线性误差,模拟信号的变化频率要小于0.77Hz3、要想采集市电信号,要在A/D转换芯片和传感器之间,添加采样保持器。其他的途径比如选用速度更快的A/D转换芯片;将交流信号转化为直流信号,再对直流信号进行采样。题6-19采样定理的内容是什么?有何重要意义?若被采样的信号为50Hz的正弦交流信号,含有高次谐波,今需利用傅氏变换分析该该交流信号含有1~32次谐波的含量,试问:10 第六章模拟量输入输出1、每周波至少应采多少点,才能分析出32次谐波?2、采样频率至少应为多少千赫?答:采样定理的内容是:只要采样频率以高于两倍的信号最高频率进行采样,那么用采样所得的序列可以恢复原始信号。它的意义是:指明了在怎样的采样频率下,才能使采样后所得的序列包含原始信号的所有信息,为连续信号离散化提供了理论依据。1、由采样定理得,采样频率至少为最高频率的两倍。每周波应采32*2=64点。2、采样频率为50*64=3200Hz,即为3.2千赫。11 file:///C|/Users/Triangle/Desktop/答案/勘误表.txt第2页倒数第九行,把‘5.第五代(1993年后)64位高档微处理器’中的‘高档’去掉第51页第十一行,习题1-12(6)-128改为-127第137页倒数第四行,把‘MOVAX,4CH’改为‘MOVAH,4CH’第158页倒数第四行,把"CS、DS、DS或SS""CS、DS、ES或SS"第159页第十四行,把‘MOVDA,AX’改为‘MOVDS,AX’第270页题4-10、题4-11,题目有错。file:///C|/Users/Triangle/Desktop/答案/勘误表.txt[2011/2/720:17:00]'