微机原理课后习题答案_第1页
微机原理课后习题答案_第2页
微机原理课后习题答案_第3页
微机原理课后习题答案_第4页
微机原理课后习题答案_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

..第1章进制及码元1、进制转换129=81H=10000001B=201Q298=12AH=100101010B=452Q1000=3E8H=1111101000B=1750Q5DH=1011101B=135Q=93D3E8H=1111101000B=1750Q=1000D;357Q=11101111B=0EFH=239D2、进制计算10010110 2FE3 F7,-119 FFF7,-32759 4 73、数据表示范围:一个字节的无符号数表示范围为0~255,有符号数补码表示范围为-l28—+127。两个字节的无符号数表示范围为0~65535,有符号数补码表示范围为—32768~+32767。N位二进制数的无符号数表示范围为0~<2N-1>,有符号数<补码>表示范围为-2N-1~<2N-1-1>.4、35H代表的ASCII字符为'5',代表十六进制数时等价的十进制值为53,代表压缩8421BCD码等价的十进制值为35,代表非压缩8421BCD码等价的十进制值为5。5、FFH代表无符号数时等价的十进制值为255,代表补码有符号数时等价的十进制值为一1,代表反码有符号数时等价的十进制值为一0,代表原码有符号数时等价的十进制值为一l27。6、—20的8位二进制补码为ECH,原码为94H,反码为EBH。158的16位二进制补码为009EH,原码为009EH,反码为009EH。7、英文字符一般在计算机内占用〔1个字节,每个字节的最高位一定为0,全角英文字符在计算机内占用2个字节,一个汉字在计算机内占用2个字节,每个字节最高位为1。8、设阶码用8位补码表示,尾数部分用16位补码表示,则—〔1/32+1/128+1/512的尾数部分及阶码分别为多少?第2章微机硬件基础1、请画出计算机系统硬件图。2、8086/88CPU为什么要分为BIU和EU两大模块?答:为了使取指和分析、执行指令可并行处理,提高CPU的执行效率。8086/88CPU有两大模块总线接口单元BIU和执行单元EU组成。3、简述8086/88CPU的两大模块BIU和EU的主要功能及组成。答:如下图所示:4、简述8086/88CPU的14个寄存器的英文名、中文名及主要作用。答:AX<Accumulator><AH、AL>累加器,它是汇编编程中最常用的一个寄存器,主要用于乘除运算、BCD运算、换码、I/O操作、串操作、中断调用等。BX<Base><BH、BL>基址寄存器,主要用于存放地址、基址<默认相对于DS段>等。CX<Counter><CH、CL>计数器,主要用于循环计数、串操作计数、移位计数<CL>等。DX<Data><DH、DL>数据寄存器,主要用于l6位乘除、问接I/O、中断调用等。BP<BasePointer>基址指针,主要用于存放地址、基址<默认相对于SS段>等。SP<StackPointer>堆栈指针<栈顶指针>,主要用于存放栈顶地址。SI<SourceIndex>源变址寄存器,用于存放地址、变址、串操作源变址。DI<DestinationIndex>目的变址寄存器,用于存放地址、变址、串操作目的变址。CS<CodeSegment>代码段寄存器<代码段>,用于存放正在或正待执行的程序段的起始地址的高l6位二进制数据,即程序段的段地址。,DS<DataSegment>数据段寄存器<数据段>,用于存放正在或正待处理的一般数据段的起始地址的高l6位二进制数据,即一般数据段的段地址。ES<ExtraSegment>附加数据段寄存器<附加段>,用于存放正在或正待处理的附加数据段的起始地址的高l6位二进制数据,即附加数据段的段地址。SS<StackSegment>堆栈数据段寄存器<堆栈段>,用于存放正在或正待处理的堆栈数据段的起始地址的高l6位二进制数据,即堆栈数据段的段地址。IP<Instructionpointer>指令指针,它的内容始终是下一条待执行指令的起始偏移地址,与CS一起形成下一条待执行指令的起始物理地址。CS:IP的作用是控制程序的执行流程。IP一般会自动加l<逻辑加1、实际随指令长度变化>移向下一条指令实现顺序执行;若通过指令修改CS或IP的值,则可实现程序的转移执行。PSW<ProgramStatusword>程序状态字,它其中有三个控制标志<IF、DF、TF>和6个状态标志<SF、PF、ZF、OF、CF、AF>。控制标志是用于控制CPU某方面操作的标志,状态标志是部分指令执行结果的标志。5、请画出8086/88CPU的内部结构图。答:如下图所示:6、请说明8086/88CPU的标志位的英文名、中文名及填充方法。答:IF<InterruptEnableFlag>中断允许标志,用于控制CPU能否响应可屏蔽中断请求,IF=1能够响应,IF=0不能响应。DF<DirectionFlag>方向标志,用于指示串操作时源串的源变址和目的串的目的变址变化方向,DF----1向减的方向变化,DF=0向加的方向变化。TF<TrapFlag>陷阱标志<单步中断标志>,TF=1程序执行当前指令后暂停,TF=0程序执行当前指令后不会暂停。SF<SignFlag>符号标志,指令执行结果的最高二进制位是0还是l,为0,则SF=0,代表正数;为l,则SF=1,代表负数。我们一般是用十六进制数表示,则可以根据十六进制的最高位是落在O~7还是落在8~F之间,若落在0~7之间则SF=0.否则SF=1。PF<ParityChECkFlag>奇偶校验标志,指令执行结果的低8位中1的个数是奇数个还是偶数个,若为奇数个则PF=0,若为偶数个则PF=1。ZF<ZeroFlag>零标志,指令执行结果是不是为0,若为0则ZF=1,否则ZF=0。OF<OverflowFlag>有符号数的溢出标志,指令执行结果是否超出有符号数的表示范围,若超过则0F=1,否则OF=0。我们可以通过判断是否出现以下四种情况之一:正加正得负,正减负得负,负加负得正,负减正得正。若出现则0F=1.否则OF=0.CF<CarryFlag>进位/借位标志无符号数的溢出标志>,指令执行结果的最高位是否有向更高位进位或借位,若有则CF=1,同时也代表无符号数溢出;若无则CF=0,也代表无符号数未溢出。AF<AuxiliaryCarryFlag>辅助进位/借位标志,低4位二进制是不是有向高位进位或借位,若有则AF=1,否则AF=0,其主要用于BCD修正运算。7、内存分段组织的优缺点是什么?答:优点如下:<1>8086/8088CPU中的寄存器只有16位,如果采用它们直接寻址,则寻址能力势必限制在64KB范围内,而采用分段组织可以较好地实现扩展CPU的寻址能力。每段的大小可达64KB,不同段的组合则可寻址更大的范围。<2>使程序与数据相对独立,不同存取方式的数据也相对独立。程序:存放于代码段CS中堆栈方式:存放于堆栈段SS中数据:随机方式:存放于数据段DS及附加段ES中<3>便于程序和数据的动态装配,从一个地方挪到另外一个地方只要更改一下段寄存器的值即可,段内偏移可以不用改变。 缺点:内存地址采用分段组织增加地址计算的复杂度,降低了CPU的执行效率。8、1MB内存最多可以有〔64K个不同的段地址,若不允许重叠的话最多可有〔16个不同的段地址。不同的段间〔可以重叠。9、设DS=26FCH,BX=108H,SI=9A8H,试求出使DS:BX与ES:Sl指向同一物理地址的ES值。答:即DS:BX=ES:SIDS:BX=DS×l6+BX=26FCH×16+108H=270C8HES:SI=ES×16+SI=ES×16+9A8H ES=<270C8H一9A8H>÷l6=2672H10、接口、端口以及端口地址之间的对应关系如何?答:一个计算机系统内有很多接口,一个接口内一般有多个端口,一个端口可以有多个端口地址与其对应<这叫重叠地址>,一个端口地址可以对应多个端口<但需要继续区分才能访问,如读写顺序、读写信号、数据位、索引区分>。所以通过端口传输信息首先需要区分端口,区分端口可通过端口地址不同来区分。11、访问端口有哪些方法?答:〔1用I/O指令实现信息传输;〔2通过BIOS中断调用实现信息传输;〔3通过DOS中断调用实现信息传输。12、请根据图2.3说明ADDAX,BX指令的取指及执行过程。自己看书13、8086/88的20位物理地址是怎样形成的?当CS=2000H,IP=0100H,下一条待执行指令的物理地址等于多少?答:20位物理地址由段地址左移4位加偏移地址形成,下一条待执行指令等于CS*10H+IP得到20100H。14、已知当前数据段位于存储器的B1000H到BF0FFH范围内,请指出DS段寄存器的取值范围。答:DS段寄存器的取值范围:AF10H~B100H第3章寻址方式及指令系统1、指令是CPU可以理解并执行的操作命令,指令由操作码和操作数两部分组成,指令有两个级别,即机器级和汇编级。2、请画出程序执行流程示意图。3、指令主要有哪些分类方式及其主要类别是什么?答:指令分类有不同的方式。按操作数的个数将指令分为零地址指令<无操作数>、一地址指令<只有一个操作数>、二地址指令<有两个操作数>、多地址指令<多于两个操作数>;按指令级别分为机器指令和汇编指令:按是否转移分为转移指令和顺序指令;按功能分为七大类:传送类、算术运算类、位操作类、I/O类、串操作类、CPU控制类、转移类;按指令长度<即指令占用的字节数>分为l字节指令、2字节指令等,8086/8088指令长度是不同的,叫变字长,不同的指令有不同的指令长度,从1~6字节均有;按指令执行期间取操作数是否需要与总线打交道分为内部指令<不需>和外部指令<需要>,类似功能的指令内部指令比外部指令执行速度快,所以在编程时尽量采用内部指令即多用寄存器优化程序。4、操作数的寻址方式有哪些?并举例说明其主要特点。答:操作数寻址方式主要有立即寻址方式、寄存器寻地址、存储器寻址方式、端口寻址方式4类。<1>立即寻址方式:操作对象是这个操作数本身,MOVAL,5<2>寄存器寻地址:操作对象是寄存器中的内容MOVAX,BX<3>存储器寻址方式:操作对象是内存地址所对应的存储单元中的内容,MOVAX[2000H]<4>端口寻址方式:操作数是指明端口的地址、端口地址所对应的端口中的内容是操作对象INAX,46直接寻址。5、内存寻址中段寄存器与段内偏移地址对应关系如何?6、设CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500H,则①下一条待执行指令的物理地址为多少?②当前栈顶的物理地址为多少?③[BX]代表的存储单元的物理地址为多少?④[BP]代表的存储单元的物理地址为多少?⑤ES:[BX+SI]代表的存储单元的物理地址为多少?答:①下一条待执行指令的物理地址=CS×16+IP=1000H×16+IOOH=10100H。②当前栈顶的物理地址=SS×16+SP=4000H×16+200H=40200H。③[BX]代表的存储单元物理地址=DS×16+BX=2000HXl6+300H=20300H。④[BP]代表的存储单元物理地址=SSXl6+BP=4000H×16+400H-----40400H。⑤ES:[BX+SI]代表的存储单元物理地址=ES×16+BX+SI=3000H×16+300H+500H=30800H7、试根据以下要求,分别写出相应的汇编语言指令。<1>以寄存器BX和DI作为基址变址寻址方式把存储器中的一个字送到DX寄存器。答:MOVDX,[BX+DI]<2>以寄存器BX和偏移量VALUE作为寄存器相对寻址方式把存储器中的一个字和AX相加,把结果送回到那个字单元。答:ADDVALUE[BX],AX<3>将1字节的立即数0B6H与以SI作为寄存器间接寻址方式的字节单元相比较。答:CMPBYTEPTR[SI],0B6H<4>将BH的高4位与低4位互换。答:MOVCL,4RORBH,CL;或者ROLBH,CL<5>测试BX的第3、7、9、12、13位是否同时为0。答:TESTBX,3288H<6>将存放了0~9数值的DL寄存器中的内容转化为相应的‘0’~‘9’的字符。答:ADDDL,30H ;或者ORDL,30H<7>将存放了‘A’~‘F’字符的AL寄存器中的内容转化为相应的数值。答:SUBAL,37H8、写出清除AX寄存器的多种方法并比较〔要求单指令实现。答:〔1ANDAX,0 ;可以对AX清零,还可以清除进位位和影响到SF、ZF、PF标志位。〔2MOVAX,0 ;此条指令占用3个字节。〔3SUBAX,AX ;减法指令,该条指令只占用2个字节。〔4XORAX,AX9、分别用存储器的5种寻址方式实现将以A为首址的第5个字〔注意:从第0个算起送AX的指令序列。10、指出下列指令错误的原因。答:<1>MOVCL,300;300超过字节数据表示范围<2>MOVCS,AX;CS不能作为目的操作数<3>MOVBX,DL;数据类型不匹配<4>MOVES,1000H:立即数不能送给段寄存器<5>INC[BX];数据类型不明确’<6>ADDAX,DS:段寄存器不能参加运算<7>TESTBX,[CX];存储器间接寻址只能使用BX、Sl、Dl、BP四个之一<8>SUB[BX],[BP+SI];加减两个操作数不能同时为存储操作数<9>JC[SI];条件转移只有短转移寻址方式<10>SHLBX;少给一个表明移位次数的操作数,l或CL11、〔1CS=<1000>IP=<0155>〔2CS=<1000>IP=<176F>〔3CS=<1000>IP=<17C6>〔4CS=<2000>IP=<0146>〔5CS=<1000>IP=<1770>〔6CS=<2000>IP=<0146>12、分别说明下列各组指令中的两条指令的区别。答:<1>MOVAX,TABLELEAAX,TABLE假设TABLE为字变量名,则:左为将TABLE单元的内容送AX,右为将TABLE单元的偏移地址送AX。假设TABLE为字节变量名,则:左为错误指令,右为将TABLE单元的偏移地址送AX假设TABLE为常量名,则:左为将TABLE的内容送AX,右为错误指令<2>ANDBL,0FHORBL,0FH左为将BL的高4位清0,右为将BL的低4位置1<3>JMPSHORTLlJMPNEARPTRLl左为短转移,2字节的指令,转移范围为一l28~+127右为近转移,l字节的指令,转移范围为--32768+32767<4>MOVAX,BXMOVAX,[BX]左为将BX的值送AX右为将BX的值作为相对DS段的内存单元偏移地址,取出字单元值送AX<5>SUBDX,CXCMPDX,CX左为减法,并将DX-CX的值存入DX中右为比较,做减法,但不会将DX-CX的值存入DX中<6>MOV[BP][SI],CLMOVDS:[BPIESI],CL左边第~操作数默认为相对于SS段偏移的存储器操作数右边第一操作数采用段超越,指定为相对于DS段偏移的存储器操作数13、写出判断AL为正为负的程序段<请至少用三种方法>。答:方法一:CMPAL,80H;而后用JAE代表负数转移,代表正数转移方法二:CMPAL,00H;而后用JGE代表正数转移,JL代表负数转移方法三:TESTAL,80H;而后用JNZ代表负数转移,JZ代表正数转移方法四:ORAL,AL;而后用JNS代表负数转移,JS代表正数转移方法五:ANDAL,AL;而后用JNS代表负数转移,JS代表正数转移方法六:SUBAL,00H;而后用JGE代表正数转移,JL代表负数转移方法七:TESTAL,80H:而后用JNS代表正数转移,JS代表负数转移14、思考题:试比较以下几条指令的功能。答:MOVBX,SI;将SI的值送给BXMOVBX,[SI];将SI的值作为偏移地址找到对应的内存单元中的值送给BXMOVBX,OFFSET[SI];将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX,即SI的值送给BXLEABX,[SI];将Sl的值作为偏移地址找到对应内存单元的偏移地址送给BX,即Sl的值送给BXLDSBX,[SI];将Sl值作为偏移地址找到对应内存单元中的第一个字值送给BX,第二个字值送DSLESBX,[SI]:将SI值作为偏移地址找到对应内存单元中的第一个字值送给BX,第二个字值送ES15、设B、D为字节变量,A、C为字变量,且A除B可能会溢出,试编写无符号数或有符号数A/B商送C,余数送D。答:可能会溢出则要考虑扩展数据表示能力。;无符号数除法.;有符号数除法MOVAL,BMOVAL,BXORAH,AHCBWMOVBX,AXMOVBX,AXMOVAX,AMOVAX,AXORDX,DX;无符号扩展CWD;有符号扩展DIVBXIDIVBXMOVC,AXMOVC,AXMOVD,DLMOVD,DL16、编写程序段实现DX、AX中32位二进制数*l0<设不溢出>。答:;X*10=X*8+X*2,用移位指令实现SHLAX,1RCLDX,1:DX,AX=〔DX,AX*2MOVBX,DXMOVBP,AX;BX,BP转存2倍值SHLAX,lRCLDX,l;再乘2SHLAX,lRCLDX,1:再乘2ADDAX,BPADCDX,BX;8倍+2倍=10倍17、请编写程序段实现如图3.33所示功能。MOVSI,BXLDSBX,[SI]18、设已有定义STR DB "Sdfikjwsmfw893040pYUIUKLHGUkjdshf8"N EQU $-STR1试编写实现在STR中查找是否存在非‘A’的功能程序段。即表示STR串中大部分是‘A’,若其中存在不是‘A’的字符则查找成功,若STR全部为‘A’则不成功。19、程序理解执行。<1>MOVAH,一l;AH=FFHMOVAL,180;AL=B4HMOVBL,15;BL=0FHIDⅣBL;AX/BL即:-76/15,商-5,余数-l程序段执行后,AX=0FFFBH。说明:关键是要知道谁除以谁,特别注意是有符号除还是无符号除。<2>MOVAL,0CH;AL=0CHORAL,AL;AL=0CH,CF=0SBBAL,0F0H;AL=lCHNEGAL;AL=E4H,CF=1ADCAL,0D4H;AL=B9HTESTAL,35H;AL=B9H,CF=0程序段执行后,CF=0,AL=B9H。说明:第<1>、<2>小题只要理解每条指令功能及对标志位的影响,逐步进行即可完成。<3>MOVAL,08HMOVAH,一l;AX=FF08HMOVBX,0F8H;BX=00F8HCMPAX,BX程序段执行后SF⊕OF=1,CF=0。<4>MOVAX,’中’;AX的二进制高位为1,即落在负数范围MOVBX,’AB’;BX的二进制高位为0,即落在正数范围CMPAX,BX程序段执行后SF⊕OF=1,CF=0。说明:第<3><4>小题实质是考查有符号数和无符号数大小的比较。<5>MOVAX,’58’;AX=3538HANDAX,0F0FH;AX=0508HAAD;AX=58=003AH程序段执行后AX=003AH,即58。程序段的功能是:将两位非压缩BCD码转化为其对应的十六进制数。说明:可用AAD指令实现将十位和个位数值拼装还原为0~99的十六进制数。反之将0~99的数值分离成十位和个位可用AAM指令实现,教材《汇编语言、微机原理及接口技术<第2版>》例5.10和例5.13中均有应用。20、程序语句填空。<1>下列是完成1~20之间的奇数累加和存于AL中的程序段:XORAL,ALMOVCX,10;循环次数MOVBL,1AGAIN:ADDAL.BLADDBL,2;步长,参数改变LOOPAGAIN<2>下列是在串长为N的串STR中查找是否有‘M’字符的程序段:MOVDI,SEGSTRMOVES,DILEADl,STRCLDMOVCX,NMOVAL,7M7REPNESCASB;串查找核心指令JZFOUND;转到找到分支<3>下列是完成1位十六进制数X显示的程序段:MOVDL,XANDDL,0FHADDDL,30H;或ORDL,30HCMPAL,’9’ENEXTADDDL,7NEXT:MOVAH,02HINT21H<4>将DH中的二进制数看成压缩BCD码并送出显示的程序段如下:MOVDL,DHMOVCL,4;获取十位SHRDL,CLADDDL,30HMOVAH,2;2号功能调用显示十位INT21HMOVDL,DHANDDL,0FH;获取个位ORDL,30HINT21H21、图略22、假定AX和BX中的内容为带符号数,CX和DX的内容为无符号数,请用比较指令和转移指令实现以下条件转移:<1>若DX的内容超过CX的内容,则转到Ll。答:CMPDX,CXJALl<2>若BX的内容大于AX的内容,则转到L2。答:CMPBX,AXJGL2<3>若DX的内容未超过CX的内容,则转到L3。答:CMPDX,CXJNAL3<4>判断BX与AX相比较是否产生溢出,若溢出则转到L4。答:CMPBX,AXJOL4<5>若BX的内容小于等于AX的内容,则转到L5。答:CMPBX,AXJLEL5<6>若DX的内容小于等于CX的内容,则转到L6。答:CMPDX,CXEL623、假设BX=0A69H,VALUE变量中存放的内容为1927H,写出下列各条指令执行后的BX的寄存器中和CF、ZF、SF与OF的值:<1>XORBX,VALUE<2>ANDBX,VALUE<3>ORBX,VALUE<4>SUBBX,VALUE<5>CMPBX,VALUE<6>TESTBX,VALUE答:BXCFZFSFOF<1>134EH0000<2>0821H0000<3>186FH0000<4>Fl42H1010<5>0A69H1010<6>0A69H0000第4章MASM汇编语言1、名词解释指令伪指令宏指令汇编语句汇编语言汇编源程序汇编程序汇编连接程序连接答:指令:是CPU可以理解并执行的操作命令。伪指令:是用于为汇编程序编译时理解程序框架、分配空间〔数据定义等的汇编语句。宏指令:实质上就是有多条指令打包而成的一组指令的集合。汇编指令:一行只能写一条汇编语句,一条汇编只能写在一行内。汇编语言:语句中的表达式是在汇编过程中完成计算的,即翻译之后的机器语言程序中是不包含表达式的。汇编源程序:主要有四步,录入源程序、汇编、连接、运行、调试运行。〔不准确汇编程序:编写汇编程序实质上就是在记住程序框架的基础上填写两空,即数据定义部分和功能程序部分。汇编:格式:MASM[[盘符][路径]程序基本名[.ASM]]建议程序基本名不要省略.连接程序:编译器和汇编程序都经常依赖于连接程序,它将分别在不同的目标文件中编译或汇编的代码收集到一个可直接执行的文件中。连接程序还连接目标程序和用于标准库函数的代码,以及连接目标程序和由计算机的操作系统提供的资源连接:LINK[[盘符][路径]程序基本名[.OBJ]]建议程序基本名不要省略。2、写出三种汇编语句的基本格式并进行说明。教材P503、由用户取名的名字项有哪些?名字项的取名规则如何?教材P504、请计算下列表达式的值。答<1>3+6/3*4mod3;注意运算优先级,值为5<2><MGTN>ANDNORMLENANDM;M,N中的较小值<3>5GT3<作为8位和16位二进制数各为多少>;0FFH和0FFFFH<4>20AND77<作为8位和16位二进制数各为多少>;04H和0004H<5>5AND-1:5<6>5OR-1;-l<7>NOT5<作为8位和16位二进制数各为多少>;0FAH和0FFFAH,均为-6<8>设有定义如下:ADB2,4,6,8BDW2,4,6,8CDW5DUP<2,4,6,8>则TYPEA、TYPEB和TYPEC分别为多少?;1,2,2LENGTHA、LENGTHB和LENGTHC分别为多少?;1,1,5SIZEA、SIZEB和SIZEC分别为多少?;1,2,105、汇编语言中的数据类型与其他高级语言的数据类型相比较有哪些特点?6、设有如下定义:ADB1101B,34,56Q,78H,4DUP<?>,'ABCD’请画出内存分配示意图并将其改成内存中存放次序相同的DW及DD的等价定义语句。答:图自己画。ADW220DH,782EH,2DUP<?>,4241H,4443HBDD,782E220DH,?,44434241H7、一个汇编源程序最多可以定义多少个段?段寄存器与所定义的段之间的对应关系是怎样实现的?答:最多4个段,通过段对应伪指令ASSUME段寄存器名:段名来实现的对应。8、设置一个数据段DATA,其中连续存放6个变量,用段定义语句和数据定义语句写出数据段:<1>A1为字符串变量:‘Example’。<2>A2为数值字节变量:l00,127,-l,80H,35Q,1101110B。<3>A3为4个0的字变量。<4>A4为A3的元素个数。<5>A5为A3占用的字节数。<6>A6为Al,A2,A3,A4,A5占用的总字节数。答:DATASEGMENTA1DB‘Example’A2DBl00,127,一l,80H,35Q,ll0111013A3DW4DUP<0>A4DWLENGTHA3A5DWA4一A3;或SIZEA3A6DW$一AlDATAENDS9、指出下列每一小题中的伪指令表达的操作哪些是错误的?错误在哪里? 自己做。10、指令OR AX,0FC8HOR563FH中,问两个OR操作分别在什么时候进行?有什么区别?用立即数写出此等价指令。答:第一个OR是CPU执行指令时完成的操作,第二个OR是汇编程序汇编时完成的操作。 用立即数写出的等价指令是ORAX,5FFFH。11、指出下列每一对伪指令语句的区别 自己做。12、请进行宏与子程序的比较。教材P6013、请用流程图表示完整汇编程序的上机过程。教材P6114、请默写两段程序的基本框架。教材P6015、请写出两字节数据相乘保存于字中的宏定义。答:参考代码如下:ABM MACROOPR1,OPR2,OPR3;宏定义,三个形参PUSHAXPUSHBXMOVAL,OPR1MOVBL,OPR2MULBLMOVOPR3,AXPOPBXPOPAXENDM;宏定义结束第5章汇编程序设计1、程序的三种基本结构是什么?请分别画出各自核心部分的流程图。P662、请画出将1字节二进制数据转化成十六进制数显示的流程图。 自己画3、编程实现两个字节变量相乘送字变量的程序。答:DATASEGMENTADBl2HBDB34HCDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,AMULBMOVC,AX:C=A×BMOVAH,4CH;返回DOSINT21HCODEENDSENDSTART4、编程实现从键盘接收2个一位十进制数并计算和显示它们的积。<如输入7和9则显示为:7*9=63>答:CODESEGMENTASSUMECS:CODEAGAINl:MOVAH,1;录入第一位INT2lHCMPAL,'0'AGAINlCMPAL,'9'JAAGAINlMOVDH,ALSUBDH,30HMOVDL,'*’;显示"*"MOVAH,2INT21HAGAIN2:M0VAH,1;录入第二位INT21HCMPAL,‘0’AGAIN2CMPAL,‘9’JAAGAIN2SUBAL,30HMULDH;相乘AAM;分离十位和个位MOVDH,AL;暂存个位MOVDL,AH:显示十位ADDDL,30HMOVAH,2INT21HMOVDL,DH;显示个位ADDDL,30HINT21HMOVAH,4CHINT21HCODEENDSENDAGAINl5、编程实现从键盘接收两位十六进制数并将其转化为等值的十进制数显示出来〔如输入7CH=124,要求至少设计一个子程序自己写6、编程实现三个变量值的排序<分别用无符号数和有符号数处理>。答:实现A、B、C三个变量从小到大排序的程序如下。DATASEGMENTADBl2HBDB34HCDB23HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,ACMPAL,BENEXTl;无符号,有符号用JLEXCHGAL,BMOVA,ALNEXTl:CMPAL,CENEXT2:无符号,有符号用JLEXCHGAL,CMOVA,ALNEXT2:MOVAL,BCMPAL,CENEXT3;无符号,有符号用JIEXCHGAL,CMOVB,ALNEXT3:MOVAH,4CH;返回DOSINT21HCODEENDSENDSTART7、编程实现任意个有符号字节数据之和<和要求用字变量存放>。答:DATASEGMENTADB………….;任意个字节数据NEQU$-A;元素个数SUMDW?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTAR:MOVAX,DATAMOVDS,AXLEASI,AXORDX,DXMOVCX,NAGAIN:MOVAL,[SI]CBWADCDX,AXLOOPAGAINMOVSUM,DXMOVAH,4CH:返回DOSINT21HCODEENDSENDSTART8、编写一个菜单选择处理程序。 自己写9、编写一子程序实现从某字数组中选出最大值。答:求数组元素最大值过程名MAX,数组首址为Sl,元素个数为CX,最大值由AX带出。MAXPROCNEARPUSHSIPUSHCXMOVAX,[S1]AGAIN:CMPAX,[SI]JGENEXT;有符号数,若为无符号数则JAEMOVAX,[SI]NEXT:INCSIINCSILOOPAGAINPOPCXPOPSIRETMAXENDP10、编写一子程序实现从某字数组中求出平均值<设其和不会超出范围>。答:;求数组元素之和函数SUM,数组首址为Sl,数组元素个数为CX,和由AX带出。SUMPROCNEARPUSHSIPUSHCXXORAX,AXAGAIN:ADDAX,[S1]INCSlINCSILOOPAGAINPOPCXPOPSlRETSUMENDP11、从键盘接收一串字符,并另起一行逆序显示该字符串。答:DATASEGMENTBUFDB81,0,81DUP<?>DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,BUFMOVAH,l0;接收一串字符INT2lHMOVDL,0DH;显示回车换行MOVAH,2INT21HMOVDL,0AHMOVAH,2INT21HMOVCL,BUF+1;取接收的字符数XORCH,CHLEABX,BUF+1ADDBX,CX;BX指向串尾AGAIN:MOVDL,[BX];逆向显示MOVAH,2TNT21HDECBXLOOPAGAINMOVAH,4CHINT2lHCODEENDSENDSTART12、假设密码为"123456",从键盘接收密码并验证,若正确则显示"欢迎使用本系统",否则显示"密码错误,您无权使用!"。 自己写13、从键盘输入1字节的两位十六进制数据,并分别用二进制、八进制、十进制、十六进制显示出来其等价的值。 自己写第6章Intel8086/88微处理器1、8086/88和传统的8位计算机相比在执行指令方面有什么不同?有什么优点?答:总线接口部分和执行部分是分开的,每当EU执行一条指令时,造成指令队列空出2个或空出一个指令字节时,BIU马上从内存中取出下面一条或几条指令,以添满他的指令队列。这样,一般情况下,CPU在执行完一条指令后,便可马上执行下一条指令,不像以往8位CPU那样,执行完一条指令后,需等待下一条指令。即EU从指令队列中取指令、执行指令和BIU补充指令队列的工作是同时进行的。这样大大提高了CPU利用率,降低了系统都对存储器速度的要求。2、8086有哪两种工作模式?其主要区别是什么?答:答:8086有最大和最小两种工作模式,最小工作模式是指MN/MX引脚为高电平,系统中只有8086/8088微处理器,系统中的所有控制信号都直接由CPU产生。最大工作模式是指MN/MX引脚为低电平,它是相对于最小模式而言的,系统中除了8086/8088作为处理器外,还包含数值运算协处理器8087、输入/输出协处理器8089,以及总线控制器8288和总线仲裁控制器8289等支持芯片,从而可以完成更复杂的运算或控制任务。3、请画出8086/88CPU功能模块图4、请说明8088与8086的主要区别。答:教材P81、P82和P915、请画出8088CPU最小模式核心示意图。 参考P85图6.8最小模式的8086CPU子系统图6、请画出8088CPU最大模式核心示意图。 参考P87图6.10最大模式的8086CPU子系统7、8284时钟发生器的功能是什么?它产生哪些信号?这些信号有何作用?教材P838、8086/8088的基本总线周期由几个时钟周期组成?IBMPC/XT机中CPU的时钟周期包括多少?一个输入或输出总线周期包括多少个时钟周期?答:8086/8088的基本总线周期由4个时钟周期组成。mMPC/XT机中CPU的时钟周期是210nS,一个输入或输出总线周期至少是4个时钟周期。说明:总线周期——CPU的BIU取指令和传送数据需要的时间。一个基本的总线周期由4个时钟周期<T状态>组成,即T1、T2、T3、T4状态。<1>在T1状态,CPU向地址/数据复用线<ADl5~ADO>和地址/状态复用线<AldS6~A1dS3>上发送地址信息,产生本次操作的地址。<2>在T2状态,CPU从总线上撤销地址信息,并向地址/状态复用线<A19/S6~AldS3>上发送本次操作的状态信息<S6~S3>;在读操作下,地址/数据复用线<ADl5~ADO>浮空<高阻>,为接收数据做准备;在写操作下,地址/数据复用线出现本次操作的数据。<3>在T3状态,地址,状态复用线仍为状态信息,地址/数据复用线出现本次操作的数据<读或写数据>。<4>在有些情况下,外设或存储器数据传输的速度跟不上CPU,则向CPU发出"未准备好"信号<READY=0>,CPU在T3状态后自动插入1个至多个等待周期TW,直至READY=1为止,进入T4状态。<5>在T4状态,总线周期结束。<6>若CPU不执行总线操作<不访问存储器或I/O>,系统总线则执行空闲周期Ti;在执行空闲周期时,总线高4位保留前一个总线周期的状态信息;若前一个总线周期为写操作,则地址/数据复用线仍保留写数据,若为读操作,则地址/数据复用线浮空。9、在T1状态下,8086/8088数据/地址线上传送的是什么信息?用哪个信号可将此信息锁存起来?数据信息是在什么时候送出的?在IBMPC/XT机中是怎样使系统地址总线和系统数据总线同时分别传送地址信息和数据信息的?答:在T1状态下,8086/8088数据/地址线上传送的是地址信息Al5~A0,地址锁存信号ALE引脚为高电平时,地址被锁存。数据信息是在DEN信号有效的时候送出,即主要在T2至乃期间。地址数据分时复用主要是用到地址锁存器<ALE有效>锁存地址送上数据总线,DEN有效数据缓冲器开通实现数据总线与CPU相通。10、简述读内存的基本过程。答:读内存的过程其实就是取指令<或取数>的过程,具体如下:<1>CPU先将待取指令<数据>的地址送上地址总线并译码指定到对应的内存单元。<2>CPU再发出读信号。<3>内存单元内容的送出指令到数据总线。<4>指令<数据>通过数据总线送到CPU。<5>因为是取指令,CPU内部存入指令队列<取指特有>。11、简述写内存的基本过程。教材P9012、根据8086内存读/写时序图,回答如下问题:〔1地址信号在哪段时间内有效?T1周期〔2读操作与写操作的区别?教材P89、P90〔3内存读写时序与I/O读写时序的区别?读写控制引脚有效性不同,要给出具体引脚。〔4什么情况下需要插入等待周期TW? 教材P8913、请画出8088最大模式读内存时序图。 参考P90图6.138086读总线周期时序图〔最大模式,根据地址引脚和数据引脚的区别进行修改〔8088只有8个数据引脚14、请画出8088最小模式写IO时序图。 参考P91图6.148086写总线周期时序图〔最小模式,根据下面提到的8088和8086的最小模式读写内存或者IO时序的区别进行修改。15、总线响应的条件是什么? 教材P9216、简述总线请求/响应的基本过程。 教材P9217、RESET信号来到后,8086/8088系统的CS和IP分别为什么内容?复位时执行的第一条指令的物理地址是多少?答:RESET信号来到后,8086,8088系统的CS和IP分别为0F'FFFH和0000H。18、编写使计算机软启动的功能程序段。第7章内存组成、原理与接口1、存取周期是指<C>。A.存储器的读出时间B.存储器的写入时间C.存储器进行连续读和写操作所允许的最短时间间隔D.存储器进行连续写操作所允许的最短时间间隔2、某计算机的字长是16位,它的存储器容量是64KB,若按字编址,那么它的最大寻址范围是<B>。A.64K字B.32K字C.64KBD.32KB3、某一RAM芯片的容量为512×8位,除电源和接地线外,该芯片的其他引脚数最少应为<D>。A.25B.23C.21D.19注:地址线9根,数据线8根,控制线2根。4、EPROM是指<D>。A.随机读写存储器B.只读存储器C.可编程的只读存储器D.可擦除可编程的只读存储器5、下列RAM芯片各需要多少个地址引脚和数据引脚?<1>4K×8位<2>512K×4位<3>1M×l位<4>2K×8位答:SRAM:<1>12和8<2>19和4<3>20和1<4>11和8DRAM:<1>6和16<2>5和8<3>10和2<4>6和16。6、下列ROM芯片各需要多少个地址引脚和数据引脚?<1>16×4位<2>32×8位<3>256×4位<4>512×8位答:<1>4和4<2>5和8<3>8和4<4>9和87、存储器按功能、性质和信息存取方式分别可分为哪些类型?教材P958、计算机的内存和外存有什么区别?答:内存用于存放当前正在运行的程序和正在使用的数据,CPU可以直接对它进行访问。相对于外存而言,内存主要特点是存取速度快、存储容量较小、成本较高,通常使用半导体存储器组成。外存用于存放当前暂不使用的或需要永久性保存的程序、数据和文件,在需要重用时才成批地调入,调出内存。外存的主要特点是存储容量大、成本较低、存取速度较慢,必须使用专门的设备<如磁盘驱动器、光盘驱动器、磁带机>才能访问,一般使用磁性介质如磁盘、磁带>或光介质<如光盘>实现。9、微机中为什么要使用层次结构的存储系统? 教材P9710、简要回答以下问题:〔1按信息存储的方式,RAM可分为哪三种? 只读、直接存取、顺序存取〔2只读存储器按功能可分为哪四种? 教材P96〔3SRAM和DRAM主要有哪些区别?SRAM特点:SRAM的基本存储单元是6管双稳态触发电路存储信息。每个基本存储元存储二进制数一位,许多个基本存储元形成行列存储矩阵。SRAM一般采用"字结构"存储矩阵:每个存储单元存放多位〔4、8、16等速度快〔<5ns,不需刷新,外围电路比较简单,但集成度低〔存储容量小,约1Mbit/片,功耗大。在PC机中,SRAM被广泛地用作高速缓冲存储器CacheDRAM特点:DRAM的存储元主要由电容构成;存储信息不稳定,需要"读出再生放大电路"定时刷新。每次同时对一行的存储单元进行刷新DRAM一般采用"位结构"存储体:每个存储单元存放一位存储容量高〔集成度高,功耗低,存取速度较低,价格便宜,主要用作主内存。〔4闪存FlashROM的主要优点是什么? 教材P9611、用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。<1>512×4位RAM构成l6KB的存储系统。<2>1024×1位RAM构成l28KB的存储系统。<3>2K×4位RAM构成64KB的存储系统。<4>64K×1位RAM构成256KB的存储系统。答:<1>需要64片RAM和11位地址作为片外地址译码。<2>需要l024片RAM和10位地址作为片外地址译码。<3>需要64片RAM和9位地址作为片外地址译码。<4>需要32片RAM和4位地址作为片外地址译码。12、已知某微机控制系统中的RAM容量为4K×8位,首地址为4800H,求其最后一个单元的地址。答:最后一个单元地址=起始地址+容量一14800H+1000H一1=57FFH、13、某微机系统中内存的首地址为3000H,末地址为63FFH,求其内存容量。答:容量=最后一个单元地址一起始地址+163FFH~3000H+1=3400H=13KB14、某微机系统中ROM为6KB,最后一个单元的地址为9BFFH,RAM为3KB。已知其地址为连续的,且ROM在前,RAM在后,求该内存系统的首地址和末地址。答:9BFFH--1800H+1=8400H,所以ROM的首地址为8400H、末地址为9BFFH。RAM的首地址为9C00H,末地址为9C00H+C00H一1=A7FFH。15、用半导体存储器芯片组成内存子系统时需注意哪些问题?三总线AB、DB、CB的一般接法?教材P11016、内存系统的芯片选择通常有哪几种形式,各有何特点?答:有全译码法、部分译码法和线选法三种。在内存译码电路中,系统的全部地址总线都参与地址译码,对应存储器芯片中的每一个存储字都有唯一的确定地址,称之为"全译码"法。如果仍使用集成译码器,但片外地址中有一部分不参加对内存的片选译码,称为"部分译码"法。如果只使用一些基本的逻辑门电路——与门、或门和非门的组合,对若干位片外地址译码实现对内存的片选,称为"线选法"。17、相对于SRAM,DRAM需要解决哪些特殊问题? 教材P11318、在图7.23中,如果将片选控制信号从。。。。。依次改接到。。。。。,各芯片的地址范围为多少? 注:高位地址没变,只有地位片内译码地址变了,列表画出来各芯片的地址表即可找出地址范围。19、使用2732、6116和74LSl38构成一个存储容量为12KBROM<地址00005H~02FFFH>、8KBRAM地址<03000H04FFFH>的内存系统。设系统地址总线20位,数据总线8位,全译码。请画出原理图。答:习题l9的内存连接原理图下图所示。第8章输入输出<I/O>系统1、简述I/O接口的基本功能。答:I/O接口是主机和外设的通信桥梁,主要有数据的寄存和缓冲功能、对外设的控制和监测功能、设备选择功能、信号转换功能、中断管理或DMA管理功能、可编程功能。2、数据信息有哪几类?CPU和输入输出设备之间传送的信息有哪几类?相应的端口称为什么端口?答:数字信息有数字量、模拟量和开关量三种。CPU和外设主要传送数据信息、状态信息和控制信息,相应的为数据端口、状态端口和控制端口。3、简述I/O端口独立编址方式和存储器映射方式的特点及优缺点。 教材P1234、CPU和外设之间的数据传送方式有哪几种?各种传送方式通常用在什么场合?答:CPU和外设之间的数据传送方式有以下几种:无条件传送方式、查询传送方式、中断传送方式、DMA<直接存储器存取>方式、lOP<输入输出处理机>方式。无条件I/O:适合于外设总是处于准备好或准备好时间相对固定的设备。查询I/O:在传送前先查询一下外设的状态,当外设准备好了才传送;若未准备好,则CPU等待。适合较复杂且准备好时间相对较短的设备。中断I/O:采用中断方式则可以免去CPU的查询等待时间,当外设没有准备好时,CPU可以去做自己其他的工作;当外设准备好时,主动向CPU提出请求。故在中断方式中,CPU和外设以及外设与外设之间是并行工作。适合较复杂且准备好时间相对较长的设备。DMA方式I/O:直接用硬件控制数据在外设和存储器之间的传送,适合快速且成块的数据传输。IOP方式:IOP可以和CPU并行工作,提供高速的DMA处理能力,实现数据的高速传送,但成本较高,适合要求I/O速度很高的场合,如3D图形显示等。5、何为全译码方式?何为部分译码方式?其优缺点各是什么?答:全译码方式:CPU的全部地址总线都参与地址译码,因此一个端口对应唯一的一个地址,使用的地址线比较多,电路比较复杂。部分译码方式:CPU输出的地址信号只有部分参与地址译码,另一部分<一般为高位或低位地址>未参与,因此一个译码输出对应若干个端El地址,这就是地址重叠现象。这种方法使用地址线少,电路简单。6、分析下图所示的译码电路,当地址信号Al5~A7是多少时,74LSl38才能允许工作?Y0~Y7有效<为低电平>时对应的地址各是什么?答:分析译码电路采用逆向分析的方法:或门输出无效,则输入必须全无效;与门输出有效,则输入必须全有效。7、设计一个外设端口地址译码器,使CPU能寻址四个地址范围:<1>240~247H,<2>248~24FH,<3>250~257H,<4>258~25FH。答:如果是重叠地址则译码电路如图8.2所示,如果是可变译码则译码电路如图8.3所示。8、试用74LS244作为输入接口,读取三个开关的状态,用74LS273作为输出接口,点亮红、绿、黄三个发光二极管,示意图如图8.23所示。请画出PC/XT机系统总线的完整接口电路<包括端口地址译码的设计>,端KI地址如图中所示<340H和348H>,并编写能同时实现以下三种功能的程序:<1>K0、Kl、K2全部合上时,红灯亮;<2>K0、Kl、K2全部断开时,绿灯亮;<3>其他情况黄灯亮。答:程序如下:AGAIN:MOVDX,340HINAL,DX;开关采样ANDAL,07H;屏蔽无效位CMPAL,0JERED;全合上,转红灯亮CMPAL,07HJEGREEN;全合上,转绿灯亮MOVAL,01H;否则,黄灯亮JMPNEXTRED:MOVAL,04HJMPNEXTGREEN:MOVAL,02HNEXT:MOVDX,348HOUTDX,ALJMPAGAIN9、图8.24为一个LED接口电路,写出使8个LED管自上至下依次发亮2S的程序,并说明该接口属于何种输入输出控制方式?为什么?答:该接口驱动的是发光二极管,属始终准备好的简单外设,所以可用无条件I/O。程序如下:MOVAL,07FH;共阳接法,送0亮MOVCX,8AGAIN:OUT20H,ALRORAL,lCALLDELAY2S;调用延迟2S子程序LOOPAGAIN第9章中断技术1、什么叫中断?简述一个中断的全过程。答:中断是指CPU正在执行某个程序,因为某种原因被打断,转去为这种原因服务,服务完后返回继续执行被暂时中断的程序。中断过程主要有中断请求、中断判优及响应、中断服务和中断返回。2、确定中断的优先级<权>有哪两种方法?各有什么优缺点?IBMPC系列微机中断判优用的是什么方法?答:确定中断优先级方法主要有查询法、请求链队法、响应链队法、编码比较法等。查询法主要由查询的先后次序决定其优先级。请求链队法主要由其排队的先后次序决定其优先级,只有级别高无请求时,级别低才可以提出请求。响应链队法主要由其排队的先后次序决定其优先级,均可提出请求,但只响应排在最前面的请求。编码比较法主要是用于中断嵌套,判断是否有比当前正在服务的中断请求更高级别的中断请求,有则响应,无则屏蔽。IBMPC系列微机中断判优用的是中断控制器8259A,其内部集成了可编程改变的请求优先级电路及编码比较电路,既可以处理中断的优先级、也可以处理中断嵌套的优先级。3.8086/8088的中断分类?什么是中断向量?什么是中断向量表?8086/8088总共有多少级中断?它们的中断类型号是多少?中断向量表设在存储区的什么位置?答:中断分类如图所示。中断向量是指中断服务程序的入口地址。所有指中断服务程序的入口地址依次存放的区域称为中断向量表。8086/8088总共有256级中断,中断类型号从0至255。中断向量表设在存储区最起始的1KB位置,每个中断向量占用4字节

温馨提示

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

评论

0/150

提交评论