第五章分支程序设计.doc

上传人:scccc 文档编号:14594267 上传时间:2022-02-09 格式:DOC 页数:20 大小:591.50KB
返回 下载 相关 举报
第五章分支程序设计.doc_第1页
第1页 / 共20页
第五章分支程序设计.doc_第2页
第2页 / 共20页
第五章分支程序设计.doc_第3页
第3页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第五章分支程序设计.doc》由会员分享,可在线阅读,更多相关《第五章分支程序设计.doc(20页珍藏版)》请在三一文库上搜索。

1、第五章 分支程序设计练习题541 单项选择题1 双分支程序设计中实现分支的指令是()指令。算术运算用来实现条件判断转移标志位共有(A.条件转移 B .无条件转移 C.移位D.2 条件判断转移是根据标志寄存器中的标志位来判断的, 位。345678A4B5C6条件转移指令的转移范围是( )。 A 0 65535 B 32768 32767 用一条条件转移指令一次可实现(A. 2B. 3 C. 4 D .多下列指令会影响标志位的指令是( A JMP L B JC L CMOV 当两个无符号数进行相加时,执行“ A 结果溢出D9C 0 255 )个分支。D128 127)。AL ,JC LB 结果为

2、0 C 结果为奇JA L当两个无符号数进行比较时,执行“A. CF = 0 且 ZF= 0C . CF= 1 且 ZF = 0 当“ CMP AX , BXL DSHL AL,1 指令表示(D 结果为负 指令表示()转移。)转移。B. CF= 0 且 ZF= 1D . CF= 1 且 ZF= 1 比较时,执行=BX C.A . AX BX B . AX9 如果 0100H 单元存放条件转移指令的操作码,那么转移后的指令的偏移地址为( )“JG L”指令后转移列AX V BX D . AX BX0101H 单元存放条件转移指令的相对位移量 13H,L,则表明()oA、0102HB、0113HC、

3、0115H10 下列叙述不正确的是( )。A 有符号数比较后的条件转移指令可采用B 无符号数比较后的条件转移指令可采用D 、 00FEHJG、JL、JA、JB、JGE 和 JLE 指令。 JNE 和 JBE 指令。5123C 有符号数比较后判断溢出用 JO 和 JNO 指令。D .无符号数比较后判断溢出用JS和JNS指令。42 多项选择题分支程序结构的形式有( )。A 单分支结构 B 双分支结构 C 多分支结构 在分支结构的程序中,分支程序的流程一般有()A 判断转移框 B 循环框C 产生条件框在下列的选项中,可以用来产生条件的选项有()。D 无分支结构D 分支程序段框4A 数据传送指令 B

4、算术运算指令 C 逻辑运算指令 D 转移指令 在多分支程序设计中,常用的方法有( )。D 逻辑分解法A 地址表法 B 计数法C 转移表法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寄存器中的内容为负数转移,产生条件的指令可用()。

5、C. TEST&如果用要判断A. CMPJZC. ANDJZAX , 8000HD. CMP AX , 0AX寄存器中的内容为100H则转移到P,如下的选项有(AX , 100HPAX , 100HP9设AX寄存器中的内容为有符号数 AX , 100HPB. SUB AX , 100HJEPD. XOR AX , 100HJZP如果用要判断AX寄存器中的内容小于100H则转移到P,如下的选项有(A. CMPJLC. CMPJNGEAX , 100HPB. SUB AX , 100H PJNGD . SUN AX , 100HJNAE P10.如果在TAB字单元中存放的是某程序的入口地址,要转移

6、到该程序的的选项有()A. LEA BX , TABB. MOV BX, 0JMP BXJMP TABBXC. JMP TABD. JMP DWORD PTRTAB5. 4. 3填空题1. 当两个有符号数相减后,若要判断大于等于则转、需用 、或指令。2. 在分支程序的结构中,其流程图一般由 、定向和四个部分组成。3. 转移表法分支程序设计中,其程序转移表中存放的是 4. 地址表法分支程序设计中,其地址表中存放的是 5. 逻辑分解法程序设计一般是利用多条 指令实现多分支程序设计的。6 .条件转移指令是分支程序设计中最常用的指令之一,这类指令大体上可以分为三种,它们是 条件转移,条件转移和条件转移

7、指令。7.条件转移指令的执行,是当条件 时则转移。8 .在执行条件转移指令前,必须要执行产生条件码的指令,然后才能进行条件判断转移,而一般 的数据传送指令 影响条件码(标志位)9.当两个数进行比较后,执行 指令表示结果为零转 L 10 .为了实现程序的多路分支,通常使用 、和三种方法的分支程序设计方法5. 4. 4程序分析题1.现有程序如下:DATASEGMENTXDB 0ABHFLAGDB 0DATAENDSCODESEGMENTASSUMECS: CODE, DS: DATASTART:MOVAX , DATAMOVD S, AXMOVAL , XCMPAL , 0JGELMOVFLAG

8、, 0JMPEXITL :MOVFLAG , 1EXIT :MOVAH , 4CHINT 21HCODE ENDSEND START 请回答:(1)该程序完成什么功能?( 2)程序执行完后 FLAG 中的内容是多少? 2现有程序如下:DATA SEGMENTBUFDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX , DATAMOVDS,AXMOVAH,1INT21HCMPAL , 61HJBNCMPAL , 7AHJANSUBAL ,20HN:MOVBUF,ALMOVAH ,4CHINT21HCODEENDSENDSTART请回答:(

9、1)该程序完成什么功能?(2)如果要将“ CMP AL , 7AH ”改为“ CMP AL , 7BH ”,则相应的指令 “ JA N ”应改为什么指令?3现有程序如下:DATASEGMENTADB23BDB0F0HCDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX , DATAMOVDS,AXMOVAL , ACMPAL , BJZLJGMMOVC,1JMPEXITL:MOVC,0JMPEXITM: EXIT :MOVC, 1MOVAH ,4CH请回答:(1)该程序完成什么功能?CODE ENDSEND START2)程序运行后,

10、C 中的内容是什么?4现有程序如下:DATAINT 21HXDW7000HYDW9000HDATAENDSCODESEGMENTASSUMECS:CODE,START:MOVAX , DATAMOVDS,AXMOVAX ,XSUBAX ,YJOLMOVDL ,NJMPEXITL:MOVDL ,YEXIT:MOVAH,2INT21HMOVAH , 4CHINT21HCODEENDSENDSTARTSEGMENT请回答:请程序完成什么功能?1)DS:DATA(2)程序执行完后,显示输出的结果如何?5现有程序如下:BUF1DB ABCDAC C1= BUF1BUF2DBCBUF3DW0DATAEND

11、SCODESEGMENTASSUMECS:CODESTART:MOVAX , DATAMOVDS,AXMOVES,AXLEADI,BUF1MOVCX,C1MOVAL ,BUF2CLDDATA SEGMENTDS:DATAREPNE SCASBJNZNMOVDL ,YMOVAH,2INT21HDECDIMOVBUF3 ,DIJMPEXITN:MOVDL ,NMOVAH,2INT21HEXIT :MOVAH , 4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?6现有程序如下:DATABUFDATACODESTART:2)程序运行后, BUF3 中的内容是什么?显

12、示输出是什么?SEGMENTDB23, 125,96ENDSSEGMENTASSUME CS :CODE,DS:DATAMOV AX , DATAN1:N2:N3:MOVDS,AXLEASI,BUFMOVAL ,SIMOVBL,SI+1MOVCL, SI+2CMPAL,BLJAEN1XCHGAL,BLCMPAL,CLJAEN2XCHGAL,CLCMPBL,CLJAEN3XCHGBL,CLMOVSI,ALMOVSI+1, BLMOVSI+2, CLMOVAH,4CHINT21HENDSENDSTART请回答:(1)该程序完成什么功能?CODE( 2)程序运行后 BUF 中的内容依次是什么?7现有

13、程序如下:DATAXSEGMENTDB 4FHBUFDATACODEDB2 DUP( 0)ENDSSEGMENTASSUME CS :CODE,DS:DATASTART:MOVAX , DATAMOVDS, AXMOVAL ,XMOVCL, 4SHRAL ,CLCMPAL ,9JBE LADDAL , 7L:ADD AL ,30H MOVBUF ,ALMOVAL ,XANDAL , 0FHCMPAL ,10JB M ADDAL , 7M:ADDAL ,30HMOVBUF1, ALMOVAH ,4CHINT 21HCODEENDSEND START请回答:(1)该程序完成什么功能?( 2)程序运

14、行后 BUF 中的内容依次是什么?8现有程序如下:DATAABSEGMENTDW 1234HDW 5678HSDATADB NO SWAP!ENDSCODESEGMENTASSUME CS :CODE,DS:DATASTART:MOVAX ,DATAMOVDS, AXMOV AH ,1INT 21HCMPAL ,Y JNZ MCMPAL ,yJNZ MMOV AX ,A XCHGAX ,BMOVA ,JMP NAXM:MOVAH, 9LEADX ,SINT21HN:MOVAH, 4CHINT 21HCODEENDSEND START请回答:(1)该程序完成什么功能?(2)若鍵盘输入“ Y”时,

15、 A,B 中的值各为多少?9现有程序如下:DATASEGMENTXDB 23HYDB 45HZDW 0DATAENDSCODESEGMENTASSUME CS:CODE,DS:DATASTART: MOVAX , DATAMOVDS,AXMOVAL , XCMPAL , 0JGELADDAL , YMOVAH,0ADCAH , 0MOVZ,AXJMPEXITL:SUBAL ,YMOVAH ,0SBBAH ,0EXIT :MOVAH , 4CHINT21HCODEENDSENDSTART请回答:(1)该程序计算的表达式是什么?( 2)程序运行后, Z 中的内容是什么? 10现有程序如下:DATA

16、SEGMENTBUFDB 0F3HS DB 0DATAENDSCODE SEGMENTSTART:ASSUME CS :CODE,DS:DATAMOVAX ,DATAMOVDS ,AXMOVAL ,BUFTESTAL ,80HJZLNEGALMOVS,ALMOVAH ,4CHINT21HL:CODE ENDSEND START请回答:(1)该程序完成什么功能?2)程序运行后 S 中的内容是什么?11现有程序如下:DATA SEGMENTSTRC XDATA CODEDBABCDEFGMABC =$ STR=5ENDSSEGMENTASSUME CS :CODE,DS:DATASTART: MO

17、VAX ,DATADATAXSEGMENTDB 96HMOVDS,AXMOVES,AXCLDLEASI,STRADDSI,XMOVDI,SIINCSIMOVCX,CSUBCX,XDECCXCMPCX,0JBEEXITREPMOVSBEXIT :MOVAH ,4CHINT21HCODEENDSENDSTART请回答:(1)该程序完成什么功能?(2)程序运行后 STR 中的内容是什么?12现有程序如下:Y DB 0A2HDATAENDSCODESEGMENTASSUME CS :CODE,DS:DATAMOVAX ,DATAMOVDS,AXMOVAL ,XCMPAL ,YJGLXCHG AL ,Y

18、MOVBL, ALMOVCL ,4SHRAL,CLCMPAL ,9JBEMADDAL ,7ADDAL ,30HMOVDL ,ALMOVAH ,2INT21HANDBL ,0FHCMPBL ,9JBENADDBL ,7ADDBL ,30HMOVAH ,2MOVDL ,BLINT21HMOVDL ,HMOVAH ,2INT21HMOVAH ,4CHINT21HSTART:L:M:N:CODE ENDSEND START请回答:(1)该程序完成什么功能?(2)程序运行后显示的内容是什么? 13现有程序如下:DATASEGMENTD0DBDATA0D1DBDATA1 D2DBDATA2D3DBDATA

19、3XDB02HTABDWDIS0,DIS1 , DIS2 ,DIS3DATAENDSCODE SEGMENTASSUME CS :START : MOV MOV LEA MOV ANDMOVSHLADDJMPDIS0 : LEAJMPDIS1 : LEAJMPDIS2 : LEAJMPDIS3 :LEAEXIT:MOVINTMOVINT CODE ENDSENDCODE,DS:DATA AX , DATA DS,AX BX ,TAB AL ,X AL , 3 AH,0 AX , 1 BX ,AX WORD PTRBXDX, D0 EXITDX, D1 EXITDX, D2 EXITDX, D3

20、AH, 9 21H AH, 4CH 21H请回答:(1)该程序完成什么功能?START2)程序运行后显示输出的是什么?14现有程序如下:XDB3YDB45HWDB0DATAENDSCODESEGMENTASSUME CS :CODE,DS:START:MOV AX , DATAMOVDS,AXMOVBX ,OFFSET TABMOVAL ,XMOVAH,0ANDAL , 3SHLAX , 1ADDBX ,AXJMPBXEXIT :MOVAH , 4CHINT21HTAB :JMPSHORT M0DATA SEGMENTDATAJMPSHORTM1JMPSHORTM2JMPSHORTM3M0:M

21、OVAL , YADDAL , 8MOVW, ALJMPEXITM1:MOVAL,YADDAL , 16MOVW, ALJMPEXITM2:MOVAL,YMOVW, ALJMPEXITM3:MOVW, 100JMPEXITCODEENDSENDSTART请回答:(1)该程序完成什么功能?( 2)程序运行后 W 中的内容是什么? 15,现有程序如下:DATA SEGMENTWDB?XDB25Y DW 0 DATAENDSCODESEGMENTASSUME CS :CODE,DS:DATASTART:MOV AX ,DATAMOV MOV MOV CMP JZCMP JZCMP JZMOVMULJ

22、MPDS,AX AL ,X BL,W BL,0 L1 BL,1 L2 BL,2 L3BL ,AL AL EXITL1:ADDAL , 100L:MOVAH ,0ADCAH ,0JMP EXITL2:ADDAL , 200JMPLL3 :SUBAL , 100MOVAH , 0SBBAH , 0EXIT :MOVY, AXINT21HCODEENDSENDSTART请回答:(1)该程序兀成什么功冃匕?(2)若W中的内容为5,程序运行后Y中的内容是多少?5. 4. 5程序填空题。1 下列程序是判断BUF字缓冲区中有符号数的大小,当其数值大于一100时,就将FLAG字节单元清0,否则就将其置1。请在

23、程序的空格处填上适当的指令。MOV AX , BUF(1)(2)MOV FLAG , 0(3L:MOV FLAG , 1M :MOV AH , 4CHINT 21H2 下列程序是判断X和Y有符号字数据的大小,当 X中的数据大于Y中的数据时,就将Z置1,当X中的数据小于Y中的数据时就将Z送一1,否则将Z清0,请在程序的空格处填上适当的 指令。MOVAX ,(1)X(2)JGMMOVZ,-1JMPEXITL :MOVZ,0JMPEXITM :(3EXIT :MOVAH , 4CHINT21H3 下列程序是判断两个无符号字数据 X、Y的大小,当XY时执行X Y,当XVY时执行Y X,当X=Y时执行X

24、+Y,其运算后的结果存放在 W中。请在程序的空格处填上适当的指令。MOVMOVCMPAX , XBX , YAX , BX(1)JBADDMAX , BX(2)L :(3)JMPEXITM :XCHG AX , BXSUB AX , BXEXIT : MOV W, AXMOV AH , 4CHINT 21H4 设X、Y是双精度32位无符号数变量,下列程序是完成2个数大小的判断,当 X大于Y时,将字节变量F置1,否则将字节变量F清0,请在程序的空格处填上适当的指令。MOV AX,X + 2MOVBX ,XCMPAX ,Y + 2JBL1(1)CMPBX ,Y(2)L1 :(3)JMP EXITL

25、2:MOV F, 1EXIT : MOV AH , 4CHINT 21H5 下列程序是将BUF字节缓冲区中的两位十六进制数转换成两位十六进制数ASCII码,并将转换结果存放在Y单元中的程序。请在程序的空白处填上的适当的指令。MOV AL , BUF则将其数字的ASCII码送BUF;若为字母, 请在程序的空格处填上适当的指令。(1)SHRAL , CL(2)JBEADDLAL , 7L :ADDAL , 30HMOVY, ALMOVAL , BUF(3)CMPAL , 10(4)ADDAL , 7M :ADDAL , 30HMOVY + 1, ALMOVAH , 4CHINT21H6下列程序是判

26、断键盘输入字符,若输入字符为数字,则将其对应的大写字母送 BUF ;否则将0送BUF ,MOV AH , 1INT 21HCMP AL , 30H(1)CMP AL , 39H(2CMPAL , 41HJBMCMPAL , 5BH(3)CMPAL , 61HJBMCMPAL , 7AH(4)SUBAL , 20HL :MOVBUF, ALJMPEXITM :MOVAL , 0MOVBUF, ALEXIT : MOV AH , 4CHINT 21H7 下列程序是判断两个有符号字数据 X、Y,当两数都为正数时,则 2送W;当两数都为负数时, 则执行一2送W ;当两数异号时,贝V 0送W,请在程序的

27、空格处填上适当的指令。MOVAX , XMOVBX , YTESTAX , 8000H(1)TESTBX , 8000HJZLP:MOVW , 0JMPEXITL :MOVW ,2JMPEXITM :TESTBX,(2)8000H(3)EXITMOVAH,4CHINT21H8 下列程序是比较字符串 STR1和STR2中第一个不相等的字符,若查找到,则将FLAG字节单元置1,并将查找的字符串 STR1的偏移地址送ADR字单元,否则FLAG清0,请在程序的空 格处填上适当的指令。LEA SI, STR1(1)MOVCX , 100CLD(2)(3)MOVFLAG , 0JMPEXITMOVFLAG

28、 , 1(4)MOV ADR , SIEXIT : MOV AH , 4CHINT 21H9 下列程序是根据键盘输入的不同进行相应的处理。当输入为Y 或y 时,则将 BUF1中100个字节的内容传送给 BUF2,当输入 N 或n 时,则将 BUF2中100个字节的内容传 送给BUF1,否则直接退出。请在程序的空格处填上适当的指令。MOVAH , 1INT21HCMPAL, YJZL(1)JZLCMPAL , NJNZMCMPAL , nJNZMJMPEXITL:LEA SI, BUF1(2)MOVCX , 100CLDREPMOVSBJMPEXITM :LEASI, BUF2 + 99LEAD

29、I, BUF1 + 99MOVCX , 100(3)REPMOVSBEXIT :MOVAH , 4CHINT21H10下列程序是X和Y两个压缩BCD相加,如果相加结果超时 100,则显示OVER字符串中的内容,否则,将相加结果送 W ,并显示P字符串中的内容中,请在程序的空格处填上适当的指令。MOVADDAL , XAL ,(1)Y(2)MOVW,ALLEADX,PJMPEXITL :LEADX ,OVEREXIT : MOV AH , 9(3)MOV AH , 4CHINT 21H5 4 6程序设计题1 编写一程序,从键盘输入一字符,若输入的字符为Y (或y),则将字变量A和B中的16位无符

30、号数相乘,其结果存放在 F字单元中,否则将执行 A/B的运算,其结果的商存在 F,余数存放在 F2 中。 2编写一程序,判断 X 字节变量中的三个数,根据比较结果 FLAG 字节变量置 1:( 1)若三个数都为 0,则 FLAG 送 3( 2)若两个数为 0 则 FLAG 送 2( 3)若一个数为 0 则 FLAG 送 1(4)若全不为0则FLAG送03设 X 为有符号数的字变量,编写一程序,若 X 的绝对值大于 10,则将其绝对值送 Y ,否则 将 X 10 的值送 Y。4编写一程序,判断 X 、Y 字节变量中的数据,根据判断结果置FLAG 字节变量。( 1)若两个数都为奇数,则将 FLAG

31、 送 2( 2)若两个数都为偶数,则将 FLAG 清 0( 3)若两个数为一奇一偶,则将 FLAG 清 1 5编写一程序,统计 X 字节变量中为 1 的位数,并将统计的结果显示出来。 6编写一程序,将字符串缓冲区 BUF 中的小写字母变换成大写字母。 7编写一程序,将 BUF 缓冲的 2 位十六进制数转换成二进制数显示输出。 8编写一程序,将 X 变量中的 16 位二进制数转换成十六进制数显示输出。 9用地址表法编写一程序,根据键盘输入数值分别显示输出对应字符串:( 1)输入 0 时,显示 “INPUT 0! ”( 2)输入 1 时,显示 “INPUT 1! ”( 3)输入 2 时,显示 “I

32、NPUT 2! ” ( 4)其它输入时,显示 “INPUT ERROR! ” 10编写一程序,将 BUF 字节缓冲区中的 100 字节按相反方向存放到 BUF1 中。 11编写一程序,用串比较指令,比较 STR1 和 STR2 字符串,若两个字符串完全相等,则显示输出 0K !若不相等,则显示输出 ERROR!和STR1中第一个不相等的字符。 12编写一程序,比较两个有符号字变量X 和 Y 。( 1 )若两个数都大于等于 100,则将两个数分加 1 。 ( 2)若两个数都不大于等于 100,则将两个数分别减 1 。( 3)若两个数一个大于等于 100,另一个数不大于等于 100,则将两数互换。13假定 A、B、C 字节变量中存放的是三个相等的数据,但由于某种原因使其中的一个数据发 生变化,试编写一程序找出三个数中变化的代码存放在 D 中,并将变化的代码单元恢复成 原来的数据。14编写一程序,将 A和B中的两位压缩BCD码相加,并将相加的结果用十进制显示输出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1