第五章分支程序设计练习题5.4.1单项选择题1.双分支程序设计中实现分支的指令是()指令。A.条件转移B.无条件转移C.移位D.算术运算2.条件判断转移是根据标志寄存器中的标志位来判断的,用来实现条件判断转移标志位共有()位。A.4B.5C.6D.93.条件转移指令的转移范围是()。A.0~65535B.~32768~32767C.0~255D.-128~1274.用一条条件转移指令一次可实现()个分支。A.2B.3C.4D.多5.下列指令会影响标志位的指令是()。A.JMPLB.JCLC.MOVAL,LD.SHLAL,16.当两个无符号数进行相加时,执行“JCL”指令表示()转移。A.结果溢出B.结果为0C.结果为奇D.结果为负7.当两个无符号数进行比较时,执行“JAL”指令表示()转移。A.CF=0且ZF=0B.CF=0且ZF=1C.CF=1且ZF=0D.CF=1且ZF=18.当“CMPAX,BX”比较时,执行“JGL”指令后转移列L,则表明()。A.AX>BXB.AX=BXC.AX<BXD.AX≥BX9.如果0100H单元存放条件转移指令的操作码,0101H单元存放条件转移指令的相对位移量13H,那么转移后的指令的偏移地址为()。A、0102HB、0113HC、0115HD、00FEH10.下列叙述不正确的是()。A.有符号数比较后的条件转移指令可采用JG、JL、JGE和JLE指令。B.无符号数比较后的条件转移指令可采用JA、JB、JNE和JBE指令。C.有符号数比较后判断溢出用JO和JNO指令。D.无符号数比较后判断溢出用JS和JNS指令。5.4.2多项选择题1.分支程序结构的形式有()。A.单分支结构B.双分支结构C.多分支结构D.无分支结构2.在分支结构的程序中,分支程序的流程一般有()。A.判断转移框B.循环框C.产生条件框D.分支程序段框3.在下列的选项中,可以用来产生条件的选项有()。A.数据传送指令B.算术运算指令C.逻辑运算指令D.转移指令4.在多分支程序设计中,常用的方法有()。A.地址表法B.计数法C.转移表法D.逻辑分解法5.执行完指令“CMPAX,100”后,如果要实现AX寄存器中的无符号数高于100则转移到L,应该使用的指令有()。A.JNSLB.JNCLC.JALD.JNBEL6.执行完指令“CMPAX,0”后,如果要实现AX寄存器中的内容为正数则转移到L,应该使用的指令有()。A.JAELB.JGELC.JNSLD.JNCL7.如果用“JSP”指令实现AX寄存器中的内容为负数转移,产生条件的指令可用()。A.ANDAX,8000HB.CMPAX,8000HC.TESTAX,8000HD.CMPAX,08.如果用要判断AX寄存器中的内容为100H则转移到P,如下的选项有()。A.CMPAX,100HB.SUBAX,100HJZPJEPC.ANDAX,100HD.XORAX,100HJZPJZP9.设AX寄存器中的内容为有符号数,如果用要判断AX寄存器中的内容小于100H则转移到P,如下的选项有()。A.CMPAX,100HB.SUBAX,100HJLPJNGPC.CMPAX,100HD.SUNAX,100HJNGEPJNAEP10.如果在TAB字单元中存放的是某程序的入口地址,要转移到该程序的的选项有()。A.LEABX,TABB.MOVBX,0JMPBXJMPTAB[BX]C.JMPTABD.JMPDWORDPTR[TAB]5.4.3填空题1.当两个有符号数相减后,若要判断大于等于则转、需用、或指令。2.在分支程序的结构中,其流程图一般由、、定向和四个部分组成。3.转移表法分支程序设计中,其程序转移表中存放的是。4.地址表法分支程序设计中,其地址表中存放的是。5.逻辑分解法程序设计一般是利用多条指令实现多分支程序设计的。6.条件转移指令是分支程序设计中最常用的指令之一,这类指令大体上可以分为三种,它们是条件转移,条件转移和条件转移指令。7.条件转移指令的执行,是当条件时则转移。8.在执行条件转移指令前,必须要执行产生条件码的指令,然后才能进行条件判断转移,而一般的数据传送指令影响条件码(标志位)。9.当两个数进行比较后,执行指令表示结果为零转L。10.为了实现程序的多路分支,通常使用、和三种方法的分支程序设计方法。5.4.4程序分析题1.现有程序如下:DATASEGMENTXDB0ABHFLAGDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPAL,0JGELMOVFLAG,0JMPEXITL:MOVFLAG,1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序执行完后FLAG中的内容是多少?2.现有程序如下:DATASEGMENTBUFDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,1INT21HCMPAL,61HJBNCMPAL,7AHJANSUBAL,20HN:MOVBUF,ALMOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)如果要将“CMPAL,7AH”改为“CMPAL,7BH”,则相应的指令“JAN”应改为什么指令?3.现有程序如下:DATASEGMENTADB23BDB0F0HCDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,ACMPAL,BJZLJGMMOVC,-1JMPEXITL:MOVC,0JMPEXITM:MOVC,1EXIT:MOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后,C中的内容是什么?4.现有程序如下:DATASEGMENTXDW7000HYDW9000HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,XSUBAX,YJOLMOVDL,‘N’JMPEXITL:MOVDL,‘Y’EXIT:MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)请程序完成什么功能?(2)程序执行完后,显示输出的结果如何?5.现有程序如下:DATASEGMENTBUF1DB‘ABCDAC’C1=$-BUF1BUF2DB‘C’BUF3DW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXLEADI,BUF1MOVCX,C1MOVAL,BUF2CLDREPNESCASBJNZNMOVDL,‘Y’MOVAH,2INT21HDECDIMOVBUF3,DIJMPEXITN:MOVDL,‘N’MOVAH,2INT21HEXIT:MOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后,BUF3中的内容是什么?显示输出是什么?6.现有程序如下:DATASEGMENTBUFDB23,125,96DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEASI,BUFMOVAL,[SI]MOVBL,[SI+1]MOVCL,[SI+2]CMPAL,BLJAEN1XCHGAL,BLN1:CMPAL,CLJAEN2XCHGAL,CLN2:CMPBL,CLJAEN3XCHGBL,CLN3:MOV[SI],ALMOV[SI+1],BLMOV[SI+2],CLMOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后BUF中的内容依次是什么?7.现有程序如下:DATASEGMENTXDB4FHBUFDB2DUP(0)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XMOVCL,4SHRAL,CLCMPAL,9JBELADDAL,7L:ADDAL,30HMOVBUF,ALMOVAL,XANDAL,0FHCMPAL,10JBMADDAL,7M:ADDAL,30HMOVBUF+1,ALMOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后BUF中的内容依次是什么?8.现有程序如下:DATASEGMENTADW1234HBDW5678HSDB‘NOSWAP!$’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,1INT21HCMPAL,‘Y’JNZMCMPAL,‘y’JNZMMOVAX,AXCHGAX,BMOVA,AXJMPNM:MOVAH,9LEADX,SINT21HN:MOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)若鍵盘输入“Y”时,A,B中的值各为多少?9.现有程序如下:DATASEGMENTXDB23HYDB45HZDW0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPAL,0JGELADDAL,YMOVAH,0ADCAH,0MOVZ,AXJMPEXITL:SUBAL,YMOVAH,0SBBAH,0EXIT:MOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序计算的表达式是什么?(2)程序运行后,Z中的内容是什么?10.现有程序如下:DATASEGMENTBUFDB0F3HSDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,BUFTESTAL,80HJZLNEGALL:MOVS,ALMOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后S中的内容是什么?11.现有程序如下:DATASEGMENTSTRDB‘ABCDEFGMABC’C=$-STRX=5DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVES,AXCLDLEASI,STRADDSI,XMOVDI,SIINCSIMOVCX,CSUBCX,XDECCXCMPCX,0JBEEXITREPMOVSBEXIT:MOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后STR中的内容是什么?12.现有程序如下:DATASEGMENTXDB96HYDB0A2HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPAL,YJGLXCHGAL,YL:MOVBL,ALMOVCL,4SHRAL,CLCMPAL,9JBEMADDAL,7M:ADDAL,30HMOVDL,ALMOVAH,2INT21HANDBL,0FHCMPBL,9JBENADDBL,7N:ADDBL,30HMOVAH,2MOVDL,BLINT21HMOVDL,‘H’MOVAH,2INT21HMOVAH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后显示的内容