1、汇编复习题及答案重点讲义资料一、单项选择题(本大题共20小题,每小题1分,共20分)*1设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( )A. C+D=B B. A+D=BC. B=D D. ACD*2标志寄存器中属于控制标志位的是( )A.DF,OF,SF B.DF,IF,TFC.OF,CF,PF D.AF,OF,SF38088/8086存储器分段,每个段不超过( )A.64K个字 B.32K个字节C.1兆个字节 D.64K个字节4设AL中已有压缩型BCD码,为实现对AL的减1操作,可选用的指令序列是( )A.DEC AL B.SBB AL,0 AAS DASC.
2、SUB AL,1 D.SUB AL,1 AAS DAS *5要输入端口1234H中的8位数据,其指令应是( )A.MOV DX,1234H B.MOV DX,1234H OUT DX,AL 1N AL,DXC.1N AX,1234H D.OUT DX,1234H6若AX=-15要得到AX=15应执行的指令是( )A.NEG AX B.NOT AXC.INC AX D.DEC AX*78086/8088系统执行传送指令MOV时( )A.不影响标志位 B.影响DF方向标志C.影响SF符号标志 D.影响CF进位标志*8MOV AL,79ADD AL,0B1H上面指令执行后,设置的标志位CF和OF的值
3、是( )A.CF=0,OF=1 B.CF=1,OF=1C.CF=0,OF=0 D.CF=1,OF=09已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是( )A.DIV BX B.CWD IDIV BXC.XOR DX,DX D.CBW DIV BX IDIV BX*10下列指令中操作数在代码段中的是( )A.MOV AL,42H B.ADD AL,BLC.SUB BX,DI D.1NC DI*11用REPE SCASB指令对字符串进行扫描,如CX0时,扫描结束,那么表示( )A.在字符串中遇上第一个AL中指定的字符B.在字符串中有一个AL中指定的字符C.在字符串中有一个
4、不是AL中指定的字符D.在字符串中遇上第一个不是AL中指令的字符12下列指令执行后对源和目的操作数均无影响的是( )A.MOV BX+2,AX B.SUB AX,2467HC.SBB SI,BX D.CMP AX,BX13表示过程定义结束的伪指令是( )A.ENDP B.ENDSC.END D.ENDM 14下列有语法错误的语句是( )A.DB 12H B.DW 4567HC.DD BCD D.DB CD15DB1 DB 8 DUP(2 DUP(3),3 DUP(2) MOV AX,WORD PTR DB1 04H 上面指令执行后,AX的内容是( )A.0302H B.0203HC.0202H
5、 D.0303H16BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $ -BUF1 符号COUNT等价的值是( )A.6 B.18C.16 D.817DA1 DW 2A05H DA2 DB 0FAH MOV AL,BYTE PTR DA1SUB DA2,AL 上述指令执行后,DA2中的内容是( )A.0DAH B.0FAHC.0F5H D.0D0H 18设(SS)=338AH,(SP)=450H,执行PUSH BX,和PUSHF两条指令后,堆栈顶部的物理地址是( )A.33CECH B.33CF2HC.33CF4H D.33CE8H 19设(SP)=0028H
6、,执行段内返回指令RET 6后,SP的内容是( )A.0036H B.0022HC.0030H D.0020H20条件转移指令JNBE产生转移的条件是( )A. CF=0 AND ZF=0 B. CF=0 AND ZF=1C. CF=1 AND ZF=0 D. CF=1 AND ZF=121.与MOV BX,0FFSET VAR指令完全等效的指令是( )。 MOV BX,VAR LDS BX,VAR LES BX,VAR LEA BX,VAR22.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是( ). WORD PAGE BYTE PARA23.在汇编语言程序的开发过程中使
7、用宏功能的顺序是( )。 宏定义,宏调用 宏定义,宏展开 宏定义,宏调用,宏展开 宏定义,宏展开,宏调用24.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省 略的项是( )。 名字项 操作项 操作数项 注释项13. MOV SP,3210H PUSH AX 执行上述指令序列后,SP寄存器的值是( )。 3211H 320EH 320FH 3212H25.BUF DW 10H DUP(3 DUP(2,10H),3,5) 上述语句汇编后,为变量BUF分配的存储单元字节数是( )。 80H 100H 124 192二、简答题(本大题共3小题,每小题2分,共6分)1假设
8、DS=2000H,COUNT=0100H,SI=0030H,指令MOV AX,COUNTST 写出源操作数的物理地址?该指令可否写成MOV AX,COUNT+SI?2下面指令有无错误?若有错,是什么错误?MOV AX,SIDICMP SI,BX3条件转移指令的判断条件除标志位PF外还有哪几个标志位?三、程序分析题(每小题6分,共36分)l.已知 AX=0FF60H,CF=1 MOV DX,96 XOR DH,0FFH SBB AX,DX 执行上述指令序列后,AX= ,CF 2.设寄存器AL,BL,CL中内容均为76H, XOR AL,0FH AND BL,0FH OR CL,0FH执行上述指令
9、序列后,AL= BL= CL= 3.已知AX=0A33AH,DX=0F0F0H AND AH,DL XOR AL,DH NEC AH NOT AL执行上述指令序列后,AH= ,AL= 4. DATA SEGMENT S9 DB 0,1,2,3,4,5,6,7,8,9 DATA ENDS : LEA SI,S9 LEA, DI,S9+1 MOV CX,5LOP: MOV AL,SI XCHC AL,DI MOV SI,AL ADD SI,2 ADD DI,2 LOOP LOP上述程序段运行后,S9开始的10个字节存储单元内容是什么?5. MOV AL,38H MOV BL,49H CALL SU
10、B0 INC AL DEC CL . SUB0 PROC ADD AL,BL MOV CL,AL DAA RETSUB0 ENDP上述程序段运行后,AL= CL= 6ADR DW 1234H,5678HLEA SI,ADRLDS BX,ADR设变量ADR的偏移地址是100H,上述两条指令执行后:SI= ,BX= 。7已知DS和ES指向同一个段,且当前数据段从0000H到00FFH单元内容分别为01,02,03,0FF,00H。问下列程序段执行后,00000009H的内容是些什么值。MOV SI,0000HMOV DI,0001HMOV CX,0080HCLDREP MOVSW8STR1 DB
11、COMPUTERNDPASCAL SCA DB N LEA DI,STR1MOV AL,SCAMOV CX,10HCLDREPNE SCASBNEXT:程序运行到NEXT时CX= ZF= 9已知AX=0FFFFH,DX=0001HMOV CX,2LOP:SHL AX,1RCL DX,1LOOP LOP上述程序段执行后,DX= AX= 10已知DX=0A476H,CX=0302H,CF=1 OR DX,DX RCR DX,CL XCHG CH,CL RCL DX,CL上述程序段执行后,DX= CF= 11MOV AX,10SHL AX,1SHL AX,1MOV BX,AXMOV CL,2SHL
12、AX,CLADD AX,BX上述程序段执行后,BX= AX= 12已知AX=78H,BX=0804HSHR BX,1AND BX,0F0FHMOV CX,4LOP:XCHG BH,BLDIV BLSAL AX,1LOOP LOP上述程序段执行后,AX= BX= 四.改错. 阅读下列数据传送程序段,改正使用不当的语句 A DB 35,47,2AH,XYZ B DB N DUP(0) N EQU $-A MOV SI, A MOV DI, B MOV CX, LENGTH ALP: MOV AX, SI MOV DI, AX INC SI INC DI DEC CX LOOP LP五.程序填空题(
13、每空3分,共18分)1.下面是程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置全1.试把空白处填上适当指令. AND AH , 08H MOV AH , 0FFH JMP NEXT ZERO: MOV AH, 0 NEXT : .2.有一个首址为A的字数组,完成从大到小的排序.DATAREA SEGMENT A DW N DUP(?)DATAREA ENDSPROGRAM SEGMENT MAIN PROC FAR START : PUSH DS SUB AX, AX PUSH AX MOV DS ,AX MOV CX , N LOOP1: MOV DI ,CX MO
14、V BX ,0 LOOP2: MOV AX ,ABX CMP JGE CONTINE XCHG AX , MOV ABX , AXCONTINE: ADD BX LOOP LOOP2 LOOP LOOP1 RET MAIN ENDP END START3.该程序段的功能是求出存放在DX、AX中的双精度数的绝对值,并将结果保存在A和A2单元中,请在空白处填写指令。 1 JNS RESULTNOT AXNOT DXINC AX2 RESULT: MOV A , AX MOV A+2 , DX4 下面程序执行后,AL的内容为ARRAY数组中的最小数,请在空白处各填上一条指令。ARRAY DB 3,5
15、,-3,-2,4,5,-8,6 MOV CX,7MOV DI,0MOV AL,ARRAYA1: INC DIJLE A2MOV AL,ARRAY DIA2 5下面程序段是判断两个存储单元是否同为正数,如是,则AX置全0,否则AX置非0。试在空白处各填上适当的一条条件转移指令(两空白处要利用不同的标志位选用不同的条件转移指令)。VAR1 DW VAR2 DW MOV AX,VAR1MOV BX,VAR2XOR AX,BX TEST BX,8000H MOV AX,0NEXT:6.以BUFF为首地址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中. BUF D
16、B 5,6,7,58H,62,45H,127,. COUNT EQU $-BUF MAX DB ? . . MOV BX ,OFFSET BUF MOV CX ,COUNT -1 MOV AL ,BX NXET: INC CX JAE NEXT MOV AL, BX NEXT: DEC CX MOV MAX , AL六、编制程序题(第1小题8分共16分)l.现有 data segmentarray dw 64 dup(?) dw 5 dup(?) data ends试编写一程序段,要求在array+8到array+10(两者都包括在内)单元中插入5个0.(提示:先把从array+8单元开始的数
17、据后移5个单元,然后再在规定位置插入0)2.从键盘上输入来宾的姓名Mr.或Mrs.,当按动任意键时,屏幕上显示出:Welcome Mr.3.定义宏指令并展开宏调用:宏指令JOE把一串信息“MESSAGE NO.K”存入数据区XK中.宏调用I=0 JOE TEXT , I JOE TEXT ,I JOE TEXT ,I4.在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一个完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首的数据区中。DATA SECMENTBUF1 DW 56,24,54, 1,89, 8,BUF2 DW 45, 23,124, 345, 26
18、5,SUM DW 10 DUP(0)DATA ENDS5. 改错. 阅读下列数据传送程序段,改正使用不当的语句 A DB 35,47,2AH,XYZ B DB N DUP(0) N EQU $-A MOV SI, A MOV DI, B MOV CX, LENGTH ALP: MOV AX, SI MOV DI, AX INC SI INC DI DEC CXLOOP LP6.内存中由SOURCE指示的个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数 组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数组元素,然后是负数个数及负数数组元素.7从键盘
19、输入一系列字符,以字符$为结束符,然后对其中的非数字字符计数,并显示出计数结果 8.在STRING到STRING+99单元中存放着一个字符串,并编写一个程序,测试该字符串中是否存在数字.如有数字则把DL的第5位置1,否则将该位置09.统计串中的空格个数和逗号的个数.11. . 用地址表转移表实现下列C语句,其中变量A和B是有符号的整型变量:switch(a%8) case 0 :b=32 ; break; case 1: case2: b=b+43; break; case3: b=b*a; break; case4: b- ; break; case5: case6: case7: prin
20、tf(Function 5_6_7 ); break; 汇编语言考试复习答案一、单项选择题(本大题共20小题,每小题1分,共20分)1 C 2. B 3 D 4D 5.B 6 A 7 A 8. D. 9 B 10.A 11 D 12 D 13A 14C 15.A 16 B 17. C 18 A 19C 20.A 21. D 22. D 23.C 24.B 25.B 26.B二、简答题1 物理地址:20130H(1分) 可以(1分) 2. 错,不能同时出现SI,DI(1分) 错,存储单元之间不能直接比较(1分) 3. OF、ZF、SF,和CF的标志位(2分)三、程序分析题1执行上述指令序列后,A
21、X= 0 ,CF0 2执行上述指令序列后,AL= 79H BL= 06H CL= 7FH 3执行上述指令序列后,AH=60H ,AL= 35H 4. S9 DB 1,0,3,2,5,4,7,6,9,85.上述程序段运行后,AL= 88H CL= 80H 6.上述程序段运行后, CX= 44AAH DX= 44D5H SI= 100H ,BX= 1234H 。7(从0单元开始的内容是01,01,02,02,04,04,06,06,08,08)8. 程序运行到NEXT时CX=7 ZF= 1 9. 上述程序段执行后,DX=0007H AX=0FFFCH10. 上述程序段执行后,DX=48ECH CF
22、=1 11. 上述程序段执行后,(1)BX=40或28H (2)AX=200或00C8H()12. 上述程序段执行后,(1)BX=40或28H (2)AX=200或00C8H()五.程序填空题(每空3分,共18分)1. XOR AH,AL JE ZERO2. DEC CX AX,ABX+2 ABX+2 MOV CX,DI3.4. CMPAL,ARRAYDI LOOP Al5. JS NEXT JNE NEXT6. CMP AL ,BX JNZ LOP1六、编制程序题(第1小题8分共16分)1. CODE SEGMENTASSUME ,DS:DATA ,ES:DATASTART: PUSH XO
23、R AX,AX PUAH AX MV AX,DATA MOV DS ,AXMOV ES,AXMOV SI,OFFSET ARRAY+7EHMOV DI,OFFSET ARRAY+88HSTDMOV CX,60REP MOVSWMOV BX,OFFSET ARRAY+8HMOV CX,5NEXT: MOV WORD PTRBX,0ADD BX.2LOOP NEXTRETCODE ENDSEND STARAT2. 2.DESG SEGMENT MAXLEN DB 16 ACTLEN DB ? NAMES DB 16 DUP( ) MESS1 DB WELCOME MESS2 DB 16 DUP(
24、)CRLF DB 0DH,0AH,$DSEG ENDSCSEG SEGMENTMAIN PROC FAR ASSUME CS:CSEG,DS:DSEG,ES:DSEGPUSH DSSUB AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV ES ,AXCLDBEGIN:MOV CX,16MOV AL,20HLEA DI,MESS2REP STOSBLEA DX,MAXLENMOV AH,0AHINT 21HMOV AH,7INT 21HCMP AL, 3JE EXITDISPLAY: MOV CH,0 MOV CL,ACTLEN LEA SI,NAMES LEA DI,ME
25、SS2 REP MOVSB MOV AH,09H LEA DX,MESS1 INT 21H EXIT:RETMAIN ENDPCSEG ENDS END MAIN3.JOE MACRO A,JMARY A,%JJ=J+1ENDM MARY MACRO X,KX&K DB MESSAGE NO.&KENDM宏展开:I=0 JOE TEXT , I+ TEXT0 DB MESSAGE NO.0JOE TEXT , I+ TEXT1 DB MESSAGE NO.1JOE TEXT , I+ TEXT2 DB MESSAGE NO.2 4.STACK1 SEGMENT PATA STACK DW 20
26、H DUP(0) STACK1 ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA MOV CX,10 LEA SI,BUF1 LEA DI,BUF2 LEA BX,SUM NXET: MOV AX,SI MOV DX,DI TEXT AX,8000H JE TDX NEG DX TDX:TEST DX,8000HNEG DX ADDS:ADD AX,DXMOV BX,AXADD SI,2ADD DI,2ADD BX,2LOOP NEXTMOV AH,4CHINT 21HCODE ENDS END START
27、7. DSEG SEGMENT BUFF DB 50 DUP( )COUNT DW 0DSEG ENDS .BEGIN:LEA BX,BUFFMOV COUNT , 0INPUT:MOV AH,01INT 21HMOV BX ,ALINC BXCMP AL ,$JNZ INPUTLEA BX ,BUFFNEXT: MOV CL ,$JZ DISPCMP CL,BXJZ DISP CMP CL,30HJB CONTCMP CL,39HJBE NXETCONT:INC COUNT JMP NEXTDISP: .8.DSEG SEGMENT STRING DB 100 DUP(?) DSEG END
28、SCSEG SEGMENTMAIN PROC FAR ASSUME CS:CSEG,DS:DSEG,ES:DSEG START: PUSH DS SUB AX,AX PUSH AX MOV AX,DSEG MOV DS,AXMOV ES,AX BEGIN: MOV CX,100 MOV SI ,0 REPEAT: MOV AL,STRINGSI CMP AL,30H JB GOON CMP AL,39H JA GOON OR DL,20H JMP EXITGOON:INC SI LOOP REPEAT AND DL,0DFHEXIT: RETMAIN ENDPCSEG ENDS END START
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1