《第五章分支程序设计 .docx》由会员分享,可在线阅读,更多相关《第五章分支程序设计 .docx(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结第五章 分支程序设计练习题5.4.1 1 单项挑选题1双分支程序设计中实现分支的指令是()指令。A条件转移B无条件转移C移位D算术运算2 条件判定转移是依据标志寄存器中的标志位来判定的,用来实现条件判定转移标志位共有( )位。A4B 5C 6D 9 3条件转移指令的转移范畴是()。A 0 65535B 32768 32767C 0 255D 1281274用一条条件转移指令一次可实现()个分支。A2B 3C 4D多 5以下指令会影响标志位的指令是()。AJMPLB JCLC MOV AL ,LD SHLAL ,16当两个无符号数进行相加时,执行“JCL”指令表示()转移。A结果
2、溢出B结果为 0C结果为奇D结果为负 7当两个无符号数进行比较时,执行“JAL ”指令表示()转移。ACF 0 且 ZF 0B CF 0 且 ZF 1C CF 1 且 ZF 0D CF1 且 ZF18当“ CMPAX ,BX ”比较时,执行 “ JGL”指令后转移列 L,就说明()。AAX BXB AX BXC AX BX D AX BX9 假如0100H 单元存放条件转移指令的操作码,0101H 单元存放条件转移指令的相对位移量13H,那么转移后的指令的偏移的址为()。A、0102HB 、0113HC、0115HD、00FEH10以下表达不正确选项()。A 有符号数比较后的条件转移指令可采纳
3、 JG、JL、JGE 和 JLE 指令。B无符号数比较后的条件转移指令可采纳 JA、JB、JNE 和 JBE 指令。C有符号数比较后判定溢出用 JO 和 JNO 指令。D无符号数比较后判定溢出用 JS 和 JNS指令。5.4.2 2 多项挑选题1分支程序结构的形式有( )。A单分支结构 B双分支结构C多分支结构D无分支结构2在分支结构的程序中,分支程序的流程一般有()。A判定转移框B循环框C产生条件框D分支程序段框3在以下的选项中,可以用来产生条件的选项有()。A数据传送指令 B算术运算指令C规律运算指令 D转移指令4. 在多分支程序设计中,常用的方法有()。A的址表法B计数法C转移表法D规律
4、分解法5. 执行完指令“ CMPAX , 100”后,假如要实现 AX 寄存器中的无符号数高于100 就转移到 L , 应当使用的指令有()。AJNSLB JNC LC JALD JNBE L6. 执行完指令“ CMPAX , 0”后,假如要实现 AX 寄存器中的内容为正数就转移到L ,应当使用的指令有()。AJAELB JGELCJNS LD JNCL7假如用“JS P”指令实现AX寄存器中的内容为负数转移,产生条件的指令可用()。AANDAX ,8000HB CMPAX , 8000H可编辑资料 - - - 欢迎下载精品名师归纳总结CTESTAX , 8000HD CMPAX , 08.
5、假如用要判定 AX 寄存器中的内容为 100H 就转移到 P,如下的选项有()。ACMPAX , 100HB SUBAX , 100H JZPJEPCANDAX , 100HD XORAX , 100H JZPJZP9. 设 AX 寄存器中的内容为有符号数,假如用要判定AX 寄存器中的内容小于100H 就转移到P,如下的选项有()。ACMPAX , 100HB SUBAX , 100HJLPJNGPCCMPJNGEAX ,100HPD SUNJNAEPAX ,100H10. 假如在 TAB 字单元中存放的是某程序的入口的址,要转移到该程序的的选项有()。ALEA BX ,TABB MOVBX
6、, 0 JMPBXJMPTABBXCJMPTABD JMPDWORD PTRTAB5.4.3 3 填空题1当两个有符号数相减后,如要判定大于等于就转、需用、或指令。2在分支程序的结构中,其流程图一般由、定向和四个部分组成。 3转移表法分支程序设计中,其程序转移表中存放的是。 4的址表法分支程序设计中,其的址表中存放的是。 5规律分解法程序设计一般是利用多条指令实现多分支程序设计的。6. 条件转移指令是分支程序设计中最常用的指令之一,这类指令大体上可以分为三种,它们是条件转移,条件转移和条件转移指令。7. 条件转移指令的执行,是当条件时就转移。8. 在执行条件转移指令前,必需要执行产生条件码的指
7、令,然后才能进行条件判定转移,而一般的数据传送指令影响条件码(标志位)。 9当两个数进行比较后,执行指令表示结果为零转L 。10为了实现程序的多路分支,通常使用、和三种方法的分支程序设计方法。5.4.4 4 程序分析题1. 现有程序如下:DA TASEGMENTXDB0ABHFLAGDB0DA TAENDS CODESEGMENTASSUMECS : CODE, DS: DATASTART:MOVAX ,DA TAMOVDS , AX MOVAL , XCMPAL , 0 JGELMOVFLAG ,0 JMPEXITL:MOVFLAG , 1 EXIT :MOVAH ,4CH可编辑资料 - -
8、 - 欢迎下载精品名师归纳总结INT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?(2)程序执行完后 FLAG 中的内容是多少?2. 现有程序如下:DA TASEGMENTBUFDB0DA TAENDS CODESEGMENTASSUMECS :CODE , DS:DATA START:MOVAX , DATAMOVDS ,AX MOVAH ,1 INT21HCMPAL , 61H JBNCMPAL , 7AH JANSUBAL ,20H N:MOVBUF , ALMOVAH ,4CH INT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?
9、( 2)假如要将“ CMPAL , 7AH ”改为“ CMPAL ,7BH ”,就相应的指令“ JAN ”应改为什么指令?3. 现有程序如下:DA TASEGMENTADB23BDB0F0HCDB0DA TAENDSCODESEGMENTASSUMECS :CODE , DS:DATA START:MOVAX , DATAMOVDS ,AX MOVAL ,A CMPAL , B JZLJGMMOVC , 1 JMPEXITL :MOVC ,0 JMPEXIT可编辑资料 - - - 欢迎下载精品名师归纳总结M:MOVC ,1EXIT :MOVAH , 4CHCODEINT ENDSEND21HS
10、TART请回答:( 1)该程序完成什么功能?( 2)程序运行后, C 中的内容是什么? 4现有程序如下:DA TASEGMENTX DW7000HY DW9000HDA TAENDSCODESEGMENTASSUMECS :CODE , DS:DATA START:MOVAX , DATAMOVDS , AXMOV AX ,X SUB AX ,Y JO LMOV DL , N JMP EXITL :MOVDL , YEXIT :MOVAH , 2 INT21HMOVAH ,4CH INT21HCODEENDSENDSTART请回答:( 1)请程序完成什么功能?( 2)程序执行完后,显示输出的结
11、果如何? 5现有程序如下:DA TASEGMENTBUF1DB ABCDAC C1 BUF1BUF2DBCBUF3DW0DA TAENDSCODESEGMENTASSUMECS :CODE , DS:DATA START:MOVAX , DATAMOVDS , AX MOVES , AX LEADI , BUF1 MOVCX , C1 MOVAL , BUF2 CLD可编辑资料 - - - 欢迎下载精品名师归纳总结REPNESCASB JNZNMOVDL , Y MOV AH ,2 INT 21HDECDIMOVBUF3 ,DIJMPEXITN:MOVDL , NMOVAH , 2INT21H
12、EXIT :MOVAH ,4CHINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后, BUF3 中的内容是什么?显示输出是什么?6. 现有程序如下:DA TASEGMENTBUFDB23 , 125,96DA TAENDSCODESEGMENTASSUME CS :CODE , DS:DATA START:MOVAX , DATAMOVDS ,AX LEASI ,BUFMOVAL , SI MOVBL , SI+1 MOVCL, SI+2 CMPAL,BLJAEN1 XCHG AL,BLN1:CMPAL,CL JAEN2 XCHG AL,CLN2
13、:CMPBL,CL JAEN3 XCHG BL,CLN3:MOVSI,AL MOVSI+1,BL MOVSI+2,CL MOVAH,4CH INT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?可编辑资料 - - - 欢迎下载精品名师归纳总结( 2)程序运行后 BUF 中的内容依次是什么?7. 现有程序如下:DA TASEGMENT XDB4FHBUFDB2 DUP ( 0)DA TAENDS CODESEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX , DATA MOVDS , AXMOVAL , XMOVCL , 4SHRAL
14、 , CLCMPAL , 9JBELADDAL , 7L: ADD AL ,30H MOV BUF , AL MOV AL , XANDAL , 0FHCMPAL , 10JBMADDAL , 7M :ADDAL , 30H MOVBUF 1, AL MOVAH , 4CH INT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后 BUF 中的内容依次是什么?8. 现有程序如下:DA TASEGMENTA DW1234HB DW5678HSDBNOSWAP !DA TAENDSCODESEGMENTASSUME CS :CODE , DS:DATAST
15、ART:MOVAX ,DA TA MOVDS ,AXMOVAH ,1 INT21HCMPAL , Y JNZMCMPAL , y可编辑资料 - - - 欢迎下载精品名师归纳总结JNZ MMOV AX ,A XCHG AX ,B MOV A ,AX JMP NM :MOVAH , 9LEADX , SINT21HN:MOVAH ,4CHINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)如鍵盘输入“ Y”时, A ,B 中的值各为多少?9. 现有程序如下:DATASEGMENTXDB23HYDB45HZDW0DATAENDSCODESEGMENTASSUME
16、CS : CODE , DS:DATASTART:MOVAX , DATA MOVDS , AXMOVAL , XCMPAL , 0 JGE LADDAL ,YMOVAH ,0ADCAH ,0MOVZ , AXJMPEXIT L :SUBAL ,YMOVAH , 0SBBAH , 0 EXIT :MOVAH ,4CHINT21HCODEENDSENDSTART请回答:( 1)该程序运算的表达式是什么?( 2)程序运行后, Z 中的内容是什么?10. 现有程序如下:DA TASEGMENTBUFDB0F3HSDB0DA TAENDS可编辑资料 - - - 欢迎下载精品名师归纳总结CODE SEG
17、MENTASSUME CS :CODE , DS: DATASTART: MOV AX , DA TA MOV DS ,AXMOV AL ,BUF TEST AL , 80H JZLNEG ALL: MOV S , ALMOV AH , 4CH INT 21HCODE ENDSEND START请回答:( 1)该程序完成什么功能?( 2)程序运行后 S 中的内容是什么? 11现有程序如下:DA TASEGMENTSTRDBABCDEFGMABCC STRX5DA TAENDSCODESEGMENTASSUME CS : CODE ,DS: DATASTART:MOVAX , DA TA MOV
18、DS ,AXMOVES , AXCLDLEASI , STRADDSI , XMOVDI , SIINCSIMOVCX , CSUBCX , XDECCXCMPCX , 0JBEEXITREPMOVSBEXIT :MOVAH, 4CHINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后 STR 中的内容是什么? 12现有程序如下:DA TASEGMENT XDB96H可编辑资料 - - - 欢迎下载精品名师归纳总结YDB0A2H DA TAENDSCODESEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX , D
19、ATA MOVDS ,AXMOVAL , XCMPAL , YJGLXCHGAL ,Y L :MOVBL ,ALMOVCL , 4SHRAL , CLCMPAL , 9JBEMADDAL ,7 M :ADDAL ,30HMOVDL , ALMOVAH ,2INT21HANDBL ,0FHCMPBL , 9JBENADDBL ,7 N:ADDBL , 30HMOVAH ,2MOVDL , BLINT21HMOVDL , H MOVAH ,2INT21HMOVAH ,4CH INT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后显示的内容是什么? 13现
20、有程序如下:DA TASEGMENTD0DBDA TA 0D1DBDA TA1D2DBDA TA 2D3DBDA TA 3XDB02HTABDWDIS0 ,DIS1 , DIS2 , DIS3 DA TAENDS可编辑资料 - - - 欢迎下载精品名师归纳总结CODESEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX , DATA MOVDS , AXLEABX , TABMOVAL , XANDAL , 3MOVAH , 0SHLAX ,1ADDBX , AXJMPWORD PTRBXDIS0:LEADX,D0 JMPEXITDIS1:LEADX,D1JM
21、PEXIT DIS2:LEADX,D2JMPEXIT DIS3:LEADX,D3 EXIT:MOVAH,9INT21HMOVAH,4CHINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后显示输出的是什么? 14现有程序如下:DA TASEGMENTX DB3Y DB45HWDB0DA TAENDSCODESEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX , DATA MOVDS , AXMOVBX , OFFSET TABMOVAL , XMOVAH , 0ANDAL , 3SHLAX ,1ADDBX , A
22、XJMPBXEXIT :MOVAH ,4CHINT21HTAB :JMPSHORT M0可编辑资料 - - - 欢迎下载精品名师归纳总结JMPSHORTM1JMPSHORTM2JMPSHORTM3 M0 :MOVAL , YADDAL , 8MOVW , ALJMPEXIT M1 :MOVAL ,YADDAL , 16MOVW , ALJMPEXIT M2 :MOVAL ,YMOVW , ALJMPEXIT M3 :MOVW , 100JMPEXITCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)程序运行后 W 中的内容是什么?15,现有程序如下:DA TASEGM
23、ENTW DB?X DB25Y DW0DA TAENDSCODESEGMENTASSUME CS :CODE , DS:DATASTART:MOVAX , DATA MOVDS , AXMOVAL , XMOVBL , WCMPBL ,0JZL1CMPBL ,1JZL2CMPBL ,2JZL3MOVBL , ALMULALJMPEXITL1 :ADDAL , 100L:MOVAH , 0 ADCAH , 0JMPEXITL2 :ADDAL , 200可编辑资料 - - - 欢迎下载精品名师归纳总结JMPLL3:SUBAL ,100MOVAH , 0SBBAH , 0EXIT :MOVY , A
24、XINT21HCODEENDSENDSTART请回答:( 1)该程序完成什么功能?( 2)如 W 中的内容为 5,程序运行后Y 中的内容是多少?5.4.5 5 程序填空题。1以下程序是判定 BUF 字缓冲区中有符号数的大小,当其数值大于100 时,就将 FLAG 字节单元清 0,否就就将其置 1。请在程序的空格处填上适当的指令。MOVAX , BUF( 1)( 2)MOVFLAG , 0( 3L :MOVFLAG , 1M:MOVAH , 4CH INT21H2. 以下程序是判定X 和 Y 有符号字数据的大小,当X 中的数据大于 Y 中的数据时,就将Z 置1,当 X 中的数据小于 Y 中的数据
25、时就将 Z 送 1,否就将 Z 清 0,请在程序的空格处填上适当的指令。MOVAX , X( 1)( 2)JGMMOVZ , 1JMPEXITL :MOVZ , 0JMPEXITM :(3)EXIT :MOVAH , 4CHINT21H3. 以下程序是判定两个无符号字数据X 、Y 的大小,当 X Y 时执行 X Y ,当 X Y 时执行 YX ,当 X Y 时执行 X Y,其运算后的结果存放在W 中。请在程序的空格处填上适当的指令。MOVAX , XMOVBX , YCMPAX ,BX(1)JBMADDAX , BX( 2)L :(3)可编辑资料 - - - 欢迎下载精品名师归纳总结JMPEX
26、ITM :XCHGAX ,BXSUBAX ,BX EXIT : MOVW , AXMOVAH , 4CH INT21H4. 设 X 、Y 是双精度 32 位无符号数变量,以下程序是完成2 个数大小的判定,当 X 大于 Y 时, 将字节变量 F 置 1,否就将字节变量 F 清 0,请在程序的空格处填上适当的指令。MOVAX , X 2MOVBX , XCMPAX ,Y 2JBL1( 1)CMPBX ,YL1 :( 2)( 3)JMPEXITL2 :MOVF , 1EXIT :MOVAH , 4CHINT21H5. 以下程序是将 BUF 字节缓冲区中的两位十六进制数转换成两位十六进制数ASCII
27、码,并将转换结果存放在 Y 单元中的程序。请在程序的空白处填上的适当的指令。MOVAL , BUF( 1)SHRAL ,CL( 2)JBELADDAL , 7L :ADDAL , 30HMOVY ,AL MOVAL , BUF( 3)CMPAL ,10( 4)ADDAL , 7 M :ADDAL , 30HMOVY 1,ALMOVAH , 4CH INT21H6. 以下程序是判定键盘输入字符,如输入字符为数字,就将其数字的ASCII码送 BUF 。如为字母,就将其对应的大写字母送BUF 。否就将 0 送 BUF ,请在程序的空格处填上适当的指令。MOVAH , 1INT21HCMPAL ,30
28、H(1)CMPAL ,39H可编辑资料 - - - 欢迎下载精品名师归纳总结(2)CMPAL ,41HJBMCMPAL ,5BH(3)CMPAL ,61HJBMCMPAL ,7AH(4)SUBAL ,20HL :MOVBUF , AL JMPEXITM :MOVAL , 0 MOVBUF , ALEXIT : MOVAH , 4CH INT21H7以下程序是判定两个有符号字数据X 、Y ,当两数都为正数时,就2 送 W。当两数都为负数时,就执行 2 送 W。当两数异号时,就 0 送 W,请在程序的空格处填上适当的指令。MOVAX , XMOVBX , Y TESTAX , 8000H(1) T
29、ESTBX , 8000H JZLP:MOVW , 0 JMPEXITL :MOVW , 2 JMPEXITM :TESTBX , 8000H(2)(3)EXIT : MOVAH , 4CH INT21H8以下程序是比较字符串STR1 和 STR2 中第一个不相等的字符,如查找到,就将FLAG 字节单元置 1,并将查找的字符串STR1 的偏移的址送 ADR 字单元,否就 FLAG 清 0,请在程序的空格处填上适当的指令。LEASI , STR1(1)MOVCX , 100 CLD(2)(3)MOVFLAG , 0 JMPEXITL:MOVFLAG ,1( 4)可编辑资料 - - - 欢迎下载精
30、品名师归纳总结MOVADR, SIEXIT : MOVAH ,4CH INT21H9以下程序是依据键盘输入的不同进行相应的处理。当输入为Y 或时,就将BUF1 中100 个字节的内容传送给BUF2 ,当输入 N或时,就将BUF2 中 100 个字节的内容传送给 BUF1 ,否就直接退出。请在程序的空格处填上适当的指令。MOVAH , 1INT21HCMPAL , Y JZL(1)JZLCMPAL , N JNZMCMPAL , n JNZMJMPEXITL:LEASI , BUF1(2)MOVCX , 100 CLDREPMOVSBJMPEXITM :LEASI ,BUF2 99 LEADI
31、, BUF1 99MOVCX , 100( 3)REPMOVSBEXIT : MOVAH , 4CH INT21H10以下程序是X 和 Y 两个压缩 BCD 相加,假如相加结果超时100,就显示 OVER 字符串中的内容,否就,将相加结果送W,并显示 P 字符串中的内容中,请在程序的空格处填上适当的指令。MOVAL , XADDAL, Y( 1)( 2)MOVW,ALLEADX, PJMPEXIT L:LEADX , OVEREXIT : MOVAH ,9( 3)MOVAH , 4CH INT21H5 4 6 程序设计题可编辑资料 - - - 欢迎下载精品名师归纳总结1. 编写一程序,从键盘输
32、入一字符,如输入的字符为Y (或 y),就将字变量 A 和 B 中的 16 位无符号数相乘,其结果存放在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. 编写一程序,判定
33、 X 、Y 字节变量中的数据,依据判定结果置FLAG 字节变量。(1) )如两个数都为奇数,就将FLAG 送 2(2) )如两个数都为偶数,就将FLAG 清 0(3) )如两个数为一奇一偶,就将FLAG 清 15. 编写一程序,统计 X 字节变量中为 1 的位数,并将统计的结果显示出来。6. 编写一程序,将字符串缓冲区BUF 中的小写字母变换成大写字母。7. 编写一程序,将 BUF 缓冲的 2 位十六进制数转换成二进制数显示输出。8. 编写一程序,将 X 变量中的 16 位二进制数转换成十六进制数显示输出。9. 用的址表法编写一程序,依据键盘输入数值分别显示输出对应字符串:(1) )输入 0
34、时,显示 “INPUT0!”(2) )输入 1 时,显示 “INPUT1!”(3) )输入 2 时,显示 “INPUT2!”(4) )其它输入时,显示“INPUTERROR! ”10. 编写一程序,将 BUF 字节缓冲区中的 100 字节按相反方向存放到BUF1 中。11. 编写一程序,用串比较指令,比较STR1 和 STR2 字符串,如两个字符串完全相等,就显示输出 OK !,如不相等,就显示输出ERROR !和STR1 中第一个不相等的字符。12. 编写一程序,比较两个有符号字变量X 和 Y 。(1) )如两个数都大于等于100,就将两个数分加 1。(2) )如两个数都不大于等于100,就将两个数分别减 1。(3) )如两个数一个大于等于100,另一个数不大于等于100,就将两数互换。 13假定 A 、B、C 字节变量中存放的是三个相等的数据,但由于某种缘由使其中的一个数据发生变化,试编写一程序找出三个数中变化的代码存放在D 中,并将变化的代码单元复原成原先的数据。14编写一程序,将 A 和 B 中的两位压缩 BCD 码相加,并将相加的结果用十进制显示输出。可编辑资料 - - - 欢迎下载