题目
《微机原理与接口技术》习题解答习题11.1 冯·诺依曼型计算机的设计方案有哪些特点?[解答]冯·诺依曼型计算机的设计方案是“存储程序”和“程序控制[1]”,有以下5方面特点:(1)用二进制[2]数表示数据和指令;(2)指令和数据存储在内部存储器[3]中,按顺序自动依次执行指令;(3)由运算器[4]、控制器、存储器、输入设备和输出设备组成基本硬件系统;(4)由控制器来控制程序和数据的存取及程序的执行;(5)以运算器为核心。1.2 微处理器[5]和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?[解答]经历了6代演变,各典型芯片的特点如表1-1所示。表1-1 微处理器的发展及典型芯片的特点发展时代类别典型芯片及性能特点第一代(1971~1973年)4、8位低档微处理器Intel 4004集成2300多个晶体管,主频108KHz,寻址[6]640Byte,指令系统简单;Intel 8008采用PMOS工艺,集成3500晶体管,基本指令48条,主频500KHz。 第二代(1974~1977年)8位中高档微处理器Intel 8080采用NMOS工艺,集成6000晶体管,主频2MHz,指令系统较完善,寻址能力增强,运算速度提高了一个数量级。第三代(1978~1984年)16位微处理器Intel 8086采用HMOS工艺,集成29000晶体管,主频5MHz/8MHz/10MHz ,寻址1MB。Intel 80286集成度[7]达到13.4万晶体管,主频20MHz。第四代(1985~1992年)32位微处理器Intel 80386集成27.5万个晶体管,主频33MHz,4GB物理寻址[8]。有分段存储和分页[9]存储部件,可管理64TB虚拟存储空间。Intel 80486集成120万个晶体管,包含浮点运算部件和8KB的一级高速缓冲存储器Cache。第五代(1993~1999年)超级32位微处理器Intel Pentium、Pentium Pro、Pentium MMX、Pentium II、 Pentium III、Pentium 4微处理器等,采用新式处理器结构,数据加密、视频压缩和对等网络[10]等方面性能有较大幅度提高。第六代(2000年以后)64位微处理器Merced由Intel公司与HP公司联手开发的Merced采用全新的IA-64结构设计,是一种采用长指令字[11]、指令预测、分支消除、推理装入和其他一些先进技术的全新结构微处理器。1.3 微型计算机的特点和主要性能指标[12]有那些?[解答]Pentium微处理器的主要部件包括总线接口部件、指令高速缓存[13]器、数据高速缓存器、指令预取[14]部件与转移目标缓冲器[15]、寄存器[16]组、指令译码部件、具有两条流水线的整数处理部件(U流水线和V流水线)、以及浮点处理部件FPU等。各主要部件的功能分析[17]如下:(1)整数处理部件:U流水线和V流水线都可以执行整数指令,U流水线还可执行浮点指令。因此能够在每个时钟周期[18]内同时执行两条整数指令。(2)浮点处理部件FPU:高度流水线化的浮点操作[19]与整数流水线集成在一起。微处理器内部流水线进一步分割成若干个小而快的级段。(3)独立的数据和指令高速缓存Cache:两个独立的8KB指令和8KB数据Cache可扩展到12KB,允许同时存取,内部数据传输[20]效率更高。两个Cache采用双路相关联的结构,每路128个高速缓存行,每行可存放32B。数据高速缓存两端口对应U、V流水线。(4)指令集与指令预取:指令预取缓冲器顺序地处理指令地址,直到它取到一条分支指令[21],此时存放有关分支历史信息的分支目标缓冲器BTB将对预取[22]到的分支指令是否导致分支进行预测。(5)分支预测:指令预取处理中增加了分支预测逻辑,提供分支目标缓冲器来预测程序转移。Pentium微处理器的主要特点如下:(1)采用超标量双流水线结构;(2)采用两个彼此独立的高速缓冲存储器;(3)采用全新设计的增强型浮点运算器(FPU);(4)可工作在实地址[23]方式、保护方式、虚拟8086方式以及SMM系统管理方式;(5)常用指令进行了固化及微代码改进,一些常用的指令用硬件实现。2.19 什么是虚拟存储技术?该技术的主要优点有那些?[解答]虚拟存储技术是一种存储管理[24]技术,采用硬件、软件相结合的方法,由系统自动分批将程序调入内存,不断地用新的程序段[25]来覆盖内存中暂时不用的老程序段。虚拟存储技术的主要优点有:(1)扩大了程序可访问的存储空间;(2)便于实施多任务的保护和隔离;(3)便于操作系统实现[26]内存管理[27]。2.20 简要分析Pentium系列微处理器的4种工作方式具备的特点。[解答](1)实地址方式:系统加电或者复位时进入实地址方式,使用16位80X86的寻址方式[28]、存储器管理和中断管理;使用20位地址寻址1MB空间,可用32位寄存器执行大多数指令。(2)保护方式:支持多任务运行环境,对任务进行隔离和保护,进行虚拟存储管理[29]能够充分发挥Pentium微处理器的优良性能。(3)虚拟8086方式:是保护模式下某个任务的工作方式,允许运行多个8086程序,使用8086的寻址方式,每个任务使用1MB的内存空间。(4)系统管理方式:主要用于电源管理,可使处理器和外设部件进入“休眠”,在有键盘按下或鼠标移动时“唤醒”系统使之继续工作;利用SMM可以实现软件关机。习题33.1 简要分析8086的指令格式[30]由哪些部分组成,什么是操作码[31]?什么是操作数[32]?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?[解答]8086的指令格式由操作码和操作数字段组成。操作码:要完成的操作。操作数:参与操作的对象。寻址:寻找操作数或操作数地址的过程。寻址方式:指令中给出的找到操作数或操作数地址采用的方式。8086指令系统的寻址方式主要有立即数寻址[33]、寄存器寻址、存储器寻址和I/O端口寻址。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址[34]、寄存器相对寻址[35]、基址变址[36]寻址、相对基址变址寻址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。3.2 设(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H](4) MOV AX,VAL (5) MOV AX,[BX] (6) MOV AX,ES:[BX](7) MOV AX,[BP] (8) MOV AX,[SI] (9) MOV AX,[BX+10](10) MOV AX,VAL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,VAL[BX][SI][解答](1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,[1000H]直接寻址,EA = 1000H,PA =(DS)×10H+EA = 2000H×10H+1000H = 21000H(4) MOV AX,VAL直接寻址,EA = [VAL] = 0050H,PA =(DS)×10H+EA = 2000H×10H+0050H = 20050H(5) MOV AX,[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H(6) MOV AX,ES:[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)×10H+EA = 2100H×10H+0100H = 21100H(7) MOV AX,[BP]寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)×10H+EA = 1500H×10H+0010H = 15010H(8) MOV AX,[SI]寄存器间接寻址,EA =(SI)= 00A0H,PA =(DS)×10H+EA = 2000H×10H+00A0H = 200A0H(9) MOV AX,[BX+10]相对寄存器寻址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)×10H+EA = 2000H×10H+010AH = 2010AH(10) MOV AX,VAL[BX]相对寄存器寻址,EA =(BX)+[VAL]= 0100H+0050H= 0150H,PA =(DS)×10H+EA = 2000H×10H+0150H = 20150H(11) MOV AX,[BX][SI]基址变址寻址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)×10H+EA = 2000H×10H+01A0H = 201A0H(12) MOV AX,VAL[BX][SI]相对基址变址寻址,EA = (BX)+(SI)+[VAL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)×10H+EA = 2000H×10H+01F0H = 201F0H3.3 给定寄存器及存储单元[37]的内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。(1) MOV AX,1200H (2) MOV AX,BX (3) MOV AX,[1200H](4) MOV AX,[BX] (5) MOV AX,1100H[BX] (6) MOV AX,[BX][SI][解答](1) MOV AX,1200H ;执行后,(AX)= 1200H(2) MOV AX,BX ;执行后,(AX)= (BX)= 0100H(3) MOV AX,[1200H]直接寻址,EA = [VAL] = 1200H,PA =(DS)×10H+EA = 2000H×10H+1200H = 21200H,执行后,(AX)= B61AH(4) MOV AX,[BX]EA = (BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H,执行后,(AX)= 5132H(5) MOV AX,1100H[BX]EA =(BX)+1100H = 0100H+1100H = 1200H,PA =(DS)×10H+EA = 2000H×10H+1200H = 21200H,执行后,(AX)= B61AH(6) MOV AX,[BX][SI]EA =(BX)+(SI)= 0100H+0002H = 0102H,PA =(DS)×10H+EA = 2000H×10H+0102H = 20102H,执行后,(AX)= 29D1H3.4 分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1) MOV AH,BX (2) MOV [BX],[SI](3) MOV AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX(5) MOV BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI](7) MOV CS,AX (8) MOV DS,BP[解答](1) MOV AH,BX错误,寄存器类型不匹配,可改为MOV AX,BX(2) MOV [BX],[SI]错误,两个操作数不能都为存储单元,可改为MOV BX,[SI]或MOV [BX],SI(3) MOV AX,[SI][DI]错误,寻址方式中只能出现一个变址寄存器[38],可改为MOV AX,[BX][DI]。(4) MOV MYDAT[BX][SI],ES:AX错误,AX签不能有段跨越前缀,去掉ES:,改为MOV MYDAT[BX][SI],AX(5) MOV BYTE PTR[BX],1000错误,1000超出字节空间存储范围(6) MOV BX,OFFSET MAYDAT[SI] ;正确(7) MOV CS,AX错误,MOV指令CS不能做目的操作数,可改为MOV DS,AX(8) MOV DS,BP ;正确注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。3.5 设VAR1、VAR2为字变量,LAB为标号[39],分析下列指令的错误之处并加以改正。(1) ADD VAR1,VAR2 (2) MOV AL,VAR2(3) SUB AL,VAR1 (4) JMP LAB[SI](5) JNZ VAR1 (6) JMP NEAR LAB[解答](1) ADD VAR1,VAR2错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2
《微机原理与接口技术》习题解答习题11.1 冯·诺依曼型计算机的设计方案有哪些特点?[解答]冯·诺依曼型计算机的设计方案是“存储程序”和“程序控制[1]”,有以下5方面特点:(1)用二进制[2]数表示数据和指令;(2)指令和数据存储在内部存储器[3]中,按顺序自动依次执行指令;(3)由运算器[4]、控制器、存储器、输入设备和输出设备组成基本硬件系统;(4)由控制器来控制程序和数据的存取及程序的执行;(5)以运算器为核心。1.2 微处理器[5]和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?[解答]经历了6代演变,各典型芯片的特点如表1-1所示。表1-1 微处理器的发展及典型芯片的特点发展时代类别典型芯片及性能特点第一代(1971~1973年)4、8位低档微处理器Intel 4004集成2300多个晶体管,主频108KHz,寻址[6]640Byte,指令系统简单;Intel 8008采用PMOS工艺,集成3500晶体管,基本指令48条,主频500KHz。 第二代(1974~1977年)8位中高档微处理器Intel 8080采用NMOS工艺,集成6000晶体管,主频2MHz,指令系统较完善,寻址能力增强,运算速度提高了一个数量级。第三代(1978~1984年)16位微处理器Intel 8086采用HMOS工艺,集成29000晶体管,主频5MHz/8MHz/10MHz ,寻址1MB。Intel 80286集成度[7]达到13.4万晶体管,主频20MHz。第四代(1985~1992年)32位微处理器Intel 80386集成27.5万个晶体管,主频33MHz,4GB物理寻址[8]。有分段存储和分页[9]存储部件,可管理64TB虚拟存储空间。Intel 80486集成120万个晶体管,包含浮点运算部件和8KB的一级高速缓冲存储器Cache。第五代(1993~1999年)超级32位微处理器Intel Pentium、Pentium Pro、Pentium MMX、Pentium II、 Pentium III、Pentium 4微处理器等,采用新式处理器结构,数据加密、视频压缩和对等网络[10]等方面性能有较大幅度提高。第六代(2000年以后)64位微处理器Merced由Intel公司与HP公司联手开发的Merced采用全新的IA-64结构设计,是一种采用长指令字[11]、指令预测、分支消除、推理装入和其他一些先进技术的全新结构微处理器。1.3 微型计算机的特点和主要性能指标[12]有那些?[解答]Pentium微处理器的主要部件包括总线接口部件、指令高速缓存[13]器、数据高速缓存器、指令预取[14]部件与转移目标缓冲器[15]、寄存器[16]组、指令译码部件、具有两条流水线的整数处理部件(U流水线和V流水线)、以及浮点处理部件FPU等。各主要部件的功能分析[17]如下:(1)整数处理部件:U流水线和V流水线都可以执行整数指令,U流水线还可执行浮点指令。因此能够在每个时钟周期[18]内同时执行两条整数指令。(2)浮点处理部件FPU:高度流水线化的浮点操作[19]与整数流水线集成在一起。微处理器内部流水线进一步分割成若干个小而快的级段。(3)独立的数据和指令高速缓存Cache:两个独立的8KB指令和8KB数据Cache可扩展到12KB,允许同时存取,内部数据传输[20]效率更高。两个Cache采用双路相关联的结构,每路128个高速缓存行,每行可存放32B。数据高速缓存两端口对应U、V流水线。(4)指令集与指令预取:指令预取缓冲器顺序地处理指令地址,直到它取到一条分支指令[21],此时存放有关分支历史信息的分支目标缓冲器BTB将对预取[22]到的分支指令是否导致分支进行预测。(5)分支预测:指令预取处理中增加了分支预测逻辑,提供分支目标缓冲器来预测程序转移。Pentium微处理器的主要特点如下:(1)采用超标量双流水线结构;(2)采用两个彼此独立的高速缓冲存储器;(3)采用全新设计的增强型浮点运算器(FPU);(4)可工作在实地址[23]方式、保护方式、虚拟8086方式以及SMM系统管理方式;(5)常用指令进行了固化及微代码改进,一些常用的指令用硬件实现。2.19 什么是虚拟存储技术?该技术的主要优点有那些?[解答]虚拟存储技术是一种存储管理[24]技术,采用硬件、软件相结合的方法,由系统自动分批将程序调入内存,不断地用新的程序段[25]来覆盖内存中暂时不用的老程序段。虚拟存储技术的主要优点有:(1)扩大了程序可访问的存储空间;(2)便于实施多任务的保护和隔离;(3)便于操作系统实现[26]内存管理[27]。2.20 简要分析Pentium系列微处理器的4种工作方式具备的特点。[解答](1)实地址方式:系统加电或者复位时进入实地址方式,使用16位80X86的寻址方式[28]、存储器管理和中断管理;使用20位地址寻址1MB空间,可用32位寄存器执行大多数指令。(2)保护方式:支持多任务运行环境,对任务进行隔离和保护,进行虚拟存储管理[29]能够充分发挥Pentium微处理器的优良性能。(3)虚拟8086方式:是保护模式下某个任务的工作方式,允许运行多个8086程序,使用8086的寻址方式,每个任务使用1MB的内存空间。(4)系统管理方式:主要用于电源管理,可使处理器和外设部件进入“休眠”,在有键盘按下或鼠标移动时“唤醒”系统使之继续工作;利用SMM可以实现软件关机。习题33.1 简要分析8086的指令格式[30]由哪些部分组成,什么是操作码[31]?什么是操作数[32]?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?[解答]8086的指令格式由操作码和操作数字段组成。操作码:要完成的操作。操作数:参与操作的对象。寻址:寻找操作数或操作数地址的过程。寻址方式:指令中给出的找到操作数或操作数地址采用的方式。8086指令系统的寻址方式主要有立即数寻址[33]、寄存器寻址、存储器寻址和I/O端口寻址。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址[34]、寄存器相对寻址[35]、基址变址[36]寻址、相对基址变址寻址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。3.2 设(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,数据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是多少?(1) MOV AX,21H (2) MOV AX,BX (3) MOV AX,[1000H](4) MOV AX,VAL (5) MOV AX,[BX] (6) MOV AX,ES:[BX](7) MOV AX,[BP] (8) MOV AX,[SI] (9) MOV AX,[BX+10](10) MOV AX,VAL[BX] (11) MOV AX,[BX][SI] (12) MOV AX,VAL[BX][SI][解答](1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,[1000H]直接寻址,EA = 1000H,PA =(DS)×10H+EA = 2000H×10H+1000H = 21000H(4) MOV AX,VAL直接寻址,EA = [VAL] = 0050H,PA =(DS)×10H+EA = 2000H×10H+0050H = 20050H(5) MOV AX,[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H(6) MOV AX,ES:[BX]寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)×10H+EA = 2100H×10H+0100H = 21100H(7) MOV AX,[BP]寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)×10H+EA = 1500H×10H+0010H = 15010H(8) MOV AX,[SI]寄存器间接寻址,EA =(SI)= 00A0H,PA =(DS)×10H+EA = 2000H×10H+00A0H = 200A0H(9) MOV AX,[BX+10]相对寄存器寻址,EA =(BX)+10D = 0100H+000AH= 010AH,PA =(DS)×10H+EA = 2000H×10H+010AH = 2010AH(10) MOV AX,VAL[BX]相对寄存器寻址,EA =(BX)+[VAL]= 0100H+0050H= 0150H,PA =(DS)×10H+EA = 2000H×10H+0150H = 20150H(11) MOV AX,[BX][SI]基址变址寻址,EA = (BX)+(SI)= 0100H+00A0H = 01A0H,PA = (DS)×10H+EA = 2000H×10H+01A0H = 201A0H(12) MOV AX,VAL[BX][SI]相对基址变址寻址,EA = (BX)+(SI)+[VAL]= 0100H+00A0H+0050H = 01F0H,PA =(DS)×10H+EA = 2000H×10H+01F0H = 201F0H3.3 给定寄存器及存储单元[37]的内容为:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) = 32H,(20101) = 51H,(20102) = 26H,(20103) = 83H,(21200) = 1AH,(21201) = B6H,(21202) = D1H,(21203) = 29H。试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。(1) MOV AX,1200H (2) MOV AX,BX (3) MOV AX,[1200H](4) MOV AX,[BX] (5) MOV AX,1100H[BX] (6) MOV AX,[BX][SI][解答](1) MOV AX,1200H ;执行后,(AX)= 1200H(2) MOV AX,BX ;执行后,(AX)= (BX)= 0100H(3) MOV AX,[1200H]直接寻址,EA = [VAL] = 1200H,PA =(DS)×10H+EA = 2000H×10H+1200H = 21200H,执行后,(AX)= B61AH(4) MOV AX,[BX]EA = (BX)= 0100H,PA =(DS)×10H+EA = 2000H×10H+0100H = 20100H,执行后,(AX)= 5132H(5) MOV AX,1100H[BX]EA =(BX)+1100H = 0100H+1100H = 1200H,PA =(DS)×10H+EA = 2000H×10H+1200H = 21200H,执行后,(AX)= B61AH(6) MOV AX,[BX][SI]EA =(BX)+(SI)= 0100H+0002H = 0102H,PA =(DS)×10H+EA = 2000H×10H+0102H = 20102H,执行后,(AX)= 29D1H3.4 分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1) MOV AH,BX (2) MOV [BX],[SI](3) MOV AX,[SI][DI] (4) MOV MYDAT[BX][SI],ES:AX(5) MOV BYTE PTR[BX],1000 (6) MOV BX,OFFSET MAYDAT[SI](7) MOV CS,AX (8) MOV DS,BP[解答](1) MOV AH,BX错误,寄存器类型不匹配,可改为MOV AX,BX(2) MOV [BX],[SI]错误,两个操作数不能都为存储单元,可改为MOV BX,[SI]或MOV [BX],SI(3) MOV AX,[SI][DI]错误,寻址方式中只能出现一个变址寄存器[38],可改为MOV AX,[BX][DI]。(4) MOV MYDAT[BX][SI],ES:AX错误,AX签不能有段跨越前缀,去掉ES:,改为MOV MYDAT[BX][SI],AX(5) MOV BYTE PTR[BX],1000错误,1000超出字节空间存储范围(6) MOV BX,OFFSET MAYDAT[SI] ;正确(7) MOV CS,AX错误,MOV指令CS不能做目的操作数,可改为MOV DS,AX(8) MOV DS,BP ;正确注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。3.5 设VAR1、VAR2为字变量,LAB为标号[39],分析下列指令的错误之处并加以改正。(1) ADD VAR1,VAR2 (2) MOV AL,VAR2(3) SUB AL,VAR1 (4) JMP LAB[SI](5) JNZ VAR1 (6) JMP NEAR LAB[解答](1) ADD VAR1,VAR2错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2
题目解答
答案
赠送以下资料 考试 知识点 技巧大全