微机原理课后答案_第1页
微机原理课后答案_第2页
微机原理课后答案_第3页
微机原理课后答案_第4页
微机原理课后答案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、课后答案:2.1将下列十进制数分别转换为二进制数、八进制数、十六进制数。128D=10000000B=2000=80H1024D=10000000000B=20000=400H0.47D=0.01111000B=0.360=0.78H625D=1001110001B=11610=271H67.544D=1000011.1000B=103.42640=43.8BH2.2将下列二进制数转换成十进制数。10110.001B=22.125D11000.0101B=24.3125D2.3将下列二进制数分别转换为八进制数、十六进制数。1100010B=1420=62H101110.1001B=56.440

2、=2E.9H0.1011101B=0.5640=0.BAH2.4写出下列用补码表示的二进制数的真值。0111001101110011+115TOC o 1-5 h z0001110100011101+2910010101111010111071111111010000010210000001111111111272.6写出下列十进制数的BCD码表示形式。456=(010001010110)BCD789=(011110001001)BCD123=(000100100011)BCD8086CPU由几部分组成?它们的主要功能是什么?答:从功能上讲,8086分为两部分,即总线接口部件BIU(BusIn

3、terfaceUnit)和执行部件EU(ExecutionUnit)。BIU是CPU与外部存储器及I/O的接口,负责与存储器和I/0系统进行数据交换。指令执行部件EU完成指令译码和执行指令的工作。8086有多少根地址线?可直接寻址多大容量的内存空间?答:8086CPU有16根数据线和20根地址线,直接寻址空间为220,即为1M字节。8086内部的寄存器由哪几种类型组成?各自的作用是什么?答:8086CPU内部有14个16位寄存器,可以分为以下三组:分别是通用寄存器组,段寄存器组,控制寄存器。通用寄存器组可以分为两组:数据寄存器和地址指针与变址寄存器。数据寄存器主要用来保存算术、逻辑运算的操作数

4、、中间结果和地址。地址指针与变址寄存器主要用于存放或指示操作数的偏移地址。段寄存器组:8086/8088CPU内部设置了4个16位段寄存器,它们分别是代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES,由它们给出相应逻辑段的首地址,称为“段基址”控制寄存器:含指令指针IP及标志位寄存器FR。IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。标志寄存器FR用来存放运算结果的特征3.58086的存储器采用什么结构?答:8086的存储器采用分体结构。1M的存储空间分成两个存储体:偶地址存储体和奇地址存储体,各为512K字节。3.78086系统中的堆栈操作是按什么原则进行的

5、?答:堆栈操作的原则是后进先出。4.3存储器的地址译码有几种方式?各自的特点是什么?答:常用的存储器地址译码有两种方式,即单译码和双译码方式。单译码方式是一个“N中取1”的译码器,译码器输出驱动N根字线中的一根,每根字线由M位组成。若某根字线被选中,则对应此线上的M位信号便同时被读出或写入,经输出缓冲放大器输出或输入一个M位的字。主要用于小容量的存储器。双译码方式采用的是两级译码电路。当字选择线的根数N很大时,N=2p中的p必然也大,这时可将p分成两部分,如:N=2p=2q+r=2qX2r=XXY,这样便将对N的译码分别由X译码和Y译码两部分完成。从而大大减少了选择线的数目。4.4某RAM芯片

6、的存储容量为1024X8位,该芯片的外部引脚应有几条地址线?几条数据线?若已知某RAM芯片引脚中有13条地址线,8条数据线,那么该芯片的存储容量是多少?答:该芯片的外部引脚应有10条地址线,8条数据线。RAM芯片引脚中有13条地址线,8条数据线,那么该芯片的存储容量是8KX8位。4.5用Intel21141KX4位的RAM芯片组成32KX8位的存储器,需要多少块这样的芯片?答:需要64块。注:扩展时需要的芯片数量可以这样计算:要构成一个容量为MXN位的存储器,若使用pXk位的芯片(pM,kN),则构成这个存储器需要(M/p)X(N/k)个这样的存储器芯片。4.6利用2764芯片(EPROM,8

7、KX8位)并采用74LS138译码器进行全译码,在8086系统的最高地址区组成32KB的ROM,请画出这些芯片与系统总线连接的示意图。74LS138A14A15A13Gl-GM-G2cBA一Y4-Y5一YdY7CE2764(4)1205.1试出指令MOVBX,3040H和MOVBX,3040H有什么不同?1、寻址方式不同:立即数寻址和直接寻址。2、运行结果不同:MOVBX,3040H;BX=3040HMOVBX,3040H;将DS段3040H和3041H的内容送BX5.2指出下列指令是否有错,并说明理由。MOVDI,SIMOVCS,AXMOV1200,AXMOVDS,CSPUSHFLAGPOP

8、CSMOVCL,AXMOV5000H,1000H;错,内存单元之间不能直接进行数据传送;错,CS不能做目的操作数;错,立即数不能做目的操作数;错,段寄存器之间不能互相传送;对;错,CS不能做目的操作数;错,源、目的操作数长度不一致;错,内存单元之间不能直接进行数据传送5.3在8086中,堆栈操作是字操作还是字节操作?已知SS=1050H,SP=0006H,AX=1234H,若对AX执行压栈操作(即执行PUSHAX);试问AX的内容存放在何处?答:堆栈操作是字操作。入栈时“先减后压”(SP先减2,再压入操作数),执行压栈操作后AL的内容存放在10504H,AH的内容存放在10505H。5.4假如

9、要从200中减去AL中的内容,用SUB200,AL对吗?如果不对,应采用什么方法?答:不对,立即数不能作为目的操作数。先把立即数传送到一个存储器或寄存器当中。例如:MOVBL,200SUBBL,AL或:NEGALADDAL,2005.5编程求AX累加器和BX寄存器中两个无符号数之差的绝对值,结果放内存(2800H)单元中。解:CMPAX,BXCMPAX,BXCLCJAPT1JAPT1SUBAX,BXSUBBX,AXXCHGAX,BXJCPT1MOVDX,2800HPT1:SUBAX,BXMOVDI,2800HMOVDX,BXMOV2800H,AXMOVDI,AXHLTHLTHLTPT1:SUB

10、AX,BXPT1:SUBBX,AXMOVDX,2800HMOVDI,2800HMOVDX,AXMOVDI,BXHLTHLT5.6若有两个4字节的无符号数相加,这两个数分别存放在2000H和3000H开始的存储单元,将所求的和存放在2000H开始的内存单元中,试编制程序。MOVDI,2000HLEASI,3000HMOVAX,DIMOVDX,DI+2ADDAX,SIADCDX,SI+2MOVDI,AXMOVDI+2,DX5.7用两种方法写出从88H端口读入信息的指令,再用两种方法写出从44H端口输出数据56H的指令。方法-一:INAL,88H方法二:MOVDX,0088HINAX,DXMOVAL

11、,56HMOVAL,56HOUT44H,ALMOVDX,0044H6.12OUTDX,AL指出以下四条指令的作用(HEX为数据段的一个变量名)MOVBX,HEX;将变量HEX的内容传送到BX寄存器LEABX,HEX;取变量HEX的偏移地址送BXMOVBX,OFFSEGHEX;BX指向变量HEX的偏移地址MOVBX,SEGHEX;将变量HEX所在段的段地址传送到BX6.13下面是变量定义伪指令,DATASEGMENTBUFDW3DUP(5,2DUP(8)CEDDBWelcometoyou,ODH,OAH,$ADDRDWBUFCOUNTEQU$-CEDDATAENDS问:(1)按内存单元存放的先后

12、次序,按字节写出数据段中的数据。05H,OOH,08H,OOH,08H,OOH,05H,OOH,08H,OOH,08H,OOH,05H,OOH,08H,OOH,08H,OOH,57H,65H,6CH,63H,6FH,6DH,65H,20H,74H,6FH,20H,79H,6FH,75H,ODH,OAH,24H,OOH,OOH说明对BUF,CED,ADDR等变量施行TYPE,LENGTHSIZE运算符后,其结果分别为多少?TYPEBUF=2LENGTHBUF=3SIZEBUF=6TYPECED=1LENGTHCED=1SIZECED=1ADDR=2TYPECOUNT的值为多少?19LENGTHA

13、DDR=1SIZEADDR=26.17编写一个将16位二进制数转化为四位十六进制数的程序,并将十六进制数的各位显示出来。注:答案中给了一个假定的16位二进制数。DATASEGMENTBINDW1001110101111011BHEXASCDB4DUP(20H)DB$DATAENDSSTACK1SEGMENTPARASTACKDW20HDUP(O)STACKlENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKlBINHEX:MOVCH,4;十六进制数的位数MOVBX,BIN;取待转移数据MOVDI,OFFSETHEXASC;取存放ASCII码首地址CONV

14、1:MOVCL,4ROLBX,CL;取4位二进制数MOVAL,BLANDAL,OFHCMPAL,09H;是0-9吗?JBEASCI;是,转移ADDAL,07H;是A-F,先加07HASCI:ADDAL,30H;加30HMOVDI,AL;存结果INCDI;修改指针DECCHJNECONVILEADX,HEXASCMOVAH,09HINT21H;计数未完,继续CODEENDSENDBINHEX很多同学的答案:DATASEGMENTADW4XDW(16位二进制数)YDB4DUP(?)DATAENDSSTART:MOVCX,ALEADI,YAGAIN:MOVBX,XPUSHCXDECCXMOVING:

15、SHRBX,4LOOPMOVINGPOPCXANDBL,0FHCMPBL,09HJGDAYUADDBL,30HJMPXIAOYUDAYU:ADDBL,37HXIAOYU:MOVDI:,BLINCDILOOPAGAINLEADX,YMOVAH,09HINT21HCODEENDSENDSTART7.1名词解释(1)时钟周期:一个时钟脉冲的时间长度,CPU的时钟频率的倒数,也称T状态。(2)总线周期:CPU中,BIU完成一次访问存储器或I/O端口操作所需要的时间,称作一个总线周期,也称机器周期(MachineCycle)。(3)指令周期:执行一条指令所需的时间称为指令周期。(4)等待周期:在T3和T

16、4之间插入的周期。(4)(5)空闲状态:CPU不执行总线周期时的状态。时序:计算机操作运行的时间顺序。8.5简述CPU与外设以查询方式传送数据的过程。现有一输入设备,其数据端口的地址为FEEOH,并从端口FEE2H提供状态,当其DO位为1时表明输入数据准备好。试编写采用查询方式进行数据传送的程序段,要求从该设备读取64个字节并输入到从2000H:2000H开始的内存中。(程序中需加注释)P144145页。MOVAX,2000HMOVDS,AX设定段基址MOVDI,2000H;目的地址送DIMOVCX,64字节数READ:MOVDX,0FEE2H指向状态口INAL,DX读入状态位TESTAL,0

17、1H数据准备好否?JZREAD否,循环检测MOVDX,0FEE0H指向数据口INAL,DX已准备好,读入数据MOVDI,AL存到内存缓冲区中INCDI修改地址指针LOOPREAD未传送完,继续传送很多同学的答案:MOVCX,64NEXTIN:INAL,0FEE2HTESTAL,01HJZNEXTININAL,0FEE0HMOVBX,2000HMOV200HBX,ALINCBXLOOPNEXTIN&6简述中断传送的特点。中断传送的显著特点是:能节省大量的CPU时间,实现CPU与外设并行工作,提高计算机的使用效率,并使I/O设备的服务请求得到及时处理。I/O主动,CPU被动。9.3设8259A应用

18、在8086系统,采用电平触发方式,中断类型号为60H-67H,采用特殊全嵌套方式,中断非自动结束,非缓冲工作方式,端口地址为63H和64H,写出其初始化程序。ICW1=00011011B=1BH,ICW2=01100000B=60H,ICW4=00010101B=15HICW1必须写入到偶端口地址MOVAL,1BHOUT64H,ALMOVAL,60HOUT63H,ALMOVAL,15HOUT63H,AL9.4设8259A级连应用于8086系统,从片的中断请求线接于主片的IR7输入端,主片端口地址为64H和66H,从片端口地址为84H和86H,主片IR0的中断向量号为50H,从片IR0的中断向量

19、号为58H,主片工作方式同9.3,从片工作方式采用缺省工作方式,编写初始化程序,并画出硬件连接电路图。64H=01100100B84H=10000100B66H=01100110B86H=10000110B主片:ICWl=00011001B=19HICW2=01010000B=50HICW3=10000000B=80HICW4=00010101B=15H从片:ICWl=00011001B=19HICW2=01011000B=58HICW3=00000111B=07HICW4=00000001B=01H10.3试按如下要求分别编写8253的初始化程序,已知8253的计数器02和控制字寄存器I/O

20、地址依次为40H43H。(因为地址小于256,所以可以不用DX。)(1)使计数器1工作方式0,仅用8位二进制计数,计数初值为128。计数器1的通道地址为:41H;128=80H控制字:01010000B=50HMOVAL,50HOUT43H,ALMOVAL,80HOUT41H,AL使计数器0工作方式1,按BCD码计数,计数值为3000。计数器0的通道地址为:40H;3000的BCD码为3000H控制字:00110011B=33HMOVAL,33HOUT43H,ALMOVAL,00HOUT40H,ALMOVAL,30HOUT40H,AL使计数器2工作方式2,计数值为02F0H。计数器2的通道地址

21、为:42H控制字:10110100B=B4HMOVAL,B4HOUT43H,ALMOVAL,F0HOUT42H,ALMOVAL,02HOUT42H,AL10.4设8253计数器02和控制字寄存器的I/O地址依次为F8HFBH,说明如下程序的作用。MOVAL,33H;00110011B计数器0,先低位后高位,方式1,BCD码计数OUT0FBH,AL;写控制字MOVAL,80H;置计数初值低位字节80HOUT0F8H,AL;先与低位字节MOVAL,50H;置计数初值咼位字节50HOUT0F8H,AL;写高位字节程序的作用为:使计数器0工作在方式1,用BCD码计数,计数初值为5080。10.5设82

22、53的通道02和控制端口的地址分别为300H、302H、304H和306H,又设由CLK0输入计数脉冲频率为2MHz。要求通道0输出1.5kHz的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,通道2每秒钟向CPU发50次中断请求。试编写初始化程序,并画出硬件连线图。通道0:输出方波则工作在方式3;计数初值为n0=2MHz/1.5kHz1334=536H(1.499kHz)控制字为:00110110B=36H通道1:输出序列负脉冲则工作在方式2;计数初值为n1=1.5kHz/300Hz=5=05H控制字为:01010100B=54H通道2:每秒钟向CPU发50次中断请求

23、则工作在方式2;计数初值为n2=300/50=6=06H控制字为:10010100B=94H初始化程序:通道0:MOVDX,306HMOVAL,36HOUTDX,ALMOVDX,300HMOVAL,36HM/IOA7AOOUTDX,ALMOVAL,05HOUTDX,AL-II/O_译码-+5VWRRDD7DO3A2A1CSGATE0GATE1GATE2A1CLK0A0OUT0WRCLK1RDOUT1CLK2OUT2D7D02MHz1.5KHz方波300Hz序列负脉冲每秒50次中断信号11.3编程使8255A的PC5端输出一个负跳变。如果要求PC5端输出一个负脉冲,则程序又如何编写?设端口地址分别为:B0HB2HB4HB6H。系统复位后8255A的所有端口都被置为输入。控制字为:10000000B=80H输出负跳变:MOVAL,80HOUTB6H,ALMOVAL,0BHOUTB6H,ALMOVAL,0AHOUTB6H,AL输出负脉冲:MO

温馨提示

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

评论

0/150

提交评论