微机原理及接口技术李干林-习题参考解答_第1页
微机原理及接口技术李干林-习题参考解答_第2页
微机原理及接口技术李干林-习题参考解答_第3页
微机原理及接口技术李干林-习题参考解答_第4页
微机原理及接口技术李干林-习题参考解答_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

微机原理及接口技术李干林—习题参考解答习题参考解答1.1什么是微处理器、微型计算机、微型计算机系统?参考答案:将运算器和控制器集成在一块大规模集成电路芯片上作为中央处理部件,简称为微处理器;以微处理器为核心,再配上存储器、接口电路等芯片,构成微型计算机;微型计算机系统由硬件和软件系统两大部分组成:(1)硬件系统由微型计算机和外设组成的计算机实体;(2)软件系统是指为微型计算机运行的全部技术资料和各种程序,由系统软件和应用软件构成。1.2什么是微型计算机的三种总线?参考答案:系统总线包含有三种不同功能的总线,即数据总线DB(DataBus)、地址总线AB(AddressBus)和控制总线CB(ControlBus)。

“数据总线DB”用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。

“地址总线AB”是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的。“控制总线CB”用来传送控制信号和时序信号。1.3评估微型计算机的主要技术指标有哪些?参考答案:评估微型计算机的主要技术指标有:⑴CPU的字长,决定计算机内部一次可以处理的二进制代码的位数;⑵内存储器容量与速度,内存储器容量是衡量它存储二进制信息量大小的一个重要指标,内存储器的速度用存取周期来衡量;⑶CPU指令执行时间,反映CPU运算速度的快慢;⑷系统总线的传输速率等。1.4将下列十进制数分别转换为二进制、十六进制数。⑴35⑵130⑶0.625⑷48.25参考答案:⑴100011B,23H⑵⑶0.101B,0.AH⑷110000.01B,30.4H1.5将下列二进制数分别转换为十进制、八进制、十六进制数。⑴101101B⑵⑶110110.101B⑷101011.011B微机原理及接口技术李干林—习题参考解答全文共32页,当前为第1页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第1页。⑴45,55Q,2DH⑵230,346Q,E6H⑶54.625,66.5Q,36.AH⑷43.375,53.3Q,2B.6H1.6写出下列十进制数的原码、反码、补码(分别采用8位二进制和16位二进制表示)。⑴38⑵120⑶-50⑷-89参考答案:⑴原码、反码、补码:00100110B,0000000000100110B⑵原码、反码、补码:01111000B,0000000001111000B⑶⑷1.7已知补码求出其真值和原码。⑴21H⑵93H⑶45A6H⑷0DA25H参考答案:⑴真值:+21H,原码:21H⑵真值:-6DH,原码:EDH⑶真值:+45A6H,原码:45A6H⑷真值:-25DBH,0A5DBH1.8将下列十进制数转换为压缩和非压缩格式的BCD码。⑴12⑵55⑶147⑷368参考答案:⑴00010010B,0000000100000010B⑵01010101B,0000010100000101B⑶⑷1.9下列十进制数算术运算,试用8位二进制补码计算,并用十六进制数表示运算结果,判断是否有溢出。⑴35-45⑵80+50⑶-70-60⑷-20+(-60)参考答案:各数的补码:[35]补=00100011B,[-45]补[80]补=01010000B,[50]补=00110010B,[-70]补补微机原理及接口技术李干林—习题参考解答全文共32页,当前为第2页。[-20]微机原理及接口技术李干林—习题参考解答全文共32页,当前为第2页。35+(35+(-45)00100011B80+5001010000B+00110010B-70+(-60)101111110B-20+(-60)CY=0,CS=0OF=CY⊕CS=0⊕0=0没有溢出CY=0,CS=1OF=CY⊕CS=0⊕1=1有溢出CY=1,CS=0OF=CY⊕CS=1⊕0=1有溢出CY=1,CS=1OF=CY⊕CS=1⊕1=0没有溢出⑴⑵⑶-70-60=01111110B=-126,结果不正确,有溢出,因为-130超出了8位补码的表示下限-128;⑷1.10分别写出下列字符串的ASCII码(十六进制表示)。⑴3aB8⑵eF10⑶+5(0:⑷Howareyou?参考答案:⑴⑵⑶2B3528303AH⑷2.18086CPU内部由哪两部分组成?它们的主要用途是什么?参考答案:8086CPU内部按功能分执行单元EU和总线接口单元BIU。执行单元的功能:负责指令的执行。同时向BIU输出数据(操作结果),并对寄存器和标志寄存器进行管理。在ALU中进行16位运算,数据传送和处理均在EU控制下进行。总线接口单元的功能:负责从内存或I/O端口取指令、取操作数和保存运算结果。2.28086/8088CPU有哪些寄存器?各有什么用途?参考答案:8086/8088CPU内部有14个16位的寄存器,按功能可分为:通用寄存器(8个)、段寄存器(4个)和控制寄存器(2个)。⑴.通用寄存器组EU中有4个16位的通用寄存器,即数据寄存器AX、BX、CX、DX。数据寄存器AX、BX、CX、DX一般用来存放数据,但它们都有各自的特定用途。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第3页。AX称为累加器,是最常用的寄存器。它常用来存放算术逻辑运算中的操作数,而且一些操作要在AX中完成,如乘法操作和除法操作。此外,所有的I/O指令都使用累加器与微机原理及接口技术李干林—习题参考解答全文共32页,当前为第3页。BX称为基址寄存器。它常用来存放操作数在内存中数据段内的基地址。CX称为计数器。在设计循环程序时一般使用该寄存器存放循环次数。DX称为数据寄存器。在寄存器间接寻址的I/O指令中存放I/O端口地址;在做双字长乘除法运算时,DX与AX一起存放一个双字长操作数,其中DX存放高16位数。⑵.指针和变址寄存器8086/8088CPU中,有一组4个16位寄存器,它们是基址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。这组寄存器存放的内容是某一段地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。SP称为堆栈指针寄存器;BP称为基址指针寄存器;SI称为源变址寄存器;DI称为目的变址寄存器。⑶.段寄存器CS、DS、SS、ES8086/8088有20位地址总线,一共可以寻址1M的空间。而所有内部寄存器都是16位的,只能直接寻址64KB,因此采用分段技术来解决。将1MB的存储空间分成若干逻辑段,每段最长64KB,这些逻辑段在整个存储空间中可以浮动。8086/8088定义4个独立的逻辑段,分别为:代码段、数据段、堆栈段和附加数据段,将程序代码或数据分别放在这4个逻辑段中。每个逻辑段的段地址分别放在对应的段寄存器中,代码或资料在段内的偏移地址由有关寄存器或立即数给出。8086/8088的4个段寄存器:①CS称为代码段寄存器,用来存储程序当前使用的代码段的段地址(起始地址)。②DS称为数据段寄存器,用来存放程序当前使用的数据段的段地址。③SS称为堆栈段寄存器,用来存放程序当前所使用的堆栈段的段地址。④ES称为附加数据段寄存器,用来存放程序当前使用的附加数据段的段地址。⑷.指令指针寄存器IPIP称为指令指针寄存器,用来存放预取指令在代码段内的偏移地址。⑸.标志寄存器FF称为标志寄存器,是一个16位的寄存器,其中只用了9位。分别为6个状态标志位和3个控制标志位。2.38086/8088CPU中标志寄存器有几位状态位?有几位控制位?其含义各是什么?微机原理及接口技术李干林—习题参考解答全文共32页,当前为第4页。参考答案:标志寄存器是一个16位的寄存器,其中只用了9位。分别为6个状态标志位和3微机原理及接口技术李干林—习题参考解答全文共32页,当前为第4页。⑴状态标志位状态标志位用来反映算术和逻辑运算结果的一些特征。①CF:进位标志位。当进行加减运算时,若最高位发生进位或借位则CF=1,否则CF=0。②PF:奇偶标志位。当运算结果的低8位中含有偶数个1时,PF=1,否则PF=0。③AF:辅助进位标志位。加法或减法运算时,若结果的低字节的低4位向高4位有进位或借位,则AF=1;否则AF=0。④ZF:零标志位。若当前的运算结果为0,则ZF=1;否则ZF=0。⑤SF:符号标志位。与运算结果的最高位相同,当运算结果的最高位为1时,SF=1;否则为0。⑥OF:溢出标志位。当运算结果超出了带符号数的范围,即溢出时,OF=1;否则OF=0。⑵控制标志位控制标志位有3个,用来设置控制条件来控制CPU的操作,由程序设置或清除。①TF:跟踪标志位。②IF:中断允许标志位。用来控制可屏蔽中断的控制标志。若IF=1,允许CPU接受可屏蔽中断请求;若IF=0,则禁止CPU回应可屏蔽中断请求。IF的状态对非屏蔽中断及内部中断没有影响。③DF:方向标志位。控制串操作指令用的标志。2.4Intel8086CPU和8088CPU主要区别有哪些?参考答案:8086CPU与8088CPU的区别主要有以下4个方面:⑴.内部结构8086的指令队列有6B,而8088仅有4B。它们的执行单元EU完全相同,而总线接口单元BIU却不完全相同。8086CPU内、外部的数据总线(DB)都为16位,8088内部数据总线为16位,外部为8位。⑵.引出线和内存组织8086有一条高8位数据总线允许引出线,它可以看做一条附加的地址线,用来访问内存的高字节,而A0用来访问内存的低字节。⑶.地址/数据复用线微机原理及接口技术李干林—习题参考解答全文共32页,当前为第5页。8086的地址/数据复用线是16位AD15~AD0;而8088仅有AD7~AD0复用,A8~A15仅微机原理及接口技术李干林—习题参考解答全文共32页,当前为第5页。⑷.内存与I/O接口选通信号电平。内存与I/O接口选通信号电平不同:8086为M/,即高电平进行存储器操作,低电平进行I/O操作;而8088则相反,为IO/。2.5逻辑地址和物理地址指的是什么?如果已知逻辑地址为1200:0ABCDH,其物理地址为多少?参考答案:把用段地址和偏移地址表示存储单元的地址称为逻辑地址,段地址和段内偏移地址经20位地址加法器生成的20位地址称为物理地址。已知逻辑地址为1200:0ABCDH,其物理地址为12000H+0ABCDH=1CBCDH。2.6若CS为3000H,试说明现行代码段可寻址的存储空间的范围。参考答案:可寻址的存储空间的范围:30000H+0000H~30000H+FFFFH,既:30000H~3FFFFH2.7设现行数据段位于存储器10000H到1FFFFH存储单元,DS段寄存器内容为多少?参考答案:一个逻辑段最大范围:0000H~FFFFH,因此DS段寄存器内容为:1000H。参考答案:78563412DS:0000HDS:0001HDS:0002HDS:0001HDS:0003H2.9已知堆栈段寄存器SS=4000H,堆栈指针SP=0100H,试将数据56789ABCH推入堆栈,画出进栈示意图。最后栈顶SP=?参考答案:最后栈顶SP=400FCH4010040100HBC9A7856SP→400FEH56789ABC400FCH微机原理及接口技术李干林—习题参考解答全文共32页,当前为第6页。2.10微机原理及接口技术李干林—习题参考解答全文共32页,当前为第6页。⑴1234H+6789H⑵23A5H–65C2H参考答案:⑴1234H+6789H=79BDH,CF=0,PF=1,AF=0,ZF=0,SF=0,OF=0;⑵23A5H–65C2H=0BDE3H,CF=1,PF=0,AF=0,ZF=0,SF=1,OF=0。2.118088CPU工作在最小模式时。⑴当CPU访问存储器时,要利用哪些信号?⑵当CPU访问I/O时,要利用哪些信号?参考答案:⑴IO/=0,A19/S16~A16/S3,A15~A8,AD7~AD0,ALE,读存储器时:=0,DT/=0(写存储器时:=0,DT/=1),。⑵IO/=1,A19/S16~A16/S3,A15~A8,AD7~AD0,ALE,读IO端口时:=0,DT/=0(写IO端口时:=0,DT/=1),。2.12简要说明8086/8088的指令周期、总线周期、机器周期和时钟周期有何不同。参考答案:(1)指令周期由若干个机器周期组成,而机器周期时间又包含若干个时钟周期,总线周期一般由4个时钟周期组成。(2)机器周期和总线周期的关系是:机器周期指的是完成一个基本操作的时间,这个基本操作有时可能包含总线读/写,因而包含总线周期,但是有时可能与总线读/写无关,所以,并无明确的相互包含关系。2.13什么情况下插入TW等待周期?插入TW多少,取决什么因素?参考答案:在T3状态,CPU采样READY线,若READY信号无效,插入TW状态;插入TW状态为一个至多个,直到READY信号有效,才进入T4状态。2.14什么情况下会出现总线的空闲周期?参考答案:只有在8086CPU和存储器或I/O接口之间传输数据时,CPU才执行总线周期,当CPU不执行总线周期时(指令队列6个字节已装满,EU未申请访问存储器),总线接口部件不和总线打交道,就进入了总线空闲周期Ti。在空闲周期中,虽然CPU对总线进行空操作,但是CPU内部操作仍然进行,即EU部件在工作。所以说,总线空操作是总线接口部件BIU对总线执行部件EU的等待。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第7页。3.1微机原理及接口技术李干林—习题参考解答全文共32页,当前为第7页。(1)MOVSI,120(2)MOV[BX],DX(3)MOVAX,100[BX][DI](4)MOVDI,[BX+100](5)MOVAX,[1000H](6)MOVAX,80H(7)MOVAX,[BX](8)MOVCX,[BX][SI]参考答案:(1)立即数寻址(2)寄存器寻址(3)基址加变址寻址(4)基址寻址(5)直接寻址(6)立即数寻址(7)基址寻址(8)基址加变址寻址3.2指出下列指令中存储器操作数物理地址的计算表达式。(1)MOVSI,[BX](2)MOV8[DI],DX(3)MOVAX,[BP][SI](4)ADDDI,[BX+100](5)ADDAX,[1000H](6)SUBAX,[BX+DI+80H](7)ADDAX,ES:[BX](8)DECWORDPTR[SI]参考答案:(1)DS×16+BX(2)DS×16+DI+8(3)SS×16+BP+SI(4)DS×16+BX+100(5)DS×16+1000H(6)DS×16+BX+DI+80H(7)ES×16+BX(8)DS×16+DI3.3指出下列指令中的错误。(1)MOVBX,AL(2)MOVCS,AX(3)MOV100,CL (4)MOV[BX],[1000H](5)PUSH1234H (6)MOVCS,1200H(7)XCHGAH,12H (8)INC[2000H](9)ADD[BX],10 (10)OUT258H,AX参考答案:(1)源操作数和目的操作数寄存器类型不匹配(2)代码段寄存器CS不允许赋值(3)立即数不能做目的操作数微机原理及接口技术李干林—习题参考解答全文共32页,当前为第8页。(4)微机原理及接口技术李干林—习题参考解答全文共32页,当前为第8页。(5)立即数不能做堆栈指令操作数(6)代码段寄存器CS不允许赋值(7)立即数不能做交换指令操作数 (8)字类型还是字节类型不明确(9)目的操作数类型不明确 (10)端口地址大于8位二进制数,需要通过DX传送。3.4设(SP)=3000H,(AX)=1234H,(BX)=5678H,指出执行下列指令后相关寄存器的内容。PUSHAXPUSHBXPOPAXPOPBX参考答案:执行后,(AX)=5678H,(BX)=1234H,(SP)=3000H。3.5若AX=1234H,BX=3456H,当执行SUBAX,BX指令后,求AX和标志寄存器CF、AF、SF、ZF和OF标志位的值?参考答案:(AX)=0DDDEH,CF=1,AF=1,SF=1,ZF=0,OF=0。3.6设(AH)=0F6H,(AL)=90H,问执行SUBAH,AL指令后,AX中的值及标志寄存器CF、AF、SF、ZF、PF和OF标志位的值?参考答案:(AX)=6690H,CF=0,AF=0,SF=0,ZF=0,OF=0,PF=1。3.7设(BX)=1000H,(DI)=0050H,执行LEABX,[BX+SI-0200H]后,(BX)=?参考答案:(BX)=0E50H3.8已知(DS)=2000H,(SS)=5000H,(AX)=0012H,(BX)=0340H,(CX)=0781H,(BP)=0035H,(SI)=0100H,(DI)=0300H,(20440H)=2104H,(20742H)=0E2AH,(20372H)=6FD3H,试求单独执行下列指令后的结果。参考答案:微机原理及接口技术李干林—习题参考解答全文共32页,当前为第9页。(1)MOVDL,[BX][SI];(DL)=微机原理及接口技术李干林—习题参考解答全文共32页,当前为第9页。(2)MOV[BP][DI],CX;(50336H)=07H(3)LEABX,100H[BX][DI];(BX)=0740HMOVDX,2[BX];(DX)=0E2AH(4)SUBSI,CX;(SI)=0F97FH(5)XCHGCX,32H[BX];(CX)=6FD3H3.9下列指令完成什么功能?(1)NEGBX(2)MULBL(3)DIVCL (4)DECAX(5)SBBAX,CX (6)INCDL(7)ADCAX,1000H (8)SARAL,CL(9)DAA (10)CBW参考答案:(1)将BX中的内容求补(正数变负数或负数变正数,绝对值不变)后送回BX。(2)BL×AL,结果送AX。(3)AX/CL,商存于AL,余数存于AH。 (4)AX中值减1,结果送回AL。(5)AX中的值减去BX中的值再减去CF中的值,结果送回AX。 (6)DL中的值当无符号数加1,结果送回DL。(7)AX中的内容加上1000H后,再加上CF的值,结果送回AX。 (8)AL中的值向右移,移动位数为CL中的值,AL左边补充符号位的值。(9)将AL中的两位BCD码加法运算的结果调整为两位压缩型十进制数,仍保留在AL中。 (10)将AL的最高有效位扩展至AH。3.10已知AX=3405H,BX=0FE1H,CX=0002H,DX=2A3EH,求下列每条指令执行后目的操作数的结果。(1)ANDAH,BL(2)ORCL,20H(3)NOTDX (4)XORCX,0FE3H(5)TESTAL,80H (6)CMPBX,OF123H(7)SHRDX,CL (8)SARAL,CL微机原理及接口技术李干林—习题参考解答全文共32页,当前为第10页。(9)RCLAL,1 (10)RORDX,微机原理及接口技术李干林—习题参考解答全文共32页,当前为第10页。参考答案:(1)(AH)=02H(2)(CL)=22H(3)(DX)=0D5B1H (4)(CX)=0FE1H(5)(AL)=05H (6)(BX)=OFE1H(7)(DX)=0A8FH (8)(AL)=01H(9)(AL)=0AH (10)(DX)=8A8FH3.11设(AX)=54D1H,执行下列程序段指令后,求相应的结果。MOVBL,AH参考答案:MOVCL,ALADDBL,100;BL=0B8HXCHGAL,BL;AL=0B8HSUBAL,CL;AX=54E7HJSHHANDAL,0FHHH:ADCAH,BL;AX=26E7HBL=0D1H3.12设(AX)=1023H、(BX)=0430H,执行下列程序段指令后,求相应的结果。MOVCL,2参考答案:SHRAH,CL;AX=0423HADDBX,AX;BX=0853HJMPNEXTMULBLNEXT:ORAX,BX;AX=0C73HHLT3.13已知当前数据段中有一个十进制数字0~9的7段ASCII表,其数值依次为30H~39H,其首地址为2000H。要求用XLAT指令将十进制数46转换成相应的7段代码值,存到AX寄存器中,试写出相应的程序段。参考答案:MOVBX,2000HMOVAL,4微机原理及接口技术李干林—习题参考解答全文共32页,当前为第11页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第11页。MOVAH,ALMOVAL,6XLATHLT3.14设有程序段:DATASEGMENTSTRINGDB‘Todayissaturdy!’NEQU$-STRINGDATAENDS试用字符串指令完成以下功能:⑴把该字符串传送到附加段中偏移量为CHAR1开始的内存单元中;⑵检查该字符串是否有“!”字符,若有将找到的第一个“!”用“?”将其替换。参考答案:⑴CLDMOVCX,NLEASI,STRINGLEADI,CHAR1REPMOVSB⑵LEADI,STRINGMOVAL,‘!’MOVCX,NCLDREPNESCASBMOVAL,‘?’MOV[DI],AL3.15阅读程序段,说明其完成的功能。MOVCX,100MOVDL,0MOVBX,1000H微机原理及接口技术李干林—习题参考解答全文共32页,当前为第12页。LP1:MOVAL,微机原理及接口技术李干林—习题参考解答全文共32页,当前为第12页。CMPAL,0JNZLP2INCDLLP2:INCBXLOOPLP1MOV[BX],DLHLT参考答案:程序段的功能:统计从数据段偏移地址1000H的100个字节单元内容0的个数,并将统计结果存入数据段偏移地址为1064H的内存单元。3.16试编程完成(AL)×7/4的程序段,AL中的数为有符号数。参考答案:MOVBL,7IMULBLMOVCL,2SARAX,CL3.17使用最少指令,实现下述要求的功能。⑴BL的高4位置1;⑵AL的低4位取反;⑶DL中的高4位移到低4位,低4位移到高4位;⑷AH的低4位移到高4位,低4位清0。参考答案:⑴ORBL,0F0H;⑵XORAL,0FH;⑶MOVCL,4RORAH,CL;⑷MOVCL,4SHLAH,CL。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第13页。3.18在DS:2000H为首址的内存数据段中,存放了10个16位带符号数,试编程将其中最大和最小的带符号数找出来,分别存放到以DS:3000H和DS:3002H微机原理及接口技术李干林—习题参考解答全文共32页,当前为第13页。参考答案:MOVSI,2000HMOVAX,[SI];AX中存放最大数MOVBX,[SI];BX中存放最小数MOVCX,9FIND:ADDSI,2MOVDX,[SI]CMPAX,DXJGLOP1MOVAX,DXL0P1:CMPBX,DXJLLOP2MOVBX,DXLOP2:LOOPFINDMOVSI,3000HMOV[SI],AXADDSI,2MOV[SI],BXHLT3.19设中断类型N=8,中断服务程序的起始地址为3000:0100H,它在中断向量表中如何存放?参考答案:N×4=8×4=32=20HDS:0020H存放00H;DS:0021H存放01H;DS:0022H存放00H;DS:0023H存放30H。4.1下列变量各占多少字节?M1DW12,78A3H微机原理及接口技术李干林—习题参考解答全文共32页,当前为第14页。M2DB3DUP(?),0AH,0DH,‘$微机原理及接口技术李干林—习题参考解答全文共32页,当前为第14页。M3DB‘HOWDOYOUDO?’参考答案:变量M1占4个字节,变量M2占6个字节,变量M3占14个字节4.2某程序设置的数据区如下:DATASEGMENTORG1000HD1DB11,2DH,56HD2DW32,0ABD3H,7634HD3DWD1D4DB$-D1D5DB4DUP(?)D6DB‘34FS’DATAENDS画出该数据段内容再内存中存放形式(要求用十六进制补码表示,按字节组织)。参考答案:0B0B2D562000D3AB347600100B????33344653D1D2D3D5D4D64.3下面的数据定义,各条MOV指令执行后,有关寄存器的内容是什么?微机原理及接口技术李干林—习题参考解答全文共32页,当前为第15页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第15页。DATA2DW5DUP(?)DATA3DB‘1234’MOVAX,TYPEDATA1MOVBX,SIZEDATA2MOVCX,LENGTHDATA3参考答案:(AX)=1,(BX)=10,(CX)=44.4假设程序中的数据定义如下:DATA1DW?DATA2DB10DUP(?)DATA3DD?DATA4EQU$-DATA1求DATA4的值为多少?表示什么意义?参考答案:DATA4的值为2+10+4=16,表示下一个内存单元距离DATA1有16个字节。4.5设平面上有一点P的直角坐标(x,y),编程实现:如果P点落在第I象限,则K=I;如果P点落在坐标轴上,则K=0。参考答案:XDW?YDW?KDB?…MOVBX,XMOVDX,YCMPBX,0JZK0CMPDX,0JZK0JGK12微机原理及接口技术李干林—习题参考解答全文共32页,当前为第16页。CMPBX,微机原理及接口技术李干林—习题参考解答全文共32页,当前为第16页。JGK4MOVK,3;在第三象限JMPEXITK0:MOVK,0;在坐标轴JMPEXITK1:MOVK,1;在第一象限JMPEXITK4:MOVK,4;在第四象限JMPEXITK12:CMPBX,0JGK1MOVK,2;在第二象限JMPEXITEXIT:MOVAH,4CHINT21H4.6编程把字符串CHAR11中小写字母转换为对应的大写字母,并存放在CHAR22开始的内存单元。CHAR11DB‘asdfghjkl’COUNTDB$-CHAR11CHAR22DBCOUNTDUP(?)参考答案:CHAR11DB‘asdfghjkl’COUNTDB$-CHAR11CHAR22DBCOUNTDUP(?)…MOVCX,COUNTMOVBX,0LOP:MOVDL,CHAR11[BX]SUBDL,20H微机原理及接口技术李干林—习题参考解答全文共32页,当前为第17页。MOVCHAR22[BX],微机原理及接口技术李干林—习题参考解答全文共32页,当前为第17页。INCBXLOOPLOP4.7字符串CHAR33存放有50个字节字符,设其中有字符M,编程查找第一个M字符相对字符串CHAR33起始地址的距离,并将其存放到LENTH11字节单元。参考答案:CHAR33DB50DUP(?)LENTH11DW?…MOVCX,50LEADI,CHAR33NN:MOVAL,[DI]CMPAL,‘M’JZFIND0LOOPNNJMPEXITFIND0:LEASI,CHAR33SUBDI,SIMOVLENTH11,DIEXIT:MOVAH,4CHINT21H4.8编程计算:(A*C-B)/B,其中A、B、C均为字节变量有符号数。参考答案:ADB20HBDB93HCDB45HDDW?…MOVAL,AMOVBL,C微机原理及接口技术李干林—习题参考解答全文共32页,当前为第18页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第18页。MOVBX,AXMOVAL,BCBWSUBBX,AXMOVAX,BXMOVCL,BIDIVCL;结果在AX中,AL中为商,AH中为余数4.9编程查找出BUF数据区中带符号数的最大数和最小数,存放在MAX和MIN存储单元中。参考答案:BUFDB12H,45H,0A2H,…,48HNEQU$-BUFMAXDB?MINDB?…LEASI,BUFMOVCX,N-1MOVBL,[SI]MOVAL,BLL1:INCSIMOVDL,[SI]CMPDL,BLJGEL2MOVBL,DL;BL中的值为两个数比较的小值JMPNEXTL2:CMPDL,ALJLENEXTMOVAL,DL;AL中的值为两个数比较的大值NEXT:LOOPL1微机原理及接口技术李干林—习题参考解答全文共32页,当前为第19页。MOVMAX,微机原理及接口技术李干林—习题参考解答全文共32页,当前为第19页。MOVMIN,BL4.10从自然数1开始累加,直到累加和大于2000为止,统计被累加的自然数的个数,并把统计的个数送入NUMBER单元,把累加和送入SUM单元。参考答案:DATASEGMENTNUMBERDW?SUMDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,0MOVBX,0LP:INCBXADDAX,BXCMPAX,2000JBELPMOVNUMBER,BXMOVSUM,AXMOVAH,4CHINT21HCODEENDSENDSTART4.11编写一个子程序,功能是将一个字节的BCD码转换成二进制数。参考答案:;名称:BCD2BIN;功能:将一个字节的BCD码转换成二进制;所用寄存器:CX微机原理及接口技术李干林—习题参考解答全文共32页,当前为第20页。;入口参数:AL存放两位BCD微机原理及接口技术李干林—习题参考解答全文共32页,当前为第20页。;出口参数:AL存放二进制数;调用其它子程序:无BCD2BINPROCNEAR(或FAR)PUSHCXMOVCH,ALANDCH,OFH;存低8位MOVCL,4SHRAL,CL;高8位右移4位后乘10MOVCL,10MULCLADDAL,CH;高8位加低8位POPCXRETBCD2BINENDP4.12设计一个软件延时子程序,延时时间约为1s,假设系统时钟为8MHz。参考答案:分析:软件延时可用指令执行消耗时间来达到,延时时间主要取决于循环体指令。从手册查得PUSHF和POPF指令分别为10和8个时钟节拍,LOOP指令为3.4个时钟节拍,系统时钟为8MHz,每个节拍需要0.125,因此延时1ms计算循环次数:X=≈374次延时1s再循环1000次。;名称:DELAY1S;功能:延时1S子程序;所用寄存器:BX、CX;入口参数:无,出口参数:无;调用其它子程序:无DELAY1SPROCNEARPUSHBX微机原理及接口技术李干林—习题参考解答全文共32页,当前为第21页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第21页。MOVBX,1000LP1:MOVCX,374LP2:PUSHFPOPFLOOPLP2;延时1msDECBXJNZLP1POPCXPOPBXRET;延时1SDELAY1SENDP4.13编写程序,在屏幕上显示字符串“Thisisasampleprogram.”。参考答案:DATASEGMENTDA1DB‘Thisisasampleprogram.’,0DH,OAH,‘$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,9LEADX,DA1INT21HMOVAH,4CHINT21HCODEENDSENDSTART4.14编程实现:从键盘中输入学生的姓名XYZ,当按任意一个键时,屏幕上显示出:HELLO!XYZ微机原理及接口技术李干林—习题参考解答全文共32页,当前为第22页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第22页。CHAR1DB20DB?DB20DUP(?)CHAR2DB‘HELLO!’,‘$’…START:LEASI,CHAR1MOVAH,0AHINT21H;输入姓名存CHAR1+2单元MOVAH,8INT21H;等待按键LEADX,CHAR2MOVAH,9INT21H;显示CHAR2开始的内容LEABX,CHAR1+2;显示姓名首地址MOVCL,[BX-1]MOVCH,0;CX中为输入姓名字符个数LP:MOVAH,2MOVDL,[BX]INT21HINCBXLOOPLP;逐个显示名字的字符5.1DRAM为什么要刷新?参考答案:动态随机存储器DRAM依靠电容来保存信息。为了不丢失信息,需要再电容放电丢失信息前,把数据读出来再写进去,相当于再次给电容充电,以维持所记忆的信息,这是动态刷新。5.2设有一个具有13位地址和8位字长的存储器,问:⑴存储器能存储多少字节信息?⑵如果存储器由1K×4位RAM芯片组成,共计需要多少片?⑶需要用几位高位地址做片选译码来产生芯片选择信号?微机原理及接口技术李干林—习题参考解答全文共32页,当前为第23页。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第23页。⑴存储器能存储213字节信息。⑵13位地址和8位字长是8K×8位,如果存储器由1K×4位RAM芯片组成,共计需要16片。⑶需要用A10、A11、A12位高位地址做片选3-8译码来产生芯片选择信号。5.3设有16片256K×1位的SRAM芯片。(1)只采用位扩展方法可构成多大容量的存储器?(2)如果采用8位的字节编址方式,该存储器需要多少地址线?参考答案:(1)256K×16位存储器;(2)构成的存储器是512K×8位,219=512K,则需要19根地址线。5.4设有若干片32K×8位的SRAM芯片,设计一个总容量为64K的16位存储器,需要多少片32K×8位的SRAM芯片?参考答案:(64K×16)/(32K×8)=4,需要4片5.5如果某存储器分别有8、12、16位地址线,对应的存储单元由多少?参考答案:对于的存储单元分别是:256个、4K个、64K个。5.6已知ROM的容量为8K×8,设它的首地址为30000H,那么最后一个单元地址是多少?参考答案:最后一个单元地址是:30000H+1FFFH=31FFFH5.7设有若干片256KB的SRAM芯片,构成2048KB存储器。(1)需要多少片256KBSRAM芯片?(2)构成2048KB存储器需要多少地址线?参考答案:(1)需要2048/256=8片256KBSRAM芯片;(2)2048K=221,构成2048KB存储器需要21地址线。5.8CPU有16根地址线,即A15~A0,计算图5.19所示的片选信号和指定的基地址范围。A15CPUA12A15CPUA12&≥1CS1CS2参考答案:微机原理及接口技术李干林—习题参考解答全文共32页,当前为第24页。低电平有效需要A15~A12全是高电平1值,低电平有效需要A15~A12全是低电平0值。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第24页。A15~A12:1111B=0FH,A11~A0变化范围:000H~FFFH。因此地址范围:F000H~FFFFH。A15~A12:000B=0H,A11~A0变化范围:000H~FFFH。因此地址范围:0000H~0FFFH。6.1为什么外设要通过接口电路和主机系统相连?参考答案:微机CPU和外设信号存在速度差异、信号电平差异及驱动能力差异、信号形式差异(CPU只能处理数字信号,而外设有数字量、模拟量、非电量等)、时序差异等问题,这些都需要通过在CPU与外设之间设置相应的I/O接口电路来予以解决。接口电路具有:速度协调、数据锁存、三态缓冲、数据转换、中断控制功能等。6.2什么叫端口?通常有哪几类端口?计算机对I/O端口编址时通常采用哪两种方法?在8086/8088系统中,用哪种方法对I/O端口进行编址?参考答案:端口是接口电路中能被CPU直接访问(读/写)的寄存器,每个端口都有一个地址。一般说来,I/O接口电路中有3种端口:数据端口,状态端口和控制端口。I/O端口地址通常有两种编址方式:一种是将内存地址与I/O端口地址统一编在同一地址空间中,称为存储器映像的I/O编址方式;另一种是将内存地址与I/O端口地址分别编在不同的地址空间中,称为I/O端口单独编址方式。在8086/8088系统中,采用I/O端口单独编址方式。6.3CPU与外设间数据传送的控制方式有哪几种?它们各自的优缺点是什么?参考答案:传送方式有:无条件传送方式、查询传送方式、中断传送方式、以及DMA方式等。⑴无条件传送是一种最简单的程序控制传送方式,CPUI/O前不需要查询外设的工作状态,任何时候都可访问。优点是简单,缺点是只有像开关、发光二极管、继电器、步进电动机等外设在与CPU进行信息交换时才可以采用无条件传送方式。⑵查询传送方式在执行I/O操作之前,需要通过程序对外设的状态进行检查。当所选定的外设已准备“就绪”后,才开始进行I/O操作。其优点是使CPU能和不同速度的外设传送数据,缺点是需要占用CPU资源。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第25页。⑶中断传送方式是指外设就绪时,主动向CPU发出中断请求,从而使CPU去执行相应的中断服务程序,完成与外设间的数据传送。采用中断方式传送,数据传送实时性好,另外在外设未准备就绪时,CPU微机原理及接口技术李干林—习题参考解答全文共32页,当前为第25页。⑷DMA方式又叫直接存储器存取方式,是在外设和存储器之间开辟直接的数据传送通路,在存储器和外设之间的通路上直接传送数据。DMA方式的实现主要是靠硬件(DMA控制器)实现的,不必进行保护现场等一系列额外操作,优点是减轻了CPU的负担,特别适合于高速度大批量数据传送的场合。缺点是要增设DMA控制器,硬件电路比其它方式更为复杂。6.4结合指令简述下图CPU与外设以查询方式输出数据的接口电路工作过程(设地址译码数据口地址为60H,状态口地址为61H)。参考答案:工作过程:当输出装置把CPU输出的数据输出以后,发出一个信号,使D触发器置0,即使BUSY线为0,当CPU输入这个状态信息后(经G3至D7),知道外设为“空”,于是执行输出指令。待执行输出指令后,由地址信号和/IO及相“与”,经G1发出选通信号,把在数据总线上的输出数据送至锁存器;同时,触发D触发器为“1”状态,它一方面通知外设输出数据已准备好,可以执行输出操作,另一方面在数据由输出装置输出以前,一直保持为1,告知CPU(CPU通过读状态端口知道)外设BUSY,阻止CPU输出新的数据。查询输出部分的程序如下:POLL:INAL,61H;查状态端口中的状态信息D7TESTAL,80HJNEPOLL;D7=1,即忙线=1,则循环再查MOVAL,[SI];若外设空闲,则由内存读取数据OUT60H,AL;输出到60H地址端口单元6.5什么是中断向量表?在8086/8088的中断向量表中有多少不同的中断向量?若已知中断类型号是10,说明如何在中断向量表中查找中断向量?参考答案:8086/8088的256个中断处理子程序的入口地址统一存放在内存的一个固定区域。每个中断处理子程序的入口地址占用4字节存储单元,低地址的两字节存放中断处理子程序入口地址的偏移量(IP),高地址的两字节存放段地址(CS)。这些中断处理子程序的入口地址,称为中断向量。256个中断向量要使用256×4=1024个字节,这1024字节所占的内存区域,称中断向量表。每个中断服务程序入口地址在中断向量表中的位置可由“中断类型码×4”计算出来。若中断类型码n=10,则其中断向量存放在中断向量表00028H(10×4=40=28H)开始的连续4个单元中。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第26页。6.68086/8088微机原理及接口技术李干林—习题参考解答全文共32页,当前为第26页。参考答案:内部中断具有如下特点:(1)内部中断的除法出错中断、溢出中断、INTn中断优先级均高于外部中断,外部中断中NMI级别高于INTR,只有单步中断优先级最低且低于外中断。(2)除单步中断外其他内部中断均无法禁止。(3)由于中断类型码已确定,所以不用执行中断响应周期取中断类型码。(4)由于内部中断均处于程序的固定位置处,所以无随机性。6.78086CPU响应可屏蔽中断的过程。参考答案:当8086CPU的INTR引脚有中断申请输入时,如果标志寄存器的IF=1,CPU响应可屏蔽硬件中断,并在引脚输出2个低电平,时序如下图所示。第1第1个INTA总线周期T1T2T3T4第2个INTA总线周期T1T2T3T4T1T1空闲状态CLKALEINTAAD7~AD0中断类型号8086的中断响应时序由两个连续的中断响应总线周期组成,中间由空闲时钟周期隔开。在两个总线周期中,输出为低电平,以响应这个中断。第1个总线周期表示有一个中断响应正在进行,这样可以使申请中断的设备有时间去准备在第2个总线周期内发出中断类型号。在第2个总线周期中,中断类型号必须在16位数据总线的低8位(AD0~AD7)上传送给8086。因此,提供中断类型号的中断接口电路8259A的8位数据线是接在8086的16位数据线的低8位上。在中断响应总线周期期间,经和的配合作用,使得8086可以从申请中断的接口电路中取得一个单字节的中断类型号。得到中断向量,进入中断服务子程序。微机原理及接口技术李干林—习题参考解答全文共32页,当前为第27页。7.1设8255A的控制口地址为83H,要求A口工作在方式0输出,B口工作在方式0输入,C口高4位输入,低4位输出,试编写8255A微机原理及接口技术李干林—习题参考解答全文共32页,当前为第27页。参考答案:初始化程序:OUT83H,AL7.2下图当A7A6A5=111,A4A3A0=100时,=0,选中8255A。求8255A四个端口的8位地址;电路功能为开关K7~K0随时控制LED7~LED0的亮灭,试编写程序实现功能。参考答案:4个端口地址:F0H、F2H、F4H和F6H,初始化程序:OUT0F6H,ALHH:INAL,0F0HOUT0F2H,ALJMPHH7.3编一初始化程序,使8255A的PC2端输出一个负跳变。如果要求PC6端输出一个负脉冲,则初始化程序又是如何?设8255A控制口地址为63H。参考答案:8255A的PC2端输出一个负跳变程序:MOVAL,00000101BOUT63H,AL;PC2输出高电平HH1:MOVCX,10LOOPHH1;延时等待MOVAL,00000100BOUT63H,AL;PC2输出低电平PC6端输出一个负脉冲程序:MOVAL,00001101BOUT63H,AL;PC6输出高电平HH2:MOVCX,10LOOPHH2;延时等待MOVAL,00001100B微机原理及接口技术李干林—习题参考解答全文共32页,当前为第28页。OUT63H,ALPC6微机原理及接口技术李干林—习题参考解答全文共32页,当前为第28页。HH3:MOVCX,10LOOPHH3;延时等待MOVAL,00001101BOUT63H,AL;PC6输出高电平7.4某系统中8253芯片的通道0~通道2和控制口端口地址分别为0F000H~0F003H,定义通道0工作在方式3,CLK0=5MHz,要求OUT0=1kHz方波;通道2工作在方式2,用OUT0作为计数脉冲,计数值为1000。请编写初始化程序。参考答案:通道0的计数值:5MHz/1kHz=5000MOVAL,00110110BMOVDX,0F003HOUTDX,AL;通道0初始化MOVAX,5000MOVDX,0F000HOUTDX,ALMOVAL,AHOUTDX,AL;通道0送计数值MOVDX,0F003HOUTDX,ALMOVAX,1000MOVDX,0F002HOUTDX,ALMOVAL,AHOUTDX,AL;通道2送计数值7.5设8253的通道0~通道2和控制口端口地址分别为300H,302H,304H,306H,定义通道0工作在方式3,CLK0=2MHz。要求通道0输出1KHz的方波。试编写初始化程序,并画出硬件连线示意图。参考答案:计数初值:2MHz/1KHz=2000初始化程序:微机原理及接口技术李干林—习题参考解答全文共32页,当前为第29页。MOVDX,微机原理及接口技术李干林—习题参考解答全文共32页,当前为第29页。MOVAL,00110110BOUTDX,ALMOVAX,2000MOVDX,300HOUTDX,ALMOVAL,AHOUTDX,AL硬件连线示意图:CLK0CLK0GATE0OUT082532MHz时钟输入+5V1KHz方波输出7.68259A中断控制器的中断屏蔽寄存器(IMR)和8086/8088CPU的中断允许标志IF有什么差别?在

温馨提示

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

评论

0/150

提交评论