《微型计算机原理与接口技术》.doc_第1页
《微型计算机原理与接口技术》.doc_第2页
《微型计算机原理与接口技术》.doc_第3页
《微型计算机原理与接口技术》.doc_第4页
《微型计算机原理与接口技术》.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

16微机原理与接口技术习题解答习题11.1 冯诺依曼型计算机的设计方案有哪些特点?【解答】冯诺依曼型计算机的设计方案是“存储程序”和“程序控制”,有以下5方面特点:(1)用二进制数表示数据和指令;(2)指令和数据存储在内部存储器中,按顺序自动依次执行指令;(3)由运算器、控制器、存储器、输入设备和输出设备组成基本硬件系统;(4)由控制器来控制程序和数据的存取及程序的执行;(5)以运算器为核心。1.4 常见的微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?【解答】微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。主要组成部件的功能和特点分析如下:(1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。(2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。可分为随机存储器RAM和只读存储器ROM。RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。(3)系统总线:是CPU与其它部件之间传送数据、地址和控制信息的公共通道。可分成数据总线DB、地址总线AB、控制总线CB。(4)输入/输出接口电路:完成微型计算机与外部设备之间的信息交换。由寄存器组、专用存储器和控制电路等组成。(5)主机板:由CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接口、各种跳线和一些辅助电路等硬件组成。(6)外存储器: 使用最多的是磁盘存储器(软盘、硬盘)和光盘存储器。外存储器容量大,保存的信息不会丢失。(7)输入/输入设备:是微型计算机系统与外部进行通信联系的主要装置。常用的有键盘、鼠标、显示器、打印机和扫描仪等。1.5 什么是微型计算机的系统总线?说明数据总线、地址总线、控制总线各自的作用。【解答】系统总线是CPU与其它部件之间传送数据、地址和控制信息的公共通道。(1)数据总线:用来传送数据,主要实现CPU与内存储器或I/O设备之间、内存储器与I/O设备或外存储器之间的数据传送。(2)地址总线:用来传送地址。主要实现从CPU送地址至内存储器和I/O设备,或从外存储器传送地址至内存储器等。(3)控制总线:用于传送控制信号、时序信号和状态信息等。1.7 计算机中有哪些常用的数制和码制?如何进行数制之间的转换?【解答】数值数据经常用二进制、十进制、八进制和十六进制;字符数据使用ASCII码;表示十进制数字用BCD码。(1)十进制到二进制:整数部分连续除以2后“倒取余”,小数部分连续乘以2后“正取整”;(2)二进制到十进制:将二进制数按权展开即可。(3)二进制到八进制:将3位二进制一组对应1位八进制数码。(4)八进制到二进制:将1位八进制数码对应3位二进制数码。十六进制与二进制间转换与八进制与二进制间转换类似,只是比例关系为1位十六进制数码对应4位二进制数码。1.8 将下列十进制数分别转化为二进制数、十六进制数和压缩BCD码。(1)15.32 (2)325.16 (3)68.31 (4)214.126 【解答】:(1)15.32 = 1111.0101B = F.5H=00010101.00110010BCD。(2)325.16 = 10000101.0001B = 85.1H= 001100100101.00010110BCD。(3)68.31 = 1000100.0100B = 64.4H= 01101000.00110001BCD。(4)214.126 = 11010110.0010B = D6.2H= 001000010100.000100100110BCD。1.9 将下列二进制数分别转化为十进制数、八进制数和十六进制数。(1)10010101 (2)11001010 (3)10111.1101 (4)111001.0101【解答】(1) 11001010 = 202 = 312Q = CAH(2) 10111.1101 = 23.8125 = 27.64Q = 17.DH(3) 111001.0101 = 57.625 = 71.24Q = 39.5H1.10 将下列十六进制数分别转化为二进制数、十进制数。(1)FAH (2)12B8H (3)5A8.62H(4)2DF.2H【解答】(1) FAH = 11111010B = 250(2) 12B8H = 0001001010111000B = 4792(3) 5A8.62H = 010110101000.01100010B = 1448.3828125(4) 2DF.2H = 001011011111.0010B = 735.0078125习题22.1 8086CPU具有 20 条地址线,可直接寻址 1MB 容量的内存空间,在访问I/O端口时,使用地址线 16条 ,最多可寻址 64K 个I/O端口。 2.2 8086CPU的内部结构有何特点?由哪两部分组成?它们的主要功能是什么?【解答】8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的流水线结构结合起来而获得较高的性能。8086微处理器内部安排了两个逻辑单元,即执行部件EU和总线接口部件BIU。EU主要负责指令译码、执行和数据运算,包括计算有效地址;BIU主要完成计算物理地址、从内存中取指令、实现指令规定的读/写存储器或外部设备等信息传输类操作。2.3 8086CPU中的指令队列的作用是 预取指令 ,其长度是 6 字节。2.4 8086CPU内部寄存器有哪几种?各自的特点和作用是什么?【解答】CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。通用寄存器是一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前指令在代码段的偏移位置;FLAG用于反映指令执行结果或控制指令执行的形式。为了实现寻址1MB存储器空间,8086CPU将1MB的存储空间分成若干个逻辑段进行管理,4个16位的段寄存器来存放每一个逻辑段的段起始地址。2.5 8086的标志寄存器分为 6 个 状态 标志位和 3 个 控制 标志位,它们各自的含义和作用是什么?【解答】标志寄存器各标志位的含义和作用如下表:表2-1 标志寄存器FLAG中标志位的含义和作用标志位含义作用CF进位标志CF=1,指令执行结果在最高位上产生一个进位或借位;CF=0,则无进位或借位产生PF奇偶标志PF=1,结果低8位含偶数个1;PF=0,表示结果低8位含奇数个1AF辅助进位标志AF=1,运算结果的低4位产生了一个进位或借位;AF=0,则无此进位或借位ZF零标志ZF=1,运算结果为零;ZF=0,则运算结果不为零SF符号标志SF=1,运算结果为负数;SF=0,则结果为正数OF溢出标志OF=1,带符号数在进行运算时产生了溢出;OF=0,则无溢出TF陷阱标志TF=1,8086CPU处于单步工作方式;TF=0,8086CPU正常执行程序IF中断允许标志IF=1,允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;IF=0,则禁止接受可屏蔽中断请求DF方向标志DF=1,字符串操作指令按递减的顺序对字符串进行处理;DF=0,字符串操作指令按递增的顺序进行处理2.6 已知堆栈段寄存器(SS)=2400H,堆栈指针(SP)=1200H,计算该堆栈栈顶的实际地址,并画出堆栈示意图。【解答】(SS)=2400H,(SP)=1200H图2-1 堆栈示意图SP堆栈段栈底;PA=(SS)10H(SP)= 2400H10H1200H = 25200H。2.7 8086的存储器采用 奇偶存储体 结构,数据在内存中的存放规定是 低字节存放在低地址中,高字节存放在高地址中,以低地址为字的地址,规则字是指 低字节地址为偶地址的字,非规则字是指 低字节的地址为奇地址的字。2.8 解释逻辑地址、偏移地址、有效地址、物理地址的含义,8086存储器的物理地址是如何形成的?怎样进行计算?【解答】逻辑地址:表示为段地址:偏移地址,书写程序时用到,一个存储单元可对应出多个逻辑地址;偏移地址:是某一存储单元距离所在逻辑段的开始地址的字节个数。有效地址:是指令中计算出的要访问的存储单元的偏移地址。物理地址:是CPU访问存储器时用到的20位地址,是存储单元的唯一的编号。物理地址计算公式:物理地址 = 段地址10H有效地址(或偏移地址)2.9 8086系统中的存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么?【解答】8086CPU将1MB的存储空间分成逻辑段来进行管理:每个逻辑段最小为16B。所以最多可分成64K个段;每个逻辑段最大为64KB,最少可分成16个逻辑段。各段的起始位置由程序员指出,可以彼此分离,也可以首尾相连、重叠或部分重叠。4个16位的段寄存器用来存放每一个逻辑段的段起始地址:CS中为代码段的起始地址;DS中为数据段的起始地址;SS中为堆栈段的起始地址;ES中为附加段的起始地址。2.10 I/O端口有哪两种编址方式,各自的优缺点是什么?【解答】I/O端口有两种编址方式:统一编址和独立编址。统一编址方式是将I/O端口与内存单元统一起来进行编号,即包括在1MB的存储器空间中,看作存储器单元,每个端口占用一个存储单元地址。该方式主要优点是不需要专门的I/O指令,对I/O端口操作的指令类型多;缺点是端口要占用部分存储器的地址空间,不容易区分是访问存储器还是外部设备。独立编址的端口单独构成I/O地址空间,不占用存储器地址。优点是地址空间独立,控制电路和地址译码电路简单,采用专用的I/O指令,使得端口操作的指令在形式上与存储器操作指令有明显区别,程序容易阅读;缺点是指令类别少,一般只能进行传送操作。2.11 8086的最大工作模式和最小各种模式的主要区别是什么?如何进行控制?【解答】两种模式的主要区别是:8086工作在最小模式时,系统只有一个微处理器,且系统所有的控制信号全部由8086 CPU提供;在最大模式时,系统由多个微处理器/协处理器构成的多机系统,控制信号通过总线控制器产生,且系统资源由各处理器共享。8086CPU工作在哪种模式下通过CPU的第33条引脚MN/来控制:MN/=1,系统就处于最小工作模式;MN/=0,系统处于最大工作模式。2.12 在内存有一个由20个字节组成的数据区,其起始地址为1100H:0020H。计算出该数据区在内存的首末单元的实际地址。【解答】逻辑地址1100H:0020H对应的物理地址为PA=1100H10H0020H= 11020H,即该数据区在内存中的首单元的物理地址为11020H;因为存储空间中每个字节单元对应一个地址,所以20个字节对应20个地址,则该数据区在内存中的末单元的物理地址PA = 11020H20D = 11020H14H = 11034H。2.13 已知两个16位的字数据268AH和357EH,它们在8086存储器中的地址分别为00120H和00124H,试画出它们的存储示意图。【解答】存储示意图参见图2-2。8AH00120H50H00510H26H00121H65H00511H00122H6EH00512H00123H74H00513H7EH00124H69H00514H35H00125H75H00515H6DH00516H图2-2 数据的存储示意 图2-3 字符的存储示意2.14 找出字符串“Pentium”的ASCII码,将它们依次存入从00510H开始的字节单元中,画出它们存放的内存单元示意图。 【解答】存储示意图参见图2-3。2.15 在内存中保存有一个程序段,其位置为(CS)=33A0H,(IP)=0130H,当计算机执行该程序段指令时,分析实际启动的物理地址是多少。【解答】逻辑地址(CS):(IP)= 33A0H:0130H,计算出对应物理地址PA= (CS)10H(IP)= 33A0H10H0130H = 33B30H2.16 什么是总线周期?8086CPU的读/写总线周期各包含多少个时钟周期?什么情况下需要插入等待周期TW,什么情况下会出现空闲状态TI?【解答】8086CPU经外部总线对存储器或I/O端口进行一次信息的输入或输出过程所需要的时间,称为总线周期。8086CPU的读/写总线周期通常包括T1、T2、T3、T4状态4个时钟周期。在高速的CPU与慢速的存储器或I/O接口交换信息时,为了防止丢失数据,会由存储器或外设通过READY信号线,在总线周期的T3和T4之间插入1个或多个必要的等待状态TW,用来进行必要的时间补偿。在BIU不执行任何操作的两个总线周期之间会出现空闲状态TI。2.17 80286CPU的内部结构与8086相比,有哪些增加的部件?其主要特点和功能是什么?【解答】80286 CPU的可编程寄存器在8086寄存器结构的基础上,增加了一个16位的机器状态字寄存器MSW。而且为适应80286性能的提高,在8086的状态标志寄存器F中,又增加使用了3个位,即IOPLI/O特权层标志(占用12、13位)和NT嵌套任务标志(占用14位)。NT标志位表示当前执行的任务嵌套于另一任务中,IOPL用来定义当前任务的I/O特权层。2.18 简述Pentium微处理器的内部组成结构和主要部件的功能,Pentium微处理器的主要特点有哪些?【解答】Pentium微处理器的主要部件包括总线接口部件、指令高速缓存器、数据高速缓存器、指令预取部件与转移目标缓冲器、寄存器组、指令译码部件、具有两条流水线的整数处理部件(U流水线和V流水线)、以及浮点处理部件FPU等。各主要部件的功能分析如下:(1)整数处理部件:U流水线和V流水线都可以执行整数指令,U流水线还可执行浮点指令。因此能够在每个时钟周期内同时执行两条整数指令。(2)浮点处理部件FPU:高度流水线化的浮点操作与整数流水线集成在一起。微处理器内部流水线进一步分割成若干个小而快的级段。(3)独立的数据和指令高速缓存Cache:两个独立的8KB指令和8KB数据Cache可扩展到12KB,允许同时存取,内部数据传输效率更高。两个Cache采用双路相关联的结构,每路128个高速缓存行,每行可存放32B。数据高速缓存两端口对应U、V流水线。(4)指令集与指令预取:指令预取缓冲器顺序地处理指令地址,直到它取到一条分支指令,此时存放有关分支历史信息的分支目标缓冲器BTB将对预取到的分支指令是否导致分支进行预测。(5)分支预测:指令预取处理中增加了分支预测逻辑,提供分支目标缓冲器来预测程序转移。Pentium微处理器的主要特点如下:(1)采用超标量双流水线结构;(2)采用两个彼此独立的高速缓冲存储器;(3)采用全新设计的增强型浮点运算器(FPU);(4)可工作在实地址方式、保护方式、虚拟8086方式以及SMM系统管理方式;(5)常用指令进行了固化及微代码改进,一些常用的指令用硬件实现。2.19 什么是虚拟存储技术?该技术的主要优点有那些?【解答】虚拟存储技术是一种存储管理技术,采用硬件、软件相结合的方法,由系统自动分批将程序调入内存,不断地用新的程序段来覆盖内存中暂时不用的老程序段。虚拟存储技术的主要优点有:(1)扩大了程序可访问的存储空间;(2)便于实施多任务的保护和隔离;(3)便于操作系统实现内存管理。2.20 简要分析Pentium系列微处理器的4种工作方式具备的特点。【解答】(1)实地址方式:系统加电或者复位时进入实地址方式,使用16位80X86的寻址方式、存储器管理和中断管理;使用20位地址寻址1MB空间,可用32位寄存器执行大多数指令。(2)保护方式:支持多任务运行环境,对任务进行隔离和保护,进行虚拟存储管理能够充分发挥Pentium微处理器的优良性能。(3)虚拟8086方式:是保护模式下某个任务的工作方式,允许运行多个8086程序,使用8086的寻址方式,每个任务使用1MB的内存空间。(4)系统管理方式:主要用于电源管理,可使处理器和外设部件进入“休眠”,在有键盘按下或鼠标移动时“唤醒”系统使之继续工作;利用SMM可以实现软件关机。习题33.1 简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式的含义是什么?8086指令系统有哪些寻址方式?【解答】8086的指令格式由操作码和操作数字段组成。操作码:要完成的操作。操作数:参与操作的对象。寻址:寻找操作数或操作数地址的过程。寻址方式:指令中给出的找到操作数或操作数地址采用的方式。8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。其中,存储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址;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,VALBX (11) MOV AX,BXSI (12) MOV AX,VALBXSI【解答】(1) MOV AX,21H立即寻址,源操作数直接放在指令中(2) MOV AX,BX寄存器寻址,源操作数放在寄存器BX中(3) MOV AX,1000H直接寻址,EA = 1000H,PA =(DS)10HEA = 2000H10H1000H = 21000H(4) MOV AX,VAL直接寻址,EA = VAL = 0050H,PA =(DS)10HEA = 2000H10H0050H = 20050H(5) MOV AX,BX寄存器间接寻址,EA =(BX)= 0100H,PA =(DS)10HEA = 2000H10H0100H = 20100H(6) MOV AX,ES:BX寄存器间接寻址,EA =(BX)= 0100H,PA =(ES)10HEA = 2100H10H0100H = 21100H(7) MOV AX,BP寄存器间接寻址,EA =(BP)= 0010H,PA =(SS)10HEA = 1500H10H0010H = 15010H(8) MOV AX,SI寄存器间接寻址,EA =(SI)= 00A0H,PA =(DS)10HEA = 2000H10H00A0H = 200A0H(9) MOV AX,BX+10相对寄存器寻址,EA =(BX)10D = 0100H000AH= 010AH,PA =(DS)10HEA = 2000H10H010AH = 2010AH(10) MOV AX,VALBX相对寄存器寻址,EA =(BX)VAL= 0100H0050H= 0150H,PA =(DS)10HEA = 2000H10H0150H = 20150H(11) MOV AX,BXSI基址变址寻址,EA = (BX)(SI)= 0100H00A0H = 01A0H,PA = (DS)10HEA = 2000H10H01A0H = 201A0H(12) MOV AX,VALBXSI相对基址变址寻址,EA = (BX)(SI)VAL= 0100H00A0H0050H = 01F0H,PA =(DS)10HEA = 2000H10H01F0H = 201F0H3.3 给定寄存器及存储单元的内容为:(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,1100HBX (6) MOV AX,BXSI【解答】(1) MOV AX,1200H ;执行后,(AX)= 1200H(2) MOV AX,BX ;执行后,(AX)= (BX)= 0100H(3) MOV AX,1200H 直接寻址,EA = VAL = 1200H,PA =(DS)10HEA = 2000H10H1200H = 21200H,执行后,(AX)= B61AH(4) MOV AX,BXEA = (BX)= 0100H,PA =(DS)10HEA = 2000H10H0100H = 20100H,执行后,(AX)= 5132H(5) MOV AX,1100HBXEA =(BX)1100H = 0100H1100H = 1200H,PA =(DS)10HEA = 2000H10H1200H = 21200H,执行后,(AX)= B61AH(6) MOV AX,BXSIEA =(BX)(SI)= 0100H0002H = 0102H,PA =(DS)10HEA = 2000H10H0102H = 20102H,执行后,(AX)= 29D1H3.4 分析下列指令的正误,对于错误的指令要说明原因并加以改正。(1) MOV AH,BX (2) MOV BX,SI(3) MOV AX,SIDI (4) MOV MYDATBXSI,ES:AX(5) MOV BYTE PTRBX,1000 (6) MOV BX,OFFSET MAYDATSI (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,SIDI错误,寻址方式中只能出现一个变址寄存器,可改为MOV AX,BXDI。(4) MOV MYDATBXSI,ES:AX错误,AX签不能有段跨越前缀,去掉ES:,改为MOV MYDATBXSI,AX(5) MOV BYTE PTRBX,1000错误,1000超出字节空间存储范围(6) MOV BX,OFFSET MAYDATSI ;正确(7) MOV CS,AX错误,MOV指令CS不能做目的操作数,可改为MOV DS,AX(8) MOV DS,BP ;正确注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。3.5 设VAR1、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。(1) ADD VAR1,VAR2 (2) MOV AL,VAR2(3) SUB AL,VAR1 (4) JMP LABSI(5) JNZ VAR1 (6) JMP NEAR LAB【解答】(1) ADD VAR1,VAR2错误,两个操作数不能都为存储单元,可改为 MOV BX,VAR2ADD VAR1,BX(2) MOV AL,VAR2错误,数据类型不匹配,可改为MOV AX,VAR2(3) SUB AL,VAR1错误,数据类型不匹配,可改为SUB AX,VAR1(4) JMP LABSI错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMP VAR1SI(5) JNZ VAR1错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZ LAB(6) JMP NEAR LAB错误,缺少运算符PTR,可改为JMP NEAR PTR LAB注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。3.6 写出能够完成下列操作的8086CPU指令。(1) 把4629H传送给AX寄存器;(2) 从AX寄存器中减去3218H;(3) 把BUF的偏移地址送入BX中。【解答】(1) MOV AX,4629H(2) SUB AX,3218H(3) LEA BX,BUF3.7 根据以下要求写出相应的汇编语言指令。 (1) 把BX和DX寄存器的内容相加,结果存入DX寄存器中; (2) 用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存器中; (3) 用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器单元中; (4) 用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储器中; (5) 把数25H与(AL)相加,结果送回寄存器AL中。【解答】(1) ADD DX,BX(2) ADD AL,BXSI(3) ADD 21B5HBX,CX(4) ADD WORD PTR 2158H,3160H(5) ADD AL,25H3.8 写出将首地址为BLOCK的字数组的第6个字送到CX寄存器的指令序列,要求分别使用以下几种寻址方式:(1) 以BX的寄存器间接寻址(2) 以BX的寄存器相对寻址(3) 以BX、SI的基址变址寻址【解答】(1) LEA BX,BLOCK+10MOV CX,BX(2) LEA BX,BLOCKMOV CX,10BX(3) LEA BX,BLOCKMOV SI,10MOV CX,BXSI3.9 执行下列指令后,AX寄存器中的内容是什么?TABLE DB 10,20,30,40,50ENTRY DW 3 MOV BX,OFFSET TABLEADD BX,ENTRYMOV AX,BXAX= 【解答】AX= 3228H 3.10 下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。 DATA SEGMENTDD1 DB 23HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,OFFSET DD1MOV AL,SIMOV CL,4RCR AL,CLMOV SI,ALMOV AH,4CHINT 21HCODE ENDS END START【解答】程序第8行错误:LEA SI,OFFSET DD1,应去掉OFFSET;程序第10行错误:RCR AL,CL,应使用ROR或ROL,改为ROR AL,CL3.11 已知用寄存器BX作地址指针,自BUF所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,并将结果存放在这3个数之后。【解答】参考程序如下:LEA BX,BUFMOV AX,BXADD AX,BX+2ADD AX,BX+4MOV BX+6,AX3.12 分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪3种属性?【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加数据段,至少要有一个代码段。各段的作用如下:(1)代码段用来存放程序和常数。(2)数据段用于数据的保存。(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。(4)附加数据段用于数据的保存。语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。3.13 执行完下列程序后,回答指定的问题。MOV AX,0MOV BX,2MOV CX,50LP:ADD AX,BXADD BX,2LOOP LP问:(1) 该程序的功能是 。(2) 程序执行完成后,(AX)= 。【解答】(1)完成0到100间所有偶数求和的功能。(2)25503.14 编写程序,计算下面函数的值。【解答】DATA SEGMENT X DW 34 S DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AX,X ;将X送到AX中 CMP AX,0 ;(AX)0吗? JL DOUB ;是,转向doub CMP AX,10 ;否,(ax)10吗? JLE TRIB ;是,转向trib SAL AX,1 ;否,乘以4 SAL AX,1 JMP EXITDOUB: SAL AX,1 ;乘以2 JMP EXITTRIB: SAL AX,1 ;乘以3 ADD AX,XEXIT: MOV S,AX ;保存结果 MOV AH,4CH ;结束 INT 21HCODE ENDS END START注意,在比较的过程中使用的是针对带符号数的跳转指令,应该看作带符号数。程序中还用了移位指令代替了乘法指令。3.15 从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。【解答】DATA SEGMENT BLOCK DB 100 DUP (?) COUNT DB ?DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCKLP: MOV AH,1INT 21HCMP AL,0DHJZ EXIT MOV SI,AL CMP AL,30HJAE NEXTCMP AL,39HJBE NEXT INC DLNEXT: INC SI JMP LPEXIT: MOV COUNT,DLMOV AH,4CH INT 21HCODE ENDS END START3.16 已知在内存中从BLOCK单元起存放有20个带符号字节数据,统计其中负数的个数并放入COUNT单元。【解答】DATA SEGMENT BLOCK DB -7,1,12,-90,-70,34,-1,56,45,-12 DB -3,-4,23,0,12,11,-9,-8,67,-56 CN EQU $-BLOCK COUNT DB ?DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV DL,0 LEA SI,BLOCK MOV CX,CNLP: MOV AL,SI TEST AL,80H JZ NEXT INC DLNEXT: INC SI LOOP LP MOV COUNT,DL MOV AH,4CH INT 21HCODE ENDS END START3.17 从键盘输入一个大写英文字母,将其转换为小写字母并显示出来,要求输入其它字符时,能够有出错提示信息。【解答】DATA SEGMENT MESS DB INPUP ERROR!,0AH,0DH,$DATA ENDSCODE SEGMENT ASSUME DS:DATA,CS:CODESTART:MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H CMP AL,A JB ERR CMP AL,Z JA ERR ADD AL,20H MOV DL,AL MOV AH,02H INT 21H JMP EXITERR: MOV DX,OFFSET MESS MOV AH,09H INT 21HEXIT: MOV AH,02H INT 21HCODE ENDS END START3.18 比较宏指令与子程序,它们有何异同?它们的本质区别是什么?【解答】宏与子程序两者的相同之处在于都是用来处理在编程过程中多次使用的功能程序的方法,两者均能简化源程序。两者的区别在于:(1)宏调用通过宏指令名进行,汇编时,随时调用随时展开,并不简化目标程序;子程序调用是在程序执行期间执行CALL指令,代码只在目标程序中出现一次,所以也简化了目标程序。(2)宏调用时的参数由汇编程序通过实参转换成形参的方式传递,具有很大的灵活性。宏定义中允许设置若干形式参数代替数值、指令、寄存器、各种字符串等。宏调用时可用程序所需要的实际参数来替换,使编程人员感觉非常灵活;而子程序的参数传递要麻烦得多。(3)宏调用在汇编时完成,不需要额外的时间开销;子程序调用和子程序返回都需要时间,还涉及堆栈操作。故若优先考虑速度,用宏指令;若优先考虑存储空间,用子程序。3.19 试定义将一位十六进制数转换为ASCII码的宏指令。【解答】HEXTOA MACRO AND AL,0FH CMP AL,9JNA HEXTOA1ADD AL,7HHEXTOA1:ADD AL,30HENDM3.20 试定义一个字符串搜索宏指令,要求文本首地址和字符串首地址用形式参数。【解答】SCANC MACRO ADDRESS,CHAR1MOV SI,ADDRESSMOV AL,SIMOV DI,CHAR1REPNZ SCASBENDM习题44.7 已知某微机系统的RAM容量为4K8位,首地址为2600H,求其最后一个单元的地址。【解答】RAM的容量为4K8位=4KB,对应的地址有4K个,首地址为2600H,则其最后一个单元的地址为2600H(4K1)= 2600H4095 = 2600HFFFH = 35FFH4.8 已知一个具有14位地址和8位数据的存储器,回答下列问题:(1)该存储器能存储多少字节的信息?(2)如果存储器由8K4位RAM芯片组成,需要多少片?(3)需要多少位地址作芯片选择?【解答】(1)该存储器能存储的字

温馨提示

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

评论

0/150

提交评论