JOE TEXT ,I
4.在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一个完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首的数据区中。DATA SECMENT
BUF1 DW -56,24,54, -1,89, -8,……
BUF2 DW 45, -23,124, 345, -265,……
SUM DW 10 DUP(0)DATA ENDS
5. 改错. 阅读下列数据传送程序段,改正使用不当的语句 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
6.内存中由SOURCE指示的个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数 组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数组元素,然后是负数个数及负数数组元素.
7从键盘输入一系列字符,以字符’$’为结束符,然后对其中的非数字字符计数,并显示出计数结果
8.在STRING到STRING+99单元中存放着一个字符串,并编写一个程序,测试该字符串中是否存在数字.如有数字则把DL的第5位置1,否则将该位置0
9.统计串中的空格个数和逗号的个数.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: printf(\ 5_6_7 \ }}
汇编语言考试复习答案
一、单项选择题(本大题共20小题,每小题1分,共20分)
1. C 2. B 3. D 4.D 5.B 6. A 7. A 8. D. 9. B 10.A 11. D 12. D 13.A 14.C 15.A 16. B 17. C 18. A 19.C 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.执行上述指令序列后,AX= 0 ,CF=0
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=0FFFCH
10. 上述程序段执行后,DX=48ECH CF=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 ZERO
2.DEC CX AX,A[BX+2] A[BX+2]
MOV CX,DI3.
4. CMPAL,ARRAY[DI] 5. JS NEXT 6. CMP AL ,[BX]
LOOP AlJNZ LOP1
JNE NEXT
六、编制程序题(第1小题8分共16分)
1. CODE SEGMENT
ASSUME ,DS:DATA ,ES:DATASTART: PUSH
XOR AX,AXPUAH AXMV AX,DATAMOV DS ,AXMOV ES,AX
MOV SI,OFFSET ARRAY+7EHMOV DI,OFFSET ARRAY+88HSTDMOV CX,60REP MOVSW
MOV BX,OFFSET ARRAY+8HMOV CX,5
NEXT: MOV WORD PTR[BX],0
ADD BX.2LOOP NEXTRET
CODE ENDSEND STARAT2. 2.DESG SEGMENT MAXLEN DB 16 ACTLEN DB ? NAMES MESS1 MESS2 CRLF
DB 16 DUP(‘ ‘)DB ‘WELCOME’DB 16 DUP(‘ ‘)DB 0DH,0AH,’$’
DSEG ENDSCSEG SEGMENTMAIN PROC FAR
ASSUME CS:CSEG,DS:DSEG,ES:DSEGPUSH DSSUB AX,AXPUSH AXMOV AX,DSEGMOV DS,AXMOV ES ,AXCLD
BEGIN:MOV CX,16
MOV AL,20HLEA DI,MESS2REP STOSBLEA DX,MAXLENMOV AH,0AH
INT 21HMOV AH,7INT 21HCMP AL, 3JE EXIT
DISPLAY: MOV CH,0 EXIT:RETMAIN ENDPCSEG ENDS
END MAINMARY A,%JJ=J+1ENDM
MARY MACRO X,KX&K DB ‘MESSAGE NO.&K’ENDM宏展开:I=0
JOE TEXT , I
+ TEXT0 DB ‘MESSAGE NO.0’JOE TEXT , I
+ TEXT1 DB ‘MESSAGE NO.1’JOE TEXT , I
+ TEXT2 DB ‘MESSAGE NO.2’
4.STACK1 SEGMENT PATA STACK
DW 20H DUP(0) STACK1 ENDS CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1 START: MOV AX,DATA
MOV CX,10LEA SI,BUF1LEA DI,BUF2LEA BX,SUMMOV DX,[DI]TEXT AX,8000H
3.JOE MACRO A,J
MOV CL,ACTLENLEA SI,NAMESLEA DI,MESS2REP MOVSBMOV AH,09HLEA DX,MESS1INT 21H
NXET: MOV AX,[SI]
JE TDXNEG DXNEG DX
TDX:TEST DX,8000H ADDS:ADD AX,DX
MOV [BX],AXADD SI,2ADD DI,2ADD BX,2LOOP NEXTMOV AH,4CHINT 21H
CODE ENDS
END START7. DSEG SEGMENT BUFF DB 50 DUP(‘ ‘)COUNT DW 0DSEG ENDS …..
BEGIN:LEA BX,BUFF
MOV COUNT , 0
INPUT:MOV AH,01
INT 21HMOV [BX] ,ALINC BXCMP AL ,’$’JNZ INPUTLEA BX ,BUFF
NEXT: MOV CL ,’$’
JZ DISPCMP CL,[BX]JZ DISP CMP CL,30HJB CONTCMP CL,39HJBE NXET
CONT:INC COUNT
JMP NEXT
DISP: ……..8.DSEG SEGMENT
STRING DB 100 DUP(?) DSEG ENDSCSEG SEGMENTMAIN PROC FAR
相关推荐: