1、第五章分支程序设计第五章 分支程序设计练习题5 4 1 单项选择题1双分支程序设计中实现分支的指令是( )指令A 条件转移 B 无条件转移 C.移位 D 算术运算2条件判断转移是根据标志寄存器中的标志位来判断的,用来实现条件判断转移标志位共有 ( )位。A4 B 5 C6 D93条件转移指令的转移范围是( )。A . 065535B.3276832767C. 0255D. 128127 4用一条条件转移指令一次可实现( )个分支。A. 2 B. 3 C. 4 D.多 5下列指令会影响标志位的指令是( )。AJMPL BJCL CMOVAL ,LD SHLAL ,16. 当两个无符号数进行相加时
2、,执行“ JCL ”指令表示()转移。A 结果溢出 B 结果为 0 C 结果为奇 D 结果为负7. 当两个无符号数进行比较时,执行“ JAL ”指令表示()转移。A. CF = 0 且 ZF = 0 B . CF= 0 且 ZF= 1C . CF= 1 且 ZF= 0 D . CF= 1 且 ZF = 1&当“ CMPAX , BX”比较时,执行“JGL指令后转移列L,则表明()0101H 单元存放条件转移指令的相对位移量A . AX BX B . AX = BX C . AX V BX D . AX BX9 如果 0100H 单元存放条件转移指令的操作码,13H,那么转移后的指令的偏移地址为
3、( )10 下列叙述不正确的是( )。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
4、逻辑运算指令 D 转移指令4在多分支程序设计中,常用的方法有( )。A 地址表法 B 计数法 C 转移表法 D 逻辑分解法5执行完指令“ CMP AX, 100”后,如果要实现 AX 寄存器中的无符号数高于 100则转移到 L, 应该使用的指令有( )。A JNS L B JNC L C JA L D JNBE L6 .执行完指令“ CMP AX , 0”后,如果要实现 AX寄存器中的内容为正数则转移到 L,应该使用的指令有( )。A JAE L B JGE L C JNS L D JNC L7.如果用“ JS P指令实现AX寄存器中的内容为负数转移,产生条件的指令可用( )。A AND AX
5、 , 8000H B CMP AX, 8000HC. TEST AX , 8000H D. CMP AX , 0&如果用要判断 AX寄存器中的内容为100H则转移到P,如下的选项有(A. CMP AX,100H B. SUB AX,100HJZ P JE PC. AND AX , 100H D. XOR AX , 100HJZ P JZ P9.100H则转移到设AX寄存器中的内容为有符号数,如果用要判断 AX寄存器中的内容小于P,如下的选项有()。A. CMPAX ,100HB.SUBAX ,100HJLPJNGPC. CMPAX,100HD.SUNAX ,100HJNGEPJNAEP10.如
6、果在TAB字单元中存放的是某程序的入口地址,要转移到该程序的的选项有( )A. LEA BX , TAB B . MOV BX , 0JMP BX JMP TABBXC. JMP TAB D . JMP DWORD PTRTAB5. 4. 3填空题1. 当两个有符号数相减后,若要判断大于等于则转、需用、或 指令。2.在分支程序的结构中,其流程图一般由、定向和四个部分组成。3.转移表法分支程序设计中,其程序转移表中存放的是。4.地址表法分支程序设计中,其地址表中存放的是。5 .逻辑分解法程序设计一般是利用多条指令实现多分支程序设计的。6.条件转移指令是分支程序设计中最常用的指令之一,这类指令大体
7、上可以分为三种,它们是条 件转移,条件转移和条件转移指令。7.条件转移指令的执行,是当条件时则转移。8 .在执行条件转移指令前,必须要执行产生条件码的指令,然后才能进行条件判断转移,而一般 的数据传送指令影响条件码(标志位)。9.当两个数进行比较后,执行指令表示结果为零转 L。10 .为了实现程序的多路分支,通常使用、和三种方法的分支程序设计方法5.4. 4程序分析题1.现有程序如下:DATASEGMENTXFLAGDATADB 0ABHDB 0ENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOV AX , DATA MOV DS , AXMOV A
8、L , XCMP AL , 0JGE LMOV FLAG , 0JMP EXITL :MOV FLAG , 1EXIT :MOV AH , 4CHINT 21HCODE ENDSEND START请回答:( 1)该程序完成什么功能?(2)程序执行完后 FLAG 中的内容是多少? 2现有程序如下:DATA SEGMENTBUF DB 0DATA ENDSCODE SEGMENTASSUMECS :CODE, DS:DATASTART: MOV AX , DATAMOV DS , AXMOV AH , 1INT21HCMPAL , 61HJB NCMPAL , 7AHJA NSUBAL , 20H
9、N :MOVBUF , ALMOVAH , 4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)如果要将“ CMPAL , 7AH ”改为“ CMPAL , 7BH ”,则相应的指令 “ JAN ”应改为什么指令?3现有程序如下:DATA SEGMENTA DB 23B DB 0F0HC DB 0DATA ENDSCODE SEGMENTASSUMECS :CODE, DS:DATASTART: MOV AX , DATAMOV DS , AXMOV AL , ACMP AL , BJZ LJG MMOV C , 1JMP EXITL : MOV C ,
10、0JMP EXITM :MOV C , 1EXIT :MOV AH , 4CHINT 21HCODEENDSEND START请回答:( 1)该程序完成什么功能?(2)程序运行后, C 中的内容是什么? 4现有程序如下:DATAXSEGMENTDW 7000HYDATACODEDW 9000HENDSSEGMENTASSUMECS :CODE, DS:DATASTART :MOV AX , DATA MOV DS , AX MOV AX , X SUB AX , Y JO LMOV DL , N JMP EXITL :MOV DL , Y EXIT :MOV AH , 2INT 21HMOV
11、AH , 4CHINT 21HCODEENDSEND START请回答:( 1)请程序完成什么功能?( 2 )程序执行完后,显示输出的结果如何? 5现有程序如下:DATASEGMENTBUF1C1DB ABCDAC = $ BUF1BUF2BUF3DATADB CDW 0 ENDSCODESEGMENTASSUMECS :CODE,DS:DATASTART :MOV AX , DATA MOV DS , AX MOV ES , AX LEA DI ,BUF1 MOV CX , C1 MOV AL ,BUF2 CLDREPNE SCASBJNZ NMOV DL , YMOV AH ,2INT 2
12、1HSTART :MOV AX , DATAMOVDS ,AXLEASI , BUFMOVAL , SIMOVBL , SI+1MOVCL, SI+2CMPAL,BLJAEN1XCHGAL,BLN1:CMPAL,CLJAE N2XCHGAL,CLN2:CMPBL,CLJAEN3XCHGBL,CLN3:MOVSI,ALMOVSI+1,BLMOVSI+2,CLMOVAH,4CHINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后 BUF 中的内容依次是什么? 7现有程序如下:DATA SEGMENTX DB 4FHBUF DB 2 DUP ( 0)DA
13、TA ENDSCODE SEGMENTASSUME CS :CODE , DS:DATA START: MOV AX , DATAMOVDS ,AXMOVAL , XMOVCL , 4SHRAL ,CLCMPAL , 9JBELADDAL , 7L :ADDAL , 30HMOVBUF , ALMOVAL , XANDAL , 0FHCMPAL , 10JBMADDAL , 7M :ADDAL , 30HMOVBUF 1, ALMOVAH , 4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后BUF 中的内容依次是什么?8现有程序如下:DATA
14、SEGMENTADW1234HBDW5678HSDB NOSWAP!DATAENDSCODE SEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX ,DATAMOVDS ,AXMOVAH ,1INT21HCMPAL ,YJNZMCMPAL ,yJNZ MMOV AX , AXCHG AX , BMOV A, AXJMPNM :MOVAH ,9LEADX ,SINT21HN :MOVAH ,4CHINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?(2)若鍵盘输入“ Y”时,A , B中的值各为多少?9现有程序如下:请回答:(ZDW
15、0DATAENDSCODESEGMENTASSUME CS: CODE, DSSTART:MOVAX , DATAMOVDS , AXMOVAL , XCMPAL , 0JGE LADDAL , YMOVAH , 0ADCAH , 0MOVZ , AXJMPEXITL :SUB AL , YMOV AH ,0SBB AH ,0EXIT :MOV AH, 4CHINT 21HCODEENDSEND START该程序计算的表达式是什么?1):DATA( 2)程序运行后, Z 中的内容是什么?10现有程序如下:DATASEGMENTBUFDB0F3HSDB0DATAENDSCODE SEGMENTA
16、SSUME CS :CODE ,DS:DATASTART: MOV AX , DATAMOV DS , AXMOV AL , BUF TEST AL , 80H JZ L NEG AL L: MOV S ,ALMOV AH , 4CHINT 21HCODE ENDSEND START请回答:( 1)该程序完成什么功能? (2)程序运行后 S 中的内容是什么? 11现有程序如下:DATA SEGMENT STR DB ABCDEFGMABC C = $ STRX = 5DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX , DATAM
17、OV DS ,AXMOV ES , AXCLDLEASI ,STRADDSI ,XMOVDI , SIINCSIMOVCX , CSUBCX ,XDECCXCMPCX ,0JBEEXITREPMOVSBEXIT :MOV AH,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后STR中的内容是什么?12现有程序如下:DATA SEGMENT X DB 96HY DB 0A2HDATA ENDSCODE SEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX , DATAMOV DS,AXMOVAL , XCMPA
18、L , YJGLXCHGAL , YL:MOV BL,ALMOVCL , 4SHRAL , CLCMPAL , 9JBEMADDAL , 7M:ADD AL,30HMOVDL , ALMOVAH , 2INT21HANDBL , 0FHCMPBL , 9JBENADDBL , 7N:ADD BL,30HMOVAH , 2MOVDL , BLINT21HMOVDL , H MOVAH , 2INT21HMOVAH , 4CHINT21HCODE ENDSEND START请回答:( 1)该程序完成什么功能? (2)程序运行后显示的内容是什么? 13现有程序如下:DATASEGMENTD0DBDA
19、TA0D1DBDATA1 D2DBDATA2D3DBDATA3XDB02HTABDWDIS0 ,DIS1,DIS2,DIS3DATAENDSCODE SEGMENTMOVDS , AXLEABX , TABMOVAL , XANDAL , 3MOVAH , 0SHLAX , 1ADDBX , AXJMPWORD PTRBXDIS0:LEADX,D0JMPEXITDIS1:LEADX,D1JMPEXITDIS2:LEADX,D2JMPEXITDIS3:LEADX,D3EXIT:MOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTARTSTART:MOV AX , D
20、ATA请回答:( 1)该程序完成什么功能?2)程序运行后显示输出的是什么?14现有程序如下:DATASEGMENTXDB3YDB45HWDB0DATAENDSCODESEGMENTASSUME CS :CODE,DS:START:MOV AX , DATAMOVDS , AXMOVBX , OFFSETTABMOVAL , XMOVAH , 0ANDAL , 3SHLAX , 1ADDBX , AXJMPBXEXIT :MOVAH , 4CHINT21HTAB :JMPSHORT M0DATA( 2)程序运行后 W 中的内容是什么?15,现有程序如下:DATASEGMENTWDB?XDB25Y
21、DW0DATAENDSCODE SEGMENTASSUME CS :CODE , DS:DATASTART:MOV AX , DATAMOVDS , AXMOVAL , XMOVBL , WCMPBL , 0JZL1CMPBL , 1JZL2CMPBL , 2JZL3MOVBL , ALMULALJMPEXITL1:ADDAL , 100L:MOVAH , 0ADCAH , 0JMPEXITL2:ADDAL , 200L3 :JMPSUBLAL,100MOVSBBAH , 0AH , 0EXIT :MOVY , AXINT21HCODEENDSENDSTART1)请回答:(2)若W中的内容为5
22、,程序运行后Y中的内容是多少? 5. 4. 5程序填空题。下列程序是判断BUF 元清0,否则就将其置MOV(1)(2)MOV FLAG , L3MOV FLAG ,该程序完成什么功能?字缓冲区中有符号数的大小,当其数值大于一 1。请在程序的空格处填上适当的指令。AX ,100时,就将FLAG字节单BUFM :MOVAH , 4CHINT21H下列程序是判断X和Y有符号字数据的大小,当1,当X中的数据小于Y中的数据时就将Z送一的指令。MOVAX , X(1)(2)JGMMOVZ , 1JMPEXITL :MOVZ , 0JMPEXITM :(3)EXIT :MOVAH , 4CHL :12.X中
23、的数据大于1,否则将Z清0,INT 21HY中的数据时,就将 Z置 请在程序的空格处填上适当X, 当i X = Y时执行X + Y,其运算后的结果存放在 W中。请在程序的空格处填上适当的指令。MOVAX , XMOVBX , YCMPAX , BX(1)JBMADDAX , BX3 下列程序是判断两个无符号字数据 X、Y的大小,当XY时执行X Y,当XVY时执行YJMPEXITM :XCHGAX , BXSUBAX , BXEXIT :MOVW , AXY时,若为字MOVAX , X + 2MOVBX , XCMPAX , Y + 2JBL1(1)CMPBX , Y(2)L1 :(3)JMPE
24、XITL2 :MOVF, 1EXIT :MOVAH , 4CHINT21H下列程序是将BUF字节缓冲区中的两位十六进制数转换成两位十六进制数ASCII 码,换结果存放在Y单元中的程序。请在程序的空白处填上的适当的指令。MOVAL , BUF(1)SHRAL , CL(2)JBELADDAL , 7L :ADDAL , 30HMOVY , ALMOVAL , BUF(3)CMPAL , 10(4)ADDAL , 7M :ADDAL , 30HMOVY + 1 , ALMOVAH , 4CHINT21HMOV AH , 4CHINT 21H4 设X、Y是双精度32位无符号数变量,下列程序是完成 2个数大小的判断,当 X大于将字节变量F置1,否则将字节变量F清0,请在程序的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1