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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理及接口技术习题答案.docx

1、微机原理及接口技术习题答案第一章习题及答案1. 微处理器内部包含哪三大部分?解: 运算器、控制器和寄存器组。2. 完成下列数制的转换B=( )D=( )H解:B=173D=ADH。=( )D解:=。=( )B =( )H解:=.01B=。=( )H=( )BCD解:=(0010 0001 0010 0101)BCD3. 已知X=+1011010B,Y=0011011B,设机器数为8位,分别写出X、Y的原码、反码和补码。解: 4. 已知X的真值为32,Y的真值为19,求解:5. 已知X=51,Y=86,用补码完成下列运算,并判断是否产生溢出(设字长为8位)。 XY XY XY XY解:X补=00

2、110011BY补=Y反+1=反+1=+1=BX+Y补=X补+Y补=00110011B+B=BX+Y=X+Y补 补= 补=+1=B B,因为,所以未产生溢出。 B,因为,所以产生溢出。 01110111B,因为,所以产生溢出。 00100011B,因为,所以未产生溢出。6. 若使与门的输出端输出高电平,则各输入端的状态是什么?解:各输入端为高电平。 7. 若使与非门的输出端输出低电平,则各输入端的状态是什么? 解:各输入端为高电平。8. 如果74LS138译码器的Y4端输出低电平,则C、B、A三个输入端的状态分别是什么?解:C、B、A三个输入端的状态分别是1,0,0。第二章习题及答案1. 80

3、86/8088CPU由哪两大功能部分所组成?简述它们的主要功能?解:8086/8088CPU由EU和BIU两大功能部分组成。执行单元EU主要完成指令的译码和执行。执行单元通过EU控制电路从BIU中取出指令,经过指令译码形成各种定时控制信号,向EU内各功能部件发出相应的控制命令,以完成指令所规定的操作。 总线接口单元BIU是8086/8088同外部联系的接口。它负责所有涉及外部总线的操作,包括取指令、读操作数、写操作数、地址转换和总线控制等。BIU内部设置指令预取队列,每当指令队列有两个或两个以上的字节空间,且执行单元未向BIU申请读/写存储器操作数时,BIU顺序地预取后续指令的代码,并填入指令

4、队列中。当EU执行的是转移指令时,则BIU清除当前的指令预取队列的内容,从新的地址取回指令,并立即送到EU去执行,然后,从后续的指令序列中取回指令填满队列。2. 什么是指令流水线?指令流水线需要哪些硬件支持?解:指令流水线是指8086/8088CPU内部的执行单元EU和总线接口单元BIU通过指令预取队列协同工作从而实现指令的并行执行。指令流水线最主要的硬件支持是BIU内部的指令预取队列。3. 逻辑地址如何转换成物理地址?已知逻辑地址为2D1EH:35B8H,对应的物理地址是什么?解:逻辑地址是段基址和段内偏移地址形式的地址。 物理地址段基址16段内偏移已知逻辑地址为2D1EH:35B8H,则对

5、应的物理地址4. 8088和8086的指令预取队列的长度分别是多少?解:8088的指令预取队列的长度为4字节;8086的指令预取队列的长度为6字节。5. 简述8086/8088CPU内部的各寄存器的作用。解:AX、BX、CX和DX通用寄存器一般用于存放参与运算的数据或运算的结果。SP:用于存放堆栈栈顶的段内偏移量。BP:用于存放访问内存时的偏移地址。 SP和BP也可以用来存放数据,它们的默认段寄存器都是SS。SI和DI通常在间接寻址方式中存放操作数的偏移地址。在串操作指令中,DI的默认段寄存器是ES。SI和DI也可以用来存放数据。CS:代码段寄存器,用于存放代码段的段基址。DS:数据段寄存器,

6、用于存放数据段的段基址。SS:堆栈段寄存器,用于存放堆栈段的段基址。ES:附加段寄存器,用于存放附加段的段基址。IP:指令指针寄存器,用于存放CPU即将执行的下一条指令在代码段中的段内偏移地址。FLAGS:标志寄存器,用于存放指令执行结果的特征。6. 8086/8088CPU内部的状态标志寄存器共有几位标志位?各位的含义是什么?解:状态标志寄存器共有9位标志位,其中包含6个状态标志位和3个控制标志位。状态标志位:CF(Carry Flag):进位标志。当算术运算结果使最高位产生进位或借位时,则CF=1;否则CF=0。PF(Parity Flag):奇偶标志。若运算结果中的低8位含有偶数个1,则

7、PF=1;否则PF=0。AF(Auxiliary carry Flag):辅助进位标志。运算过程中若D3位向D4有进位或借位时,AF=1;否则AF=0。ZF(Zero Flag):零标志。若运算结果为0,则ZF=1;否则ZF=0。SF(Sign Flag):符号标志。若运算结果为负,则SF=1;否则SF=0。OF(Overflow Flag):溢出标志。当带符号数的补码运算结果超出机器所能表达的范围时,就会产生溢出,这时OF=1;否则OF=0。控制标志位:DF(Direction Flag):方向标志。控制串操作指令的地址变化的方向。当DF=0时,串操作指令的地址指针按增量变化;当DF=1时,

8、串操作指令的地址指针按减量变化。IF(Interrupt Flag):中断允许标志。控制微处理器是否允许响应可屏蔽中断请求。若IF=1,则允许响应;否则禁止响应。TF(Trap Flag):单步标志。TF=1时,CPU工作在单步方式。7. 8086/8088系统中存储器的分段原则是什么?解:分段原则是要求段的起始单元的物理地址是16的整数倍,每段的物理长度为64KB。8. 当ALE有效时,8088的地址/数据总线上将出现什么信息?解:当ALE有效时,8088的地址/数据总线上将出现地址信息。9. READY管脚的作用是什么?解:READY用于微处理器时序中插入等待状态。若该引脚被置为低电平,则

9、微处理器进入等待状态并保持空闲;若该引脚被置为高电平,则它对微处理器的操作不产生影响。CPU在读、写操作时序中的T3时钟周期开始处,通过检测READY管脚的状态来决定是否插入TW等待时钟周期,以解决CPU与存储器或I/O接口之间速度不匹配的矛盾。10. 为什么在基于8086/8088的系统中经常需要使用缓冲器?解:由于基于8086/8088的系统驱动能力的不足,需要使用缓冲器。11. 8088工作在最小模式下包含哪些控制信号?解:最小模式下包含的控制信号有: RD、WR、IO/M、ALE、DT/R、DEN和INTA等信号。12. 若CS=4000H,则当前代码段可寻址的存储空间范围是多少?解:

10、CS=4000H时,当前代码段可寻址的存储空间范围为40000H4FFFFH。第三章习题及答案1.什么叫寻址方式?8086指令系统中有哪几种寻址方式?解:寻址方式,即获得地址的方法,主要指获得段内偏移地址的方法,段基址常采用默认方式获得。8086CPU指令系统的寻址方式有两类:获得指令中操作数地址的方法。获得要执行的下一条指令的地址的方法。8086指令系统中有8种操作数寻址方式,立即寻址。2.下列指令中BUFF为字节类型变量,DATA为常量,指出下列指令中源操作数的寻址方式:(1)MOV AX, 1200(2)MOV AL, BUFF(3)SUB BX, 2000H(4)MOV CX, SI(

11、5)MOV DX, DATASI(6)MOV BL, SIBX(7)MOV DI, AX(8)ADD AX, DATADI+BP(9)PUSHF(10)MOV BX, ES:SI解: (1)MOV AX, 1200 ;立即寻址(2)MOV AL, BUFF ;直接寻址(3)SUB BX, 2000H ;直接寻址(4)MOV CX, SI ;寄存器间接寻址(5)MOV DX, DATASI ;寄存器相对寻址(6)MOV BL, SIBX ;基址变址寻址(7)MOV DI, AX ;寄存器寻址(8)ADD AX, DATADI+BP ;基址变址相对寻址(9)PUSHF ;隐含寻址(10)MOV B

12、X, ES:SI ;寄存器间接寻址3.指出下列指令的错误并改正。(1)MOV DS, 1200(2)MOV AL, BX(3)SUB 33H, AL(4)PUSH AL(5)MUL 45H(6)MOV BX, SI(7)MOVS BYTE PTRDS:DI, BYTE PTR DS:SI(8)ADD DATADI+BP, ES:CX(9)JMP BYTE PTRSI(10)OUT 3F8H, AL解:(1)MOV DS, 1200 ;不能用立即数给段基址寄存器赋值(2)MOV AL, BX ;操作数类型不一致(3)SUB 33H, AL ;立即数不能作为目的操作数(4)PUSH AL ;压栈指

13、令的操作数必须是字类型(5)MUL 45H ;乘法指令中的操作数不能是立即数(6)MOV BX, SI ;源和目的操作数不能同时为内存操作数(7)MOVS BYTE PTR DS:DI, BYTE PTR DS:SI ; 目的操作数应该在ES段。(8)ADD DATADI+BP, ES:CX ;CX不能做间址寄存器使用(9)JMP BYTE PTRSI ;操作数必须是字类型(10)OUT 3F8H, AL ;16位的端口地址不能直接在输入输出指令中使用。4.根据要求写出一条(或几条)汇编语言指令。(1)将立即数4000H送入寄存器BX。(2)将立即数4000H送入段寄存器DS。(3)将变址寄存

14、器DI的内容送入数据段中2000H的存储单元。(4)把数据段中2000H存储单元的内容送段寄存器ES。(5)将立即数3DH与AL相加,结果送回AL。(6)把BX与CX寄存器内容相加,结果送入BX。(7)寄存器BX中的低4位内容保持不变,其他位按位取反,结果仍在BX中。(8)实现AX与-128的乘积运算。(9)实现CX中高、低8位内容的交换。(10)将DX中D0、D4、D8位置1,其余位保持不变。解:(1)将立即数4000H送入寄存器BX。MOV BX,4000H(2)将立即数4000H送入段寄存器DS。MOV AX, 4000HMOV DS, AX(3)将变址寄存器DI的内容送入数据段中200

15、0H的存储单元。MOV 2000H,DI(4)把数据段中2000H存储单元的内容送段寄存器ES。MOV AX,2000HMOV ES,AX(5)将立即数3DH与AL相加,结果送回AL。ADD AL,3DH(6)把BX与CX寄存器内容相加,结果送入BX。ADD BX,CX(7)寄存器BX中的低4位内容保持不变,其他位按位取反,结果仍在BX中。MOV AX, BX,NOT AXAND AX,0FFF0HAND BX,000FHOR BX,AX(8)实现AX与-128的乘积运算。MOV BX,-128IMUL BX(9)实现CX中高、低8位内容的交换。MOV AL,8ROL CX AL(10)将DX

16、中D0、D4、D8位置1,其余位保持不变。0R DX,0111H5.设SS=2000H,SP=1000H,SI=2300,DI=7800,BX=9A00H。说明执行下面每条指令时,堆栈内容的变化和堆栈指针的值。PUSH SIPUSH DIPOP BX解:PUSH SI(0FFFH)=23H(0FFEH)=00HSP=0FFEHPUSH DI(0FFDH)=78H(0FFCH)=00HSP=0FFCHPOP BXBX=7800HSP=0FFEH6.内存中18FC0H、18FC1H、18FC2H单元的内容分别为23H、55、5AH,DS=1000H,BX=8FC0H,SI=1,执行下面两条指令后A

17、X=?DX=?MOV AX, BX+SILEA DX, BX+SI解:AX=5A55HDX=8FC1H7.回答下列问题:(1)设AL=7FH,执行CBW指令后,AX=?(2)设AX=8A9CH,执行CWD指令后,AX=?DX=?解:(1)设AL=7FH,执行CBW指令后,AX=007FH(2)设AX=8A9CH,执行CWD指令后,AX=8A9CH DX=FFFFH8.执行以下两条指令后,FLAGS的6个状态标志位的值是什么?MOV AX, 847BHADD AX, 9438H结果为118B3H解:CF=1 PF=0(为运算结果的低8位奇偶) AF=1 ZF=0 SF=0 OF=1 9.下面程序

18、段将03E8H转换成十进制数并显示,填写指令后的空格。MOV AX, 03E8H ;AH= 03H , AL= E8H MOV CX, 4 MOV DI, 2000H ;DI= 2000H MOV BX, 10 ;BH= 00 , BL= 0AHGO0: SUB DX, DX ;CF= 0 , ZF= 1 DIV BX ;AX= 64H , DX= 0 MOV DI, DL ;DI= 0 INC DI LOOP GO0 ;CX= 3 MOV CX, 4 GO1: DEC DI ;DI= 2003H MOV DL, DI ;DL=01 OR DL, 30H ;DL= 31H MOV AH, 02

19、 ;显示1位十进制数1 INT 21H LOOP GO1 10.用串操作指令替换以下程序段:ABC:MOV AL, SI MOV ES:DI, AL INC SI INC DI LOOP ABC解:REP MOVSB11.设AX=AAH,顺序执行下列各条指令,填写空格。(1)XOR AX, 0FFFFH ;AX= (2)AND AX, 13A0H ;AX= (3)OR AX, 25C9H ;AX= (4)TEST AX, 0004H ;AX= 解: (1)XOR AX, 0FFFFH ;AX= FF55H (2)AND AX, 13A0H ;AX= 00A0H (3)OR AX, 25C9H

20、;AX= 25EBH (4)TEST AX, 0004H ;AX= 00AAH 12.试写出执行下列3条指令后BX寄存器的内容。MOV CL,2HMOV BX,CO2DHSHR BX,CL解: BX=300BH13.执行下列程序段后,AX、BX的内容各是什么?(1) MOV AX,0001HMOV BX,8000HNEG AX ;0-0001HMOV CX,4AA:SHL AX,1 RCL BX,1 LOOP AA HLT解:AX=FFF0H BX=000FH(2)MOV AX,0 MOV BX,1 MOV CX,100 A: ADD AX,BX INC BX LOOP A HLT解:AX=8

21、080H BX=0101H14.编写程序段,实现下述要求:(1)使AX寄存器的低4位清0,其余位不变。(2)使BX寄存器的低4位置1,其余位不变。(3)测试AX的第0位和第4位,两位都是1时将AL清0。(4)测试AX的第0位和第4位,两位中有一个为1时将AL清0。解:(1)使AX寄存器的低4位清0,其余位不变。 AND AX, 0FFF0H(2)使BX寄存器的低4位置1,其余位不变。OR AX, 0FH(3)测试AX的第0位和第4位,两位都是1时将AL清0。TEST AX,01HJZ AATEST AX,10HJZ AAMOV AL,0HLTAA: .(4)测试AX的第0位和第4位,两位中有一

22、个为1时将AL清0。TEST AX, 11HJZ AAMOV AL,0AA: .15.编写程序段,完成把AX中的16进制数转换为ASCII码,并将对应的ASCII码依次存入MEM开始的存储单元中。例如,当AX的内容为37B6H时,MEM开始的4 个单元的内容依次为33H,37H,42H,36H。解:MOV CX,4LEA SI,MEM ADD SI,3 ;SI指向MEM+3CC: MOV BX,AX ;保存原始数据AND AX, 000FH ;取个位数CMP AL, 9 JA AA ;在AB之间就加37HADD AL,30H ;在09之间就加30HJMP BBAA: ADD AL,37HBB:

23、 MOV SI,AL ;保存ASCII值DEC SIPUSH CXMOV AX,BXMOV CL,4SHR AX,CL ;准备取下一个数POP CXLOOP CC16.编写程序段,求从TABLE开始的10个无符号数的和,结果放在SUM单元中。解: LEA SI,TABLE MOV CX,10 XOR AX,AXNEXT: ADD AL,SI ADC AH,0 INC SI LOOP NEXT MOV SUM,AX17.编写程序段,从键盘上输入字符串HELLO,并在串尾加结束标志$。解: LEA DX,STRING ;设置字符串存放缓冲区首地址 MOV AH ,0AH ;调用10号功能,输入字符

24、串 INT 21H MOV CL,STRING+1 ;实际键入的字符个数送CL XOR CH,CH ADD DX, 2 ADD DX,CX ;得到字符串尾地址 MOV BX,DX MOV BYTE PTRBX,$ 18.编写程序段,在屏幕上依次显示1、2、3、A、B、C。解: LEA BX,STR ;STR为6个字符的存放区域首地址 MOV CX,6 LPP: MOV AH,2 MOV DL,BX INC BX INT 21H ;利用2号功能调用依次先生6个字符 LOOP LPP19.编写程序段,在屏幕上显示字符串“Hello World”。解: LEA DX,STRING ; STRING字

25、符的存放区域首地址 MOV AH,09H INT 21H ; 利用9号功能调用显示字符串20.编写程序段,把内存中首地址为MEM1的200个字节送到首地址为MEM2的区域。解: MOV AX,SEG MEM1MOV DS,AX ;设定源串段地址MOV AX,SEG MEM2MOV ES,AX ;设定目标串段地址MOV SI,0 ;设定源串偏移地址MOV DI,0 ;设定目标串偏移地址MOV CX,200 ;串长度送CXCLD ;(DF)=0,使地址指针按增量方向修改REP MOVSB ;每次传送一个字节,并自动HLT 21.编写程序段,以4000H为起始地址的32个单元中存有32个有符号数,统

26、计其中负数的个数,并将统计结果保存在BUFFER单元中。解:START: MOV DI,OFFSET BUFFERXOR AL,AL MOV DI,AL MOV SI,4000H MOV CX,32AA: MOV AL,SI OR AL,AL JNS X1 INC DI X1: INC SINEXT:LOOP AA HLT第四章习题及答案1.什么叫汇编?汇编语言源程序的处理过程是什么?解:任何CPU都只能执行机器语言程序。汇编语言不是机器语言,汇编语言程序必须通过具有“翻译”功能的系统程序的处理,处理的过程称为汇编。汇编语言源程序经过汇编生成机器语言目标程序,简称目标程序。目标程序经过连接程序

27、连接,就得到可执行的机器语言程序文件。2.汇编语言的语句类型有哪些?各有什么特点?解:汇编语言的语句类型有两种:指示性语句和指令性语句。指示性语句可以位于任何段中,指令性语句必须位于代码段内。 指示性语句又称为伪操作语句,它不是8088/8086CPU的指令,它与汇编程序(assembler)有关。指示性语句的功能主要是变量定义、为数据分配存储空间、告诉汇编程序如何对源程序汇编等。源程序汇编后指示性语句不生成目标代码,所以常被称为伪指令。 指令性语句指令性语句是可执行语句,是8088/8086CPU的指令。源程序汇编后指令性语句生成目标代码。第3章中介绍的所有指令都是指令性语句的主体,其操作数

28、最多只能有两个。3.汇编语言源程序的基本结构是什么?解:汇编语言源程序由若干段组成:数据段、附件数据段、堆栈段和代码段等,段与段之间的顺序可以随意排列,每一段由SEGMENT开始,以ENDS结束,每段的开始和结束都附有相同的名字。一个程序一般定义三个段:数据段、堆栈段和代码段,必要时增加定义附加数据段,能独立运行的程序至少包含一个代码段。4.写出完成下述要求的变量定义的语句:(1)为缓冲区BUFF保留200个字节的内存空间(2)将字符串BYTE,WORD存放于某数据区(3)在数据区中存入下列5个数据:2040H,0300H,10H,0020H,1048H解:(1)为缓冲区BUFF保留200个字

29、节的内存空间BUFF DB 200 DUP(?)(2)将字符串BYTE,WORD存放于某数据区DB BYTE,WORD(3)在数据区中存入下列5个数据:2040H,0300H,10H,0020H,1048H DW 2040H,0300H,10H,0020H,1048H5.画出下面数据段汇编后的内存图,并标出变量的位置。DATA SEGMENTAA EQU 78HAA0 DB 09H,-2,45H,2 DUP(01H, ?),AB AA1 DW -2,34H+AAAA2 DD 12H ;双字类型DATA ENDS解:如图所示。6.设程序中的数据定义如下:NAME DB 30 DUP(?)LIST DB 1,8,3,2ADDR DW 30 DUP(?)(1)取NAME的偏移地址放入SI(2)取LIST的前两个字节存入AX(3)取LIST实际长度解:(1

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

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