微机原理与接口答案.docx_第1页
微机原理与接口答案.docx_第2页
微机原理与接口答案.docx_第3页
微机原理与接口答案.docx_第4页
微机原理与接口答案.docx_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

微型计算机原理及应用课程辅导材料(习题解答)马义德张在峰徐光柱袁敏李柏年编兰州大学信息科学与工程学院目录第一章微型计算机发展概述.1第二章8086/8088 16位微处理器.2第三章存储器技术.6第四章指令与寻址方式.10第五章汇编语言程序设计.17第六章输入输出处理方法.41第七章微型计算机综合应用与发展.41第一章 微型计算机的发展概述习题解答1从第一代计算机第四代计算机体系结构都是相同的,都是由运算器、控制器、存储器以及输入输出组成的、这种体系结构称为什么体系结构?答:冯诺依曼体系结构。2一个完整的计算机系统通常包括系统软件和应用软件、硬件系统和软件系统、计算机及其外部设备、系统硬件和系统软件这四种组合中的哪一种?答:硬件系统和软件系统。3通常我们所说的32位机,指的是这种计算机CPU是什么样的?答:总线的数据宽度为32位。4若某台微型计算机的型号是486/25,则其中25的含义是什么?答:25的含义是运算速度是25MB/s。5操作系统是计算机发展到第几代出现的?答:操作系统是计算机发展到第三代期间出现的。6决定微机性能的主要是CPU、总线、I/O接口电路的处理速度、价格、耗电量还是质量?答:CPU、总线和I/O接口电路的处理速度。7现代计算机之所以能自动地连续进行数据处理,主要是它有什么功能?答:它有程序计数器和指令寄存器。8微机的主要性能指标有哪些?答:主要有CPU的处理速度,总线的数据宽度,内存数据宽度,带外设的能力等。9有些高级语言程序在计算机中执行时,采用的是解释方式。源程序由哪一种程序边翻译边执行?答:解释程序。10在计算机中为什么要使用局部总线?什么是PCI总线?它和AGP总线有什么区别?答:局部总线是在ISA总线和CPU总线之间增加了一级总线,这样可将一些高速外设从ISA总线上卸下来,而通过局部总线直接挂到CPU总线上,使之与高速的CPU相匹配。PCI总线时钟为33MHz,总线数据宽度为32位,并可扩展为64位,具有高速的数据通道,是一种局部总线。AGP总线的时钟为66MHz,传输速率也比PCI快,为264 MB/s。目前,AGP总线时钟发展到4X66MHZ。第二章8086/8088 16位微处理器习题解答1试说明8086/8088CPU中有哪些寄存器?各有哪些用途?答:寄存器组有(1)数据寄存器,含AX、BX、CX、DX四个通用寄存器,用来暂时存放计算过程中所遇到的操作数,结果和其它信息。(2)指针及变址寄存器,含SP、BP、SI、DI四个十六位寄存器,它们可以像寄存器一样在运算过程中存放操作数只能以字为单位使用。还用来在段内寻址时提供偏移地址。(3)段寄存器,含CS、DS、SS、ES,用来专门存放段地址。(4)控制寄存器,包括IP和PSW两个16为寄存器。IP是指令指针寄存器,用来存放代码段中的偏移地址。PSW为程序状态字寄存器,由条件码标志和控制标志构成。条件码标志用来纪录程序运行结果的状态信息。包括OF、SF、ZF、CF、AF、PF。控制标志位有三个寄存器DF、IF、TF组成。2是说明8086/8088CPU中标志位寄存器中各标志位的意义?答:OF溢出标志,在运算过程中,如操作数超出了机器能表示的范围则置1,否则置0。SF符号标志,运算结果为负时置1,否则置0。ZF零标志,运算结果为0置1,否则置0。CF进位标志,记录运算是最高有效位产生的进位。AF辅助进位标志,记录第三位的进位情况。PF奇偶标志位,用来为机器中传送信息时可能产生的出错情况提供检验条件,当结果操作数中的1的个数为偶时置1。DF方向标志位,在串处理指令中控制处理信息的方向。当DF=1时,每次操作后变址寄存器减量,这样就使串处理从高地址向低地址方向处理。IF中断标志,当IF=1时,允许中断,否则间断中断。TF陷阱标志,用于单步操作方式,当TF为1时,每条指令执行完后产生陷阱,由系统控制计算机。当TF为0时,CPU正常工作不产生陷阱。3哪些操作只能隐含使用某个段寄存器,而不能用其它段寄存器代替?哪些操作出隐含使用某个段寄存器外,还可以使用其它段寄存器?答:计算程序的地址隐含使用CS,正在执行的程序隐含使用SS,而数据的地址隐含使用ES和DS。48086/8088系列违纪在存储器中寻找存储单元时,逻辑地址由哪两个部分组成的?答:由段地址和偏移地址两部分构成。5设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示:(1)1234H:_H(2)_H:0345H答:(1)1234H:05H(2) 1200H:0345H6假设某程序执行过程中,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部物理地址是多少?答:(SS)*10H+(SP)=09564H7设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。答:物理地址为:3E4B0H, SP的初始值为200H,指向的物理地址为:3E6B1H.。8设某用户程序(SS)=0925H,SP=30H,(AX)=1234H,(DX)=5678H,问堆栈的地址范围是多少?如现有两条进展指令:PUSHAXPUSHDS试问两指令执行后,(SP)=?答:寻址范围:09250H09280H,SP减4为2CH。98086CPU与8088CPU由哪些相同之处?又有哪些区别?答:他们内结构基本相同,不同之处仅在于8088有8条外部数据总线,因此为准16位。8088有16条外部数据总线,两个CPU的软件完全兼容,程序的编制也完全相同。108086CPU从功能上分为几部分?各部分由什么组成?各部分的功能是什么?答:8086CPU从功能上分外两大部分,一是执行部件(EU),二是总线接口部件(BIU)。执行部件是由以下四部分组成:(1)4个通用寄存器AX,BX,CX,DX。(2)4个专用寄存器BP,SP,XI,DI。(3)标志寄存器FR。(4)算术逻辑部件ALU。功能是负责执行所以的指令,向总线接口部件(BIU)提供指令执行的结果数据和地址,并对通用寄存器和标志寄存器进行管理。总线接口部件(BIU)由以下部件组成:(1)四个段寄存器,代码段寄存器,数据段寄存器,附加段寄存器,堆栈段寄存器。(2)指令指针寄存器。(3)地址加法器。(4)指令领队列。功能:执行外部总线周期,负责存储器与I/O端口传送数据。也就是负责CPU与存储器和外设之间的信息交换。128086系统中的物理地址是如何的得到的?假如CS=2000H,IP=2100H,其物理地址是多少?答:8086系统的物理地址是将段地址乘10H,加上偏移地址。2000H*10H+2100H=22100H(物理地址)13什么叫总线周期?一个总线周期包括多少时钟周期,什么情况下要插入TW等待周期?插入多少个TW取决于什么因素?答:CPU把总线接口部件BIU完成一次访问存储器或外设操作所需要的时间称为一个总线周期,它包括了四个时钟周期。当访问存储器或外设时,存储器或外设不能及时配合CPU传输数据时,存储器或外设通过“READY”信号在T3之前向CPU发出一个“数据未准备好”信号,CPU会在T3之前插入一个或多个等待时间周期。当存储器或外设准备好数据,通过“READY”发“准备好”信号,CPU接受此信号后,会自动脱离TW状态进入T4状态。因此,插入多少个TW由“READY”信号决定。14什么是最大模式?什么是最小模式?用什么方法将8086/8088置于最大模式和最小模式?答:最小模式,即系统中只有一个微处理器,所有的总线控制信号都直接由8086/8088,因此,系统总线控制电路被减到最小。最大模式,即系统里包括两个或多个微处理器,主处理器就是8086/8088,其它均为协助主处理器工作的协处理器。它主要用于中等规模或大型的8086/8088系统中。将8086/8088的第33脚接地时,系统处于最大模式,接5V时,为最小模式15什么是地址锁存器?8086/8088系统中为什么要用地址锁存器?锁存的是什么信息?答:地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。168086/8088系统中的8286是什么器件?起什么作用?答:8286为总线驱动器(收发器,双向数据缓冲器),当一个系统中所含外设接口较多时,用来增强数据总线的驱动能力。178086/8088系统用的时钟发生器产生哪些信号?答:时钟发生器8284A产生恒定的时钟信号(CLK),复位信号(RESET),准备就绪信号(READY)。188086/8088的执行部件EU由多少个通用寄存器,多少个专用寄存器,几个标志寄存器和什么组成?答:执行部件由以下几部分组成:1、四个通用寄存器AXBXCXDX;2、四个专用寄存器,即基数指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI;3一个标志寄存器FR;4算术逻辑部件ALU。198086/8088的指令队列长度分别为多少个字节?答:8086的指针队列为6个字节,8088的指针队列有4个字节。208086与8088的16位寄存器中,有多少个寄存器可拆分为8位寄存器使用。它们分别是什么?它们又被统称为什么?答:在8086与8088的16位寄存器中,有四个寄存器可拆分为八位寄存器使用,它们分别是AX,BX,CX,DX。统称为通用寄存器。21PU从主存取出一条指令并执行该指令的时间称(),它通常用若干个()来表示,而后者又包括若干个()。指令周期机器周期时钟周期答:12322计算机时钟脉冲的频率称为什么?,其倒数又称为什么?答:计算机的时钟脉冲频率称为时钟频率,即主频。其倒数为时钟周期。22计算机主频为8MHz,每个机器周期平均含两个时钟周期,每条指令平均有2.5个机器周期,则该机器的平均指令执行速度为多少MIPS?答:该机器执行一条指令所用时间为:1/8*10-6*2*2.5=5/8*10-6t;平均指令执行速度为:1/ (5/8)=1.6MIPS。248086/8088的存储器可以寻址1MB的空间,在对I/O进行读写操作时,20位地址中只有哪些位是有效的?这样,I/O地址的寻址空间为多大?答:在对I/O进行读写操作时,20位地址中只有A0A15有效,I/O地址的寻址空间为216B。25指令队列的作用是什么?答:指令队列存放内存中取下的将被执行的下一条或下几条指令,使CPU执行完一条指令就可立即执行下一条,提高CPU的效率。268086CPU可访问的存储空间为1MB,实际上分为奇数存储体和偶数存储体两部分,对奇数存储体的选择信号是什么,对偶数存储体的选择信号是什么,对每个存储体单元的选择信号是什么?答:奇数存储体的选择信号为BHE,偶数存储体的选择信号为A0。对每个存储体内存储单元的选择信号是READY。278086有两种工作方式,即最小模式和最大模式,它由什么信号决定?最小模式的特点是什么?最大模式的特点是什么?答:8086的两种工作模式由信号决定。当接入5V时,系统处于最小模式,只有一个微处理器,总线控制逻辑部件被减到最小。当接地时,系统处于最大模式,实现多处理器控制系统,主要应用于大中型系统。28当=0,=0,=1时,CPU完成的操作是什么?答:CPU完成一个对I/O设备端口的读操作。298088与8086在软件上是否完全兼容?答:8086/8088内部都采用16位字进行操作及存储器寻址。因此两者软件完全兼容。第三章 存储器技术习题解答1半导体存储器从器件原理的角度可分为哪两种类型?答:半导体存储器从器件原理角度分为ROM和RAM两种。2磁盘和磁带属于哪种类型的存储器?答:磁盘和磁带同属于外存储器。3半导体静态RAM和半导体动态RAM分别靠什么原理存储信息?答:静态RAM:用一个触发器电路作为1个Bit的基本存储单元,每个触发器能置位存储1,或复位存储0。动态RAM:每Bit只需一个管子和一个电容,存放的信息是1还是0,决定于电容中是否储存电荷。4为保证动态RAM中的内容不消失,需要进行哪一步操作?答:由于电容有漏放电现象,为保证RAM中的内容不消失,必须另外设计一种电路,定时(一般为2ms),使电容上泄放的电荷得到补充,即进行内存刷新。5存储器片内的地址译码有哪两种方式?答:存储芯片内的地址译码有全地址译码和独立译码两种。6存储器是计算机系统的记忆设备,它主要用来存储哪些东西?答:存储器用来存储地址、数据和程序。7存储字长和存取周期分别指什么?答:存储字长是指存放在一个存储单元中的二进制代码个数。存取周期是指存储器进行连续读写操作所允许的最短时间间隔。8和外存相比,内存的特点有哪些?答:和外存相比,内存的特点是容量小、速度快、成本高。9某计算机主存容量为2048KB,这里的2048KB表示多少个字节?答:2048KB表示2048*1024个Byte,即2(11)*2(10)=2(21)个。10某计算机的主存为3KB,则内存地址寄存器需多少位就足够了?答:主存为3KB,则地址线有12条,所以内存地址寄存器需12位。11若256KB的SRAM具有8条数据线,则它具有多少条地址线?答:具有18条地址线。12计算机的内存可采用ROM、RAM、磁盘中的哪几种?EPROM指的又是什么?主存和CPU之间增加高速缓存的目的是什么?采用虚拟存储器的目的是什么?答:可采用ROM和RAM。EPROM指可编程并可擦除的ROM,兼有ROM和RAM的功能。由于主存储器的存/取时间比CPU慢一个数量级,从而严重影响了微型机的速度,而RAM线路的读写时间可与CPU的处理速度处于同一个数量级,因此在主存储器和CPU之间增加高速缓冲存储器Cache,以提高机器的速度。虚拟存储器的容量比实际物理上主存储器的容量大,软件可根据需要将所需的存储区域调入物理存储器,也可以提高处理速度。13某以8088为CPU的微型计算机内存RAM区为00000H3FFFFH,若采用6264、62256、2164或21256各需要多少片芯片?答: 采用6264(8k*8bit)需要32片;采用62256(32k*8bit)需要8片;采用2164 (64k*1bit)需要32片;采用21256 (256k*1bit)需要8片。14利用全地址译码将6264芯片接在8088的系统总线上,其所占地址范围为BE000HBFFFFH,试画连接图。解答:采用全地址译码连接图如下:15试利用6264芯片,在8088系统总线上实现00000H03FFFH的内存区域,试画连接电路图。解答:采用全地址译码。16叙述EPROM的编程过程,说明EEPROM的编程过程。答:PROM的编程有两种方式,即标准编程和灵巧编程两种方式。标准编程的过程为:使Vcc为+5v,Vpp加上+21v。而后,加上要编程的单元地址,数据线加上要写入的数据,使CE保持低电平,OE为高电平。当上述信号稳定后,在PGM端加上505ms的负脉冲。这样就将一个字节的数据写到了相应的地址单元中。重复上述过程,即可将要写入的数据逐一写入相应的存储单元中。灵巧编程方式要比标准方式快5倍左右。当加上Vcc= 5v,Vpp=21v后,对一个写入地址,用1ms编程脉冲进行编程,接着进行校验,如不成功,再加1 ms编程脉冲。最多可进行15次,若15次仍不能将数据正确写入,则认为芯片本身已损坏。若某一单元用X次1编程脉冲已正确写入,校验到这种情况后,立即对该单元加入4倍X的编程覆盖脉冲,则认为该单元编程已完成。重复上述过程,将所有要写入的单元编程。将数据写入EEPROM有两种方式,即字节方式和自动页写入。在对EEPROM编程时,可以在线操作。17有2片6116,现欲将它们接到8088系统中去,其地址范围为40000H到40FFFH,试画连接电路图。利用写入某数据并读出比较,若有错,则在DL中写入01H;若每个单元均对,则在DL写入EEH,试编写此检测程序。解答:连接电路图见下一页。18若用全地址译码将EPROM 2764(128或256)接在首地址为A0000H的内存区,试画出电路图。解答:电路图如下:19第15题中,若8088的时钟频率为5MHz,6264芯片的读写时间均200 ns,试粗略估计该芯片能否直接使用。答:8088的时钟频率为5MHZ,则读写时间为200ns,与6264芯片的读写时间相同,若该芯片直接使用,容易出错。17连接电路图如下:第四章 指令与寻址方式习题解答1试分别说明下列各指令中源操作数和目的操作数使用的寻址方式:()ANDAX,0FFH()ANDBL,OFFH()MOVDS,AX()CMPSI,CX()MOVDS:0FFH,CL()SUBBPSI,AH()ADCAX,0ABHBX()ORDX,-35BXDI()PUSHDS()CMC答:目的操作数源操作数(1)寄存器直接寻址立即数寻址(2)寄存器直接寻址直接寻址(3)寄存器直接寻址寄存器直接寻址(4)寄存器间接寻址寄存器直接寻址(5)直接寻址寄存器直接寻址(6)基址变址寻址寄存器直接寻址(7)寄存器直接寻址寄存器相对寻址(8)寄存器直接寻址基址变址相对寻址(9)无寄存器直接寻址(10)隐含寻址2试分别指出下列各指令语句的语法是否有错,如有错,指明是什么错误。()MOVBXBP,AX()TESTBP,BL()ADDSI,ABH()ANDDH,DL()CMPCL,1234H()SHRBXDI,3()NOTCX,AX()LEADS,35SI()INCCX,1()PUSH45DI答:(1)应将BP,BX其中之一该为SI或DI(2)正确(3)ABH改为0ABH(4)(5)是字操作,CL改为CX(6)移位数大于1时,应用CL(7)NOT指令只有一个操作数(8)LEA指令的源操作数应为一内存单元地址(9)此指令不用指出1(10)45改为45H3下面两条指令执行后,标志寄存器中CF,AF,ZF,SF和OF分别是什么状态?MOVDL,86ADDDL,0AAH答:0101,0110+ 1010,1010= 1,0000,0000CF=1AF=1ZF=1SF=1OF=14在8086/8088CPU中可用于作地址指针的寄存器有哪些?答:有BX,CX,DX,BP,SI,DI(IP,SP,)5已知(DS)09lDH,(SS)1E4AH,(AX)1234H,(BX)=0024H,(CX)5678H,(BP)0024H,(SI)=0012H,(DI)0032H,(09226H)00F6H,(09228H)1E40H,(1E4F6H)091DH。下列各指令或程序段分别执行后的结果如何?()MOVCL,20HBXSI()MOVBPDI,CX()LEABX,20HBXSIMOVAX,2BX()LDSSI,BXDIMOVSI,BX()XCHGCX,32HBXXCHG20HBXSI,AX答(1) (CX)=56F6H;(2) (09226H)=5678H;(3) (AX)=1E40H;(4) (1E4F6H)=0024H;(5) (09226H)=1234H,(AX)=5678H.6已知(SS)09l 5H,(DS)0930H,(SI)0A0H,(DI)1C0H,(BX)80H,(BP)470H。现有一指令“MOV AX,OPRD”,如源操作数的物理地址为095C0H,试用四种不同寻址方式改写此指令(要求上述每个已知条件至少要使用一次)。答:(1)MOVAX,BP(2)MOVAX,BP+DI+80H(3)MOVAX,DI+0100HMOVAX,SI+0220H(4)MOVAX,02C0H7试按下列要求分别编制程序段:()把标志寄存器中符号位SF置1。()寄存器AL中高低四位互换。()由寄存器AX,BX组成一个32位带符号数(AX中存放高十六位),试求这个数的负数。()现有三个字节存储单元A,B,C。在不使用ADD和ADC指令的情况下,实现(A)+(B)=C。()用一条指令把CX中的整数转变为奇数(如原来已是奇数,则CX中数据不变,如原来是偶数,则(CX)+1形成奇数)。答:(1)MOVAH, 80HSAHF(2 )MOVBL, 0FHANDBL, ALSAL4SHR4XORAL, BL(3 )MOVDX, 7FHSUBAX, DXMOVDX, 0FFHSUBDX, BXMOVBX, DX(4 )MOVAH, FFHMOVBL, BSUBAH, BLMOVBH, ASUBBH, AHMOVC, BH(5 )MOVAX, CXNOTAXTEST01HJNZNEXTHLTNEXT: INCCXHLT8试给出下列各指令的机器目标代码:()MOVBL,12HSI()MOV12HSI,BL()SALDX,1()ADD0ABHBPDI,1234H答:(1) 10001010,11011111=8ADF;(2) 10001000,01011100=885C;(3) 11010001,11100010=D1E2;(4) 10000001,10000001=8181.9执行下列指令后:STR1DWABSTR2DB16DUP(?)CNTEQU$-STR1MOVCX,CNTMOVAX,STR1HLT寄存器CL的值是多少?寄存器AX的值是多少?答:寄存器CL的值为12H,寄存器AX的值为4241H。10JMP FAR PTR ABCD(ABCD是符号地址)的转移方式是什么?答:JMPFATPTRABCD的转移方式是段间直接转移.11MOV AX,ES:BXSI的源操作数的物理地址是多少(用CS、DS、ES、SS、BX、SI表示出即可)?答 :MOVAX,ES:BX SI的源操作数的物理地址是ES10H+BX+SI.12运算型指令的寻址和转移型指令的寻址,其不同点在什么地方?答:运算型指令的寻址包括立即数寻址。寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对寻址和基址加变址寻址方式。这些寻址方式中,CS,IP寄存器的内容不会发生变化。转移型指令的寻址方式包括段内直接寻址,段内间接寻址,段间直接寻址,段间间接寻址。在后三种寻址方式中,CS,IP寄存器的内容发生改变。13如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,当执行指令”MOV AX,TABLE”和”LEA AX,TABLE”后,(AX)中的内容分别为多少?答:执行MOVAX,TABLE后(AX)=1234H执行LEAAX, TABLE后(AX)=0032.14.当指令”SUB AX,BX”执行后,CF=1,说明最高有效位发生了什么现象?对无符号数来说,操作结果发生了什么现象?答:执行指令SUBAX,BX后,CF=1,说明最高位发生了借位对无符号来说,操作结果发生了溢出。15.在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中的偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为多少?答:转向地址LAB的值分别为:100010H+2H+30H=10032H100010H+2H+6CH=1006EH100010H+2H+B8H=100BAH16下面两个语句的区别在什么地方:X1 EQU 1000HX2=1000H答:“EQU”和“=”都可以作为赋值语句,但二者的区别是EQU伪操作中的表达式是不许重复定义的,而“=”伪操作则许重复定义。17.调用指令CALL可进行哪四种调用?答:调用指令CALL可进行段内直接调用,段内间接调用。段间直接调用。段间间接调用。18.(AL)=9AH,(BL)=0BCH,当分别进行下列指令运算后,请写出标志位ZF、PF、CF、SF的内容:( P8050)(1)ADDAL,BL(2)SUBAL,BL(3)ANDAL,BL(4)ORAL,BL(5)XORAL,BL答:(1)ADD AL,BL1 0 0 1 1 0 1 0+)1 0 1 1 1 1 0 01,0 1 0 1 0 1 1 0ZF=0,PF=1CF=1SF=0(2)SUBAL,BL1 0 0 1 1 0 1 01 0 0 1 1 0 1 0)1 0 1 1 1 1 0 0+)0 1 0 0 0 1 0 01 1 0 1 1 1 1 0ZF=0PF=1CF=1 SF=1(3)ANDAL,BL1 0 0 1 1 0 1 0AND)1 0 1 1 1 1 0 0ZF=0PF=0CF=0SF=01 0 0 1 1 0 0 0(4)OR AL,BL1 0 0 1 1 0 1 0OR)1 0 1 1 1 1 0 0ZF=0PF=1CF=0SF=01 0 1 1 1 1 1 0(5)XORAL,BL1 0 0 1 1 0 1 0XOR)1 0 1 1 1 1 0 0ZF=0PF=0CF=0SF=00 0 1 0 0 1 1 019.若(SP)=2800H,试用两种方法实现(SP)=27FEH答:方法一:执行一次PUSH指令PUSHCX方法二:执行一次PUSHF指令20.试简述LES REG,SRC所完成的操作?答:LESREG,SRC是将SRC和SRC+1中的偏移量送到REG寄存器,而将SRC+2和SRC+3中的段基址送ES段寄存器。21.关系操作符EQ、NE、LT、GT、LE、GE计算的结果为逻辑值,试问0FFFFH代表假,0代表真是否正确?答:0FFFFH代表真。0表示结果为假。22.堆栈存取操作是以字节为单位的试分析当堆栈存入数据和从堆栈取出数据时SP的变化?答:当堆栈存入一个字时,(SP)SP2从堆栈中取出一个字时 (SP)SP+223.试编写汇编程序段完成以下功能:将1000个字符的字符串从内存的BUFFER1搬移到内存的BUFFER2中去。解答LEASI,BUFFER1LEADI,BUFFER2MOV CX,1000CLDREPMOVSb24.试编写汇编程序段完成以下功能:将数据段中100个字的数据块BLOCK1搬移到同一个数据段的BLOCK2中去。解答:LEASI,BLOCK1LEADI,BLOCK2MOVCX,100CLDREPMOVSW25.试编写汇编程序段完成以下功能:比较DEST和SOURCE中的500个字节,找出第一个不相同的字节,如果找到,则将SOURCE中的这个数送AL中。解答:CLDLEADI,DESTLEASI,SOURCEMOV CX,500REPECMPBJCXZNEXTDECSIMOVAL,BYTEPTRSINEXT:HLT26.试编写汇编程序段完成以下功能:求最大值,若自BLOCK开始的内存缓冲区中,有100个带符号的数,希望找到其中最大的一个值,并将它放到MAX单元中。解答:MOVBX,OFFSETBLOCKMOVAX,BXMOVCX,100ADDBX,2F0:CMPAX,BXJGEF1MOV AX,BXF1:ADDBX,2JCXZNEXTJMPF0MOVMAX,AXNEXT:HLT27.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是多少?解答:07H21H原栈顶20100存放数据21H的物理地址是200FFH第五章 汇编语言程序设计习题解答1 指出下列指令的错误:(1)MOVAH,BX(2)MOVBX,SI(3)MOVAX,SIDI(4)MOVMYDATBXSI,ES:AX(5)MOVBYTE PTRBX,1000(6)MOVBX,OFFSET MYDATSI(7)MOVCS,AX答:(1)MOVAH,BXAH为八位,BX为16位(2)MOVBX,SI两个操作数不能都是存储单元(3)MOVAX,SIDI一个操作数中不能用两个变址寄存器(4)MOVMYDAT BXSI,E8:AX ESES后应为一个变址寄存器,表示偏移量(5)MOVBYTE PTRBX,1000BYTE说明时BX进行字节操作。 而1000为字(6)MOV BX,OFFSETMYDATSIOFFSET为取某个地址的偏移量,故后面不应用SI,而应是一个符号地址。(7)MOV是数据寻址,不应用程序段寄存器CS.2下面哪些指令是非法的?(假设OPl,OP2是已经用DB定义的变量)(1)CMPl5,BX(2)CMPOPl,25(3)CMPOPl,OP2(4)CMPAX,OPl答:(1)CMP 15,BX非法,两个操作数不能一个为字,一个为字节(2)CMPOP1,25正确(3)CMPOP1,OP2正确(4)CMPAX,OP1非法,两操作数不能一个为字,一个为字节3假设下列指令中的所有标识符均为类型属性为字的变量,请指出下列指令中哪些是非法的?它们的错误是什么?(1)MOVBP,AL(2)MOVWORD_OPBX+4*3DI,SP(3)MOVWORD_OPl,WORD_OP2(4)MOVAX,WORD_OPlDX(5)MOVSAVE_WORD,DS(6)MOVSP,SS:DATA_WORDBXSI(7)MOVBXSI,2(8)MOVAX,WORD_ OPl+WORD_OP2(9)MOVAX,WORD_ OPl-WORD_OP2+100(10)MOVWORD_ OPl,WORD_ OPl-WORD_OP2答:(1)MOVBP,AL非法,BP为16位AL为八位(2)MOVWORD_OPBX+4*3DI,SP正确(3)MOVWORD_OP1,WORD_OP2非法,两个操作数不能都是变量(4)MOVAX,WORD_OP1DX非法,DX应改为BX,BP,SI或DI,则为寄存器相对寻址。(5)MOVSAVE_WORD,DS非法,未指明数据段地址DS的偏移量(6)MOVSP,SS:DATA_WORDBXSI非法,SS与BX,SI不匹配,SS的偏移量用SP(7)MOVBXSI,2正确(8)MOVAX,WORD_OP1+WORD_OP2正确(9)MOVAX,WORD_OP1WORD_OP2+100正确(10)MOVWORD_OP1,WORD_OP1WORD_OP2非法4假设VAR1和VAR2为字变量,LAB为标号,试指出下列指令的错误之处:(1)ADDVAR1,VAR2(2)SUBAL,VAR1(3)JMPLABSI(4)JNZVARl(5)JMPNEARLAB答:(1)ADDVAR1,VAR2ADD指令中,目的操作数必须是寄存器或存储单元。(2)SUBAL,VAR1AL为8位的,而VAR为字变量16位(3)JMPLAB SI格式不对,LAB处应为一偏移量,而不是标号。(4)JNZ VAR1JNZ为非零转移,应转移到某个程序段,故后面应为一个标号。(5)JMPNEARLAB段内直接转移,格式应为JMPNEARPTRLAB5画图说明下列语句所分配的存储空间及初始化的数据值。BYTE-VARDBBYTE,12,-12H,3DUP(0,?,2DUP(1,2),?)WORD-VAR DW 5DUP(0,1,2),?,-5,BY,TE, 256H解答:(1)BYT

温馨提示

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

评论

0/150

提交评论