ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:131.31KB ,
资源ID:28417168      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28417168.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口技术课后习题答案周明德.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口技术课后习题答案周明德.docx

1、微机原理与接口技术课后习题答案周明德 第一章1.1IA-32结构微处理器直至Pentillm4,有哪几种?解: 80386、 30486、 Pentium、 PentiumPro、 PeruiumII、 PentiumIII、 Pentium4。1.6微处理器、 微型计算机和微型计算机系统三者之间有什么不同?解: 把CPU(运算器和控制器)用大规模集成电路技术做在一个芯片上,即为微处理器。微处理器加上一定数量的存储器和外部设备(或外部设备的接口)构成了微型计算机。微型计算机与管理、 维护计算机硬件以及支持应用的软件相结合就形成了微型计算机系统。1.7CPU在内部结构上由哪几部分组成?CPU应该

2、具备哪些主要功能?解: CPU主要由起运算器作用的算术逻辑单元、 起控制器作用的指令寄存器、 指令译码器、 可编程逻辑阵列和标志寄存器等一些寄存器组成。其主要功能是进行算术和逻辑运算以及控制计算机按照程序的规定自动运行。1.8微型计算机采用总线结构有什么优点?解: 采用总线结构,扩大了数据传送的灵活性、 减少了连线。而且总线能够标准化,易于兼容和工业化生产。1.9数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?解: 数据总线是双向的(数据既能够读也能够写), 而地址总线是单向的。8086CPU为了减少芯片的引脚数量,

3、采用数据与地址线复用,既作数据总线也作为地址总线。它们主要靠信号的时序来区分。一般在读写数据时,总是先输出地址(指定要读或写数据的单元),过一段时间再读或写数据。1.13在给定的模型中, 写出用累加器的办法实现1515的程序。解: LDLDA, 0H, 15A, 15HLOOP: ADDDECJPNZ, LOOPHALT第二章2.6IA-32结构微处理器有哪几种操作模式?解: IA一32结构支持3种操作模式:保护模式、 实地址模式和系统管理模式。操作模式确定哪些指令和结构特性是能够访问的。2.8IA-32结构微处理器的地址空间如何形成? 解: 由段寄存器确定的段基地址与各种寻址方式确定的有效地

4、址相加形成了线性地址。若末启用分页机制, 线性地址即为物理地址; 若启用分页机制, 则它把线1 性地址转为物理地址。2.158086微处理器的总线接口部件由哪几部分组成?解: 8086微处理器中的总线接口单元(BIU)负责CPU与存储器之间的信息传送。具体地说,BIU既负责从内存的指定部分取出指令,送至指令队列中排队(8086的指令队列有6个字节,而8088的指令队列只有4个字节);也负责传送执行指令时所需的操作数。执行单元(EU)负责执行指令规定的操作。2.16段寄存器CS=120OH,指令指针寄存器IP=FFOOH,此时,指令的物理地址为多少?解: 指令的物理地址=1 H+FFOOH=21

5、FOOH第三章3.1分别指出下列指令中的源操作数和目的操作数的寻址方式。(1)MOVSI,(2)MOVCX,(3)ADDAX,(4)ANDAX,30ODATADIBXSICX(5)MOVBP,AX(6)PUSHF解:(1)源操作数为立即寻址,目的操作数为寄存器寻址。(2)源操作数为变址寄存器加位移量寻址,目的操作数为寄存器寻址。(3)源操作数为基址加变址寻址,目的操作数为寄存器寻址。(4)源操作数和目的操作数都为寄存器寻址。(5)源操作数为寄存器寻址,目的操作数为寄存器间接寻址。(6)为堆栈操作。3.2试述指令MOVAX, H和MOVAX,DS: H的区别。解: 前一条指令是立即寻址,即把立即

6、数 H传送至寄存器AX。后一条指令是直接寻址,是把数据(DS)段中的地址为200OH单元的内容传送至寄存器AX。3.3写出以下指令中内存操作数的所在地址。(1)MOVAL,BX+10(2)MOVBP+10,AX(3)INCBYTEPTRSI十5(4)MOVDL,ES:BX+SI(5)MOVBX,BP+DI+2解: (1)数据段BX+10单元。(2)堆栈段BP+10单元。(3)数据段SI+5字节单元。(4)附加段(ES段)BX+SI单元。2 (5)堆栈段BP+DI+2单元。3.4判断下列指令书写是否正确。(1)MOV(2)MOVAL,BXAL,CL(3)INC(4)MOV(5)MOV(6)M0V

7、(7)MOV(8)POPBX5,ALBX,SIBL,DX,CSOF5H H(9)PUSHCS解:(l)不正确,AL与BX数据宽度不同。(2)正确。(3)不正确,因为不明确是增量字节还是字。(4)不正确,立即数不能作为目的操作数。(5)不正确,因为不明确要传送的是字节还是字。(6)正确。(7)正确。(8)不正确,CS不能作为:pop指令的操作数。(9)不正确,CS不能作为PUSH指令的操作数。3.5设堆钱指针SP的初值为1000H,AX= H,BX=3000H,试问: (1)执行指令PUSHAX后SP的值是多少?(2)再执行PUSHBX及POPAX后,SP、 AX和BX的值各是多少?解: (1)

8、SP=OFFEH。(2)SP=OFFEH; AX=3000H,BX=3000H。3.6要想完成把3000H送 H中,用指令: MOM200OH,300OH是否正确?如果不正确,应该用什么方法实现?解:不正确。正确的方法是:MOVMOV H, ALAL,300OH3.7假如想从200中减去AL中的内容,用SUB200,AL是否正确?如果不正确,应该用什么方法?3 解: 不正确。正确的方法是: MOVSUBBL,200BL, AL3.8试用两种方法写出从8OH端口读入信息的指令。再用两种方法写出从4OH口输出10OH的指令。解: (1)IN(2)MOVDX, 8OHAL,DXAL,80HIN(3)

9、MOVAL,lOOHOUT40H,AL(4)MOVAL,10OHMOVDX, 4OHOUTDX,AL3.9假如:AL=20H,BL=1OH,当执行CMPAL,BL后,问:(1)AL、 BL中的内容是两个无符号数,比较结果如何?影响哪儿个标志位?(2)AL、 BL中的内容是两个有符号数,结果又如何,影响哪几个标志位?解: (l)AL=2OH,BL=1OH,O=0,S=0, Z=0, A=0, P=0, C=0。(2)因为两个都是符号正数,其结果与(l)相同。3.10若要使AL10,有哪几种方法,试编写出各自的程序段?解: (1)使用乘法指令: MOVBL,10MULBI,(2)使用移位指令:SH

10、LAL,1MOVBL, ALSHLAL,2ADDAL,BL(3)使用加法指令:ADDAL, ALMOVBL,ALADDAL,ALADDAL,ALADDAL,BL4 3.118086汇编语言指令的寻址方式有哪几类?哪种寻址方式的指令执行速度快?解: 寻址方式分为:立即数寻址方式、 寄存器操作数寻址方式和存储器操作数寻址方式。其中,寄存器操作数寻址方式的指令执行速度最快。3.12在直接寻址方式中,一般只指出操作数的偏移地址,那么,段地址如何确定?如果要用某个段寄存器指出段地址,指令中应该如何表示?解: 默认的数据访问,操作数在DS段;堆栈操作在SS段;串操作源操作数(SI)在DS段,目的操作数(D

11、I)在ES段; 用BP作为指针在SS段。如果要显式地指定段地址, 则在操作数中规定段寄存器。例如: MOVAX, ES: (BX+10H)3.13在寄存器间接寻址方式中,如果指令中没有具体指明段寄存器,那么如何确定段地址?解: 在寄存器间接寻址方式中,如果指令中没有具体指明段寄存器,段地址是隐含约定的,也就是隐含地选择段寄存器。如操作类型为指令,则指定代码段寄存器CS,如操作类型为堆栈操作,则指定堆找段寄存器SS,如表3-1中所示。当需要超越约定时,一般见段替代前缀加冒号:来表示段超越,它允许程序设计者偏离任何约定的段。例如:MOVES:BX, AX这时数据将从寄存器EAX传送至附加段中由EB

12、X寻址的存储单元,而不是传送到数据段中。3.14采用寄存器间接寻址方式时,BX、 BP、 SI、 DI分别针对什么情况来使用?这4个寄存器组合间接寻址时,地址是怎样计算的?请举例说明。解:在寄存器间接寻址方式下,BX和BP作为间址寄存器使用,而SI、 DI作为变址寄存器使用。除BP间址默认的段为堆栈段,其它的都默认为数据段。它们都能够单独使用,或加上偏移量或组合使用。如: BX+nBP+nSI+nDI+n5 BX+SI+nBX+DI+nBP+SI+nBP+DI+n3.15设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行的具体操作:MOVBYTEP

13、TRBP,200MOVWORDPTRBX, 解:前一条指令是把立即数(应是字节)200,传送至堆栈段(BP的默认段偏移量由BP规定的字节单元,地址为: 5 H+620OH=58200H。第二条指令是把立即数. ,传送至数据段(BX的默认段)偏移量由BX规定的字单元,地址为:21000H+1400H=22400H。3.16使用堆钱操作指令时要注意什么问题?传送指令和交换指令在涉及内存操作数时应该分别要注意什么问题?解: 使用堆栈指令能够把内存单元作为一个操作数(从内存到内存)。但堆栈固定在堆栈段且只能由SP指向。且堆栈操作要修改堆核指针。MOV指令不能实现内存单元间的数据传送。XCHG指令是交换

14、,有一个操作数必须是寄存器。3.17下面这些指令中哪些是正确的?哪些是错误的?若是错误的,请说明原因。(1)XCHGCS,AX1000IP(2)MOVBX,(3)XCHGBX,(4)PUSHCS(5)POP(6)INCSBX, DXBYTEBX,100O(7)MOV(8)MOVCS,1000解:(l)错误,CS不能交换。(2)错误,MOV指令不能在内存间传送。(3)错误,IP不能交换。(4)错误,CS能够作为PUSH指令的操作数。(5)错误,CS能够作为POP指令的操作数。(6)错误,IN指令的目的操作数是累加器。(7)错误,目的操作数是字节单元。(8)错误,CS不能作为MOV指令的目的操作数

15、。3.18以下是格雷码的编码表O1234000000010011001001106 56780111010101001100请用换码指令和其它指令设计一个程序段,以实现由格雷码向ASCII码的转换。解: MOVBX,TABLEMOVSI, ASCII_TABMOVAL, 0MOVCX,10TRAN:XLATTABLEMOVDL,ALADDDL, 30HMOVSI,DLINCALLOOPTRAN3.19使用乘法指令时,特别要注意先判断是用有符号数乘法指令还是用无符号数乘法指令,这是为什么?解: 因为有符号数和无符号数,其数的乘法是一样的。但结果的符号取决于两个操作数的符号。3.20字节扩展指令和

16、字扩展指令一般用在什么场合?举例说明。解: 主要用于字节相除和字相除之前,把被除数扩展为两倍宽度的操作数。3.21什么叫BCD码?什么叫组合的BCD码?什么叫非组合的BCD码?8086汇编语言在对BCD码进行加、 减、 乘、 除运算时,采用什么方法?解: BCD码为十进制编码的二进制数。组合的BCD数是把两位BCD加在一个字节中,高位的在高4位。非组合的BCD码是把一位BCD数放在一个字节的低4位,高4位为0。8086在BCD加、 减和乘法运算以后用BCD调整指令把结果调整为正确的BCD数。在BCD除法之前先用BCD调整指令再做除法.3.22用普通运算指令执行BCD码运算时,为什么要进行十进制

17、调整?具体地讲,在进行BCD码的加、 减、 乘、 除运算时,程序段的什么位置必须加上十进制调整指令?解: 因为8086指令把操作数作为二进制数进行二进制运算,要得到正确的BCD结果,需要进行调整。在加、 减、 乘法指令之后加上BCD调整指令,而在除法指令之前先用BCD调整指令再用除法指令。第四章4.1在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:MOVAL,MOVCX,MOVBX, H1OH100OH7 MOVCX, ALXCHGCX, BXMOVDH,MOVDL,XCHGCX,BX01HBXMOVBX, DLHLT解: 寄存器及存储单元的内容如下: AL=1OHBL=OOHBH=

18、2OHCL=OOHCH=1OHDH=1OH(10O0H)=lOH(200OH)=0lH2.要求同题4.1,程序如下:MOVAL,50HMOVBP,100OHMOVBX,200OHMOVBP,ALMOVDH,20HMOVBX,DHMOVDL,OlHMOVDL,BXMOVCX,300OHHLT解: 寄存器及存储单元的内容如下:AL=5OHBL=OOHBH=20HCL=OOHCH=30HDL=20HDH=2OHBP=100OH(10OOH)=5OH(20OOH)=20H4.3自1000H单元开始有一个100个数的数据块,若要把它传送到自200OH开始的存储区中去,能够采用以下3种方法实现,试分别编制

19、程序以实现数据块的传送。(l)不用数据块传送指令(2)用单个传送的数据块传送指令(3)用数据块成组传送指令。8 解:(1)LEASI,1OOOHLEADI,200OHMOVCX,100L1:MOVAX,SIMOVDI,AXLOOPLlHLT(2)LEASI,100OHLEADI, HMOVCX,100CLDL1:MOVSBLOOPL1HLT(3)LEASI,100OHLEADI,200OHMOVCX,100CLDREPMOVSBHLT4.4利用变址寄存器,编写一个程序,把自1000H单元开始的100个数传送到自1070H开始的存储区中去。解:LEASI,100OHLEADI,1070HMOVC

20、X,100CLDREPMOVSBHLT4.5要求同题4.4,源地址为2050H,目的地址为 H,数据块长度为50。解:LEASI,205OHLEADI,200OHMOVCX,50CLDREPMOVSBHLT4.6编写一个程序,把自100OH单元开始的100个数传送至105OH开始的存储区中(注意:数据区有重叠)。解:LEASI,100OH9 LEADI,1050HADDSI,63HADDDI,63HMOVCX,100STDREPMOVSBHLT4.7在自0500H单元开始,存有100个数。要求把它传送到1000H开始的存储区中,但在传送过程中要检查数的值,遇到第一个零就停止传送。解:LEASI

21、,050OHLEADI,10OOHMOVCX,100N1:MOVAL,SICMPAL,0JZN2MOVDI,ALINCSIINCDILOOPN1N2:HLT4.14若在0500H单元中有一个数x:(1)利用加法指令把它乘2,且送回原存储单元(假定X2后仍为一个字节);(2)X4;(3)X10(假定Xl0255)。解:(1)LEABX,050OHMOVAL,BXADDAL,ALMOVBX,AL(2)LEABX,0500HMOVAL,BXADDAL,ALADDAL,ALMOVBX,AL(3)LEABX,050OHMOVAL,BXADDAL,ALMOVDL,ALADDAL,ALADDAL,AL10

22、ADDAL,DLMOVBX,AL第五章5.1总线周期的含义是什么?8086/8088CPU的基本总线周期由几个时钟组成?如果一个CPU的时钟频率为8MHz,那么,它的一个时钟周期是多少?一个基本总线周期是多少?如果主频为5MHz呢?解: CPLI访问总线(从内存储器或I/0端口读/写字节或字)所需的时间称为总线周期。8086/8088CPU的基本总线周期由4个时钟组成。若CPU的时钟频率为8(5)MHz,时钟周期为1/8MHz=125(1/5MHz=2O)ns,基本总线周期为5.2在总线周期的TI、 T2、 T3、 T4状态,CPU分别执行什么动作?什么情况下需要插入等待状态Tw?Tw在哪儿插

23、入?怎样插入?解:下面以存储器读为例进行说明。在Tl周期:输出地址信号、 地址锁存允许信号、 内存或I/O端口访问控制信号;在T2周期:CPIJ开始执行数据传送操作,此时,8086CPU内部的多路开关进行切换,将地址/数据线AD15AD0上的地址撤销,切换为数据总线,为读写数据作准备。8288总线控制器发出数据总线允许信号和数据发送/接收控制信号DT/R允许数据收发器工作,使数据总线与8086CPU的数据线接通,并控制数据传送的方向。同样,把地址/状态线A19/S6A16/S3切换成与总线周期有关的状态信息,指示若干与周期有关的情况。在T3周期:开始的时钟下降沿上,8086CPU采样READY

24、线。如果READY信号有效(高电平),则在T3状态结束后进人TA状态。在T4状态开始的时钟下降沿,把数据总线上的数据读入CPU或写到地址选中的单元。在T4状态:结束总线周期。如果访问的是慢速存储器或是外设接口,则应该在Tl状态输出的地址,经过译码选中某个单元或设备后,立即驱动READY信号到低电平。8086CPU在T3状态采样到READY信号无效,就会插入等待周期Tw,在Tw状态CPU继续采样READY信号;直至其变为有效后再进人T4状态,完成数据传送,结束总线周期。在T4状态,8086CPU完成数据传送,状态信号S2 S0。变为无操作的过渡状态。在此期间,8086CPU结束总线周期,恢复各信

25、号线的初态,准备执行下一个总线周期。第六章6.1若有一单板机,具有用8片2114构成的4KBRAM,连线如图创所示。11 若以每1KBRAM作为一组,则此4组RAM的基本地址是什么?地址有没有重叠区?每一组的地址范围为多少?解: RAM的基本地址为:第一组第二组第三组第四组OOOOH03FFH4000H43FFH8000H83FFHCOOOHC3FFH地址有重叠区。每一组的地址范围为OOOH3FFH(1024个字节)。6.4若要扩充1KBRAM(用2114片子),规定地址为8000H83FFH,地址线应该如何连接?解: 扩充lKBRAM至规定地址8000H83FFH,其地址线的低10位接芯片,

26、高6位地址(Al5A10=100000)产生组选择信号。第七章7.1外部设备为什么要经过接口电路和主机系统相连?解: 因为外部设备种类繁多,输入信息可能是数字量、 模拟量或开关量,而且输入速度、 电平、 功率与CPU差距很大。因此,一般要经过接口电路与主机系统相连。7.4CPU和输入输出设备之间传送的信息有哪几类?解: CPU和输入输出设备之间传送的信息主要有3类。(l)数据在微型计算机中,数据一般为8位、 16位或32位。(2)状态信息在输入时,有输入设备的信息是否准备好;在输出时有输出设备是否有空,若输出设备正在输出信息,则以忙指示等。(3)控制信息12 例如,控制输入输出设备启动或停止等

27、。7.9设一个接口的输入端口地址为0100H,状态端口地址为0104H,状态端口中第5位为1表示输入缓冲区中有一个字节准备好,能够输入。设计具体程序以实现查询式输入。解: 查询输入的程序段为:POLl: INAL,0104HANDAL, 20HJZPOLlINAL,0100H第八章8.1在中断响应过程中,8086CPU向8259A发出的两个RT互信号分别起什么作用?解: CPU发出的第一个 INTA脉冲告诉外部电路,其提出的中断请求已被响应,应准备将类型号发给CPU,8259A接到了这个 INTA脉冲时,把中断的最高优先级请求置入中断状态寄存器(ISR)中,同时把IRR(中断请求寄存器)中的相

28、应位复位。CPU发出的第二个 INTA脉冲告诉外部电路将中断的类型号放在数据总线上。8.28086CPU最多能够有多少个中断类型?按照产生中断的方法分为哪两大类?解: 8086CPU最多能够有256个中断类型。按照产生中断的方法,能够分为内部中断(软件中断)和外部(硬件中断)中断两大类。8.9在编写中断处理子程序时,为什么要在子程序中保护许多寄存器?解: 因为在用户程序运行时,会在寄存器中有中间结果,当在中断服务程序中要使用这些寄存器前要把这些寄存器的内容推至堆栈保存(称为保护现场)。在从中断服务程序返回至用户程序时把这些内容从堆找恢复至寄存器中(称为恢复现场)。8.12若在一个系统中有5个中断源,其优先权排列为:1、 2、 3、 4、 5,它们的中断服务程序的入口地址分别为:3000H、 302OH、 3050H、 3080H、 30AOH。编写一个程序,当有中断请求CPU响应时,能用查询方式转至申请中断的优先权最高的源的中断服务程序。解: 若5个中断源的中断请求放在一中断状态寄存器中,按优先权分别放在状态的7位(优先权最高)至位3中。查询方法的程序段为: INAL, AL, N1STATUS80HCMPJNEJMPIN3000HAL, AL, N2N1: STATUS40HCMPJNEJMP3020H13 N

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1