汇编测验考试题目及代码.docx
《汇编测验考试题目及代码.docx》由会员分享,可在线阅读,更多相关《汇编测验考试题目及代码.docx(81页珍藏版)》请在冰豆网上搜索。
![汇编测验考试题目及代码.docx](https://file1.bdocx.com/fileroot1/2022-12/7/6a612ea6-59c2-4cde-a045-22c89f2200bf/6a612ea6-59c2-4cde-a045-22c89f2200bf1.gif)
汇编测验考试题目及代码
1.请任意输入一个字符串,将该串倒序后在屏幕上显示。
2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。
3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。
4.请任意输入一个字符串,将其中A换成B,并将结果显示在屏幕上。
5.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。
6.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。
7.请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。
8.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk,并在显示器上显示。
9.现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。
10.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除,并在显示器上显示。
11.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序,并在显示器上显示。
12.键盘输入一个十进制数,以十六进制的形式输出。
13.键盘输入一个十进制数,以二进制的形式输出。
14.键盘输入一个二进制数,以十六进制的形式输出。
15.键盘输入一个二进制数,以十进制的形式输出。
16.键盘输入一个十六进制数,以十进制的形式输出。
17.键盘输入一个十六进制数,以二进制的形式输出。
18.将一组有符号数中的负数求和,并统计负数的个数,并在屏幕上以十进制的形式显示结果。
38H,4AH,0C5H,83H,9CH,0B4H,7FH,0C4H,05H,0F5H
19.键盘输入两组数743216、527864,按BCD码求和,并将结果显示在屏幕上。
20.键盘输入下列两组十进制数,求其和,并将结果显示在屏幕上
35789418
46531425
21.键盘输入一串二进制数1ah,7ch,0bah,3ah,45h,63h求其和,并将结果显示在屏幕上。
22.编写程序,将十个字的有符号数中最大、最小值求出,并在显示器上输出。
125ah,4357h,0f50h,0b43h,4ac4h,7454h,8b15h,0a2a4h,0f3ch,00f6h
23.键盘输入10个字节数(无符号数),求出最大、最小值,并在显示器上输出。
24.设有4个学生参加5门考试,请计算每个学生的平均成绩和每门课的平均分成绩,并在显示器上显示,输出格式如下:
Chg1chg2chg3chg4chg5meam
S178855510097
S26796437984
S39255769265
S44395828975
Aver
不计小数。
25.将两个磁盘文件合并成一个新的文件。
26.将一磁盘文件‘E:
\ASS\FILE.ASM’读入内存2000:
0000h中,并将文件以反序形式(头尾对应字符互换)仍以相同路径存入磁盘中。
27.在多模块设计中,主模块中调用内部模块buf1,buf2,buf3,buf4。
主模块根据键盘输入的指令(如:
a,b,c,d)调用上述对应的子程序,每个子程序的任务是显示其入口地址。
调用后继续等待调用,若输入ESC键(ASCII码为1BH)则结束程序的执行。
请编写完成该任务的程序。
28.现有一控制程序共5个工序,要求输入0-4的序号,分别执行各工序的子程序,每个子程序的任务是显示其入口地址。
调用后继续等待调用,按回车则结束程序的执行。
29.现有一组参量按16位编码,各字段的长度如下:
BIT1=6,BIT2=4,BIT3=3,BIT4=3,BIT1位于高位,BIT4位于低位。
设BIT1=52,BIT2=13,BIT3=5,BIT4=3请用程序编码将这些字段编码组合成一个字,按二进制的形式在屏幕上输出。
30.键盘输入十个数,分别同机0到9,10到99,100以上的数的个数,并显示结果。
1
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
ANSDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVAL,BUF[1]
XORAH,AH
ADDSI,AX
DECSI
LEADI,ANS[2]
XORCH,CH
MOVCL,BUF[1]
AGAIN:
MOVAL,[SI]
MOV[DI],AL
DECSI
INCDI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,ANS
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
2
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
STROUTDB0DH,0AH,'A=000'
DB0DH,0AH,'SPACE=000','$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JNENOTA
CMPSTROUT[10],'9'
JEATEN
INCSTROUT[10]
JMPNEXT
ATEN:
CMPSTROUT[9],'9'
JEAHUN
MOVSTROUT[10],'0'
INCSTROUT[9]
JMPNEXT
AHUN:
MOVSTROUT[10],'0'
MOVSTROUT[9],'0'
INCSTROUT[8]
JMPNEXT
NOTA:
CMPBYTEPTR[SI],''
JNENOTSPACE
CMPSTROUT[21],'9'
JESPACETEN
INCSTROUT[21]
JMPNEXT
SPACETEN:
CMPSTROUT[20],'9'
JESPACEHUN
MOVSTROUT[21],'0'
INCSTROUT[20]
JMPNEXT
SPACEHUN:
MOVSTROUT[21],'0'
MOVSTROUT[20],'0'
INCSTROUT[19]
NOTSPACE:
NEXT:
INCSI
LOOPAGAIN
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
STROUTDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],''
JESPACE
MOVAL,[SI]
MOV[DI],AL
INCDI
SPACE:
INCSI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
4
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
STROUTDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JNENOTA
MOVBYTEPTR[DI],'B'
JMPNEXT
NOTA:
MOVAL,[SI]
MOV[DI],AL
NEXT:
INCSI
INCDI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
STROUTDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JNZNOTA
MOVWORDPTR[DI],'CC'
ADDDI,2
JMPNEXT
NOTA:
MOVAL,[SI]
MOV[DI],AL
INCDI
NEXT:
INCSI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
6
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
STROUTDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JBNOTUP
CMPBYTEPTR[SI],'Z'
JANOTUP
MOVAL,[SI]
ADDAL,20H
MOV[DI],AL
JMPNEXT
NOTUP:
MOVAL,[SI]
MOV[DI],AL
NEXT:
INCSI
INCDI
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
7
DATASEGMENT
BUFDB0FFH
DB?
DB0FFHDUP(?
)
STROUTDB0DH,0AH,0FDHDUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCL,BUF[1]
XORCH,CH
AGAIN:
CMPBYTEPTR[SI],'A'
JBNOTUP
CMPBYTEPTR[SI],'Z'
JANOTUP
INCSI
JMPNEXT
NOTUP:
CMPBYTEPTR[SI],'a'
JBNOTALPHA
CMPBYTEPTR[SI],'z'
JANOTALPHA
INCSI
JMPNEXT
NOTALPHA:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
NEXT:
LOOPAGAIN
MOVBYTEPTR[DI],'$'
LEADX,STROUT
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
8
DATASEGMENT
BUFDB05H
DB?
DB05HDUP(?
)
STROUTDB0DH,0AH,'data'
DB0DH,0AH,'name'
DB0DH,0AH,'time'
DB0DH,0AH,'file'
DB0DH,0AH,'code'
DB0DH,0AH,'path'
DB0DH,0AH,'user'
DB0DH,0AH,'exit'
DB0DH,0AH,'quit'
DB0DH,0AH,'text','$'
REPLACEDB'disk'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEABX,STROUT[2]
LEASI,BUF[2]
LEADI,STROUT[2]
MOVCX,10
AGAIN:
CLD
PUSHCX
MOVCX,4
REPZCMPSB
POPCX
JNZNEXT
LEASI,REPLACE
MOVDI,BX
MOVDX,4
SUBAGAIN:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
DECDX
JNZSUBAGAIN
JMPEXIT
NEXT:
LEASI,BUF[2]
ADDBX,6
MOVDI,BX
LOOPAGAIN
EXIT:
LEADX,STROUT
MOVAH,09h
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
9
DATASEGMENT
BUFDB0DH,0AH,'ram'
DB0DH,0AH,'yes'
DB0DH,0AH,'red'
DB0DH,0AH,'the'
DB0DH,0AH,'get'
DB0DH,0AH,'for'
DB0DH,0AH,'and'
DB0DH,0AH,'key'
DB0DH,0AH,'not'
DB0DH,0AH,'may','$'
TMPDB'?
?
?
'
DATAENDS
STACKSEGMENTSTACK
DB0FFHDUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
MAINPROCNEAR
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEABX,BUF[2]
MOVDH,9
AGAIN0:
MOVDI,BX
MOVSI,DI
ADDSI,5
MOVDL,DH
AGAIN1:
PUSHSI
PUSHDI
MOVCX,3
CLD
REPZCMPSB
POPDI
POPSI
JANOTABOVE
MOVDI,SI
JMPNEXT1
NOTABOVE:
NEXT1:
ADDSI,5
DECDL
JNZAGAIN1
NEXT0:
CALLXCHGS3
ADDBX,5
DECDH
JNZAGAIN0
LEADX,BUF
MOVAH,09H
INT21H
MOVAH,4CH
INT21H
MAINENDP
XCHGS3PROCNEAR
PUSHSI
PUSHDI
PUSHCX
MOVSI,DI
MOVDI,BX
MOVCX,3
AGAINXCHGS3:
MOVAL,[SI]
MOVAH,[DI]
MOV[SI],AH
MOV[DI],AL
INCSI
INCDI
LOOPAGAINXCHGS3
POPCX
POPSI
POPDI
RET
XCHGS3ENDP
CODEENDS
ENDSTART
10
DATASEGMENT
BUFDB05H
DB?
DB05HDUP(?
)
STROUTDB0DH,0AH,'data','$'
DB0DH,0AH,'name','$'
DB0DH,0AH,'time','$'
DB0DH,0AH,'file','$'
DB0DH,0AH,'code','$'
DB0DH,0AH,'path','$'
DB0DH,0AH,'user','$'
DB0DH,0AH,'exit','$'
DB0DH,0AH,'quit','$'
DB0DH,0AH,'test','$'
DATAENDS
STACKSEGMENTSTACK
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOVAX,STACK
MOVSS,AX
LEADX,BUF
MOVAH,0AH
INT21H
LEASI,BUF[2]
LEADI,STROUT[2]
MOVDL,10
AGAIN0:
PUSHSI
PUSHDI
MOVCX,4
CLD
REPZCMPSB
POPDI
POPSI
JEDEL
ADDDI,7
DECDL
JNZAGAIN0
JMPEXIT
DEL:
CLD
MOVAL,20H
MOVCX,4
REPSTOSB
EXIT:
LEADX,STROUT
MOVCX,10
AGAIN1:
PUSHDX
MOVBX,DX
CMPBYTEPTR[BX+2],''
JENEXT1
MOVAH,09H
INT21H
NEXT1:
POPDX
ADDDX,7
LOOPAGAIN1
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
11
DATASEGMENT
STRINSERTDB'disk'
BUFDB0DH,0AH,'data'
DB0DH,0AH,'name'
DB0DH,0AH,'time'
DB0DH,0AH,'file'
DB0DH,0AH,'code'
DB0DH,0AH,'path'
DB0DH,0AH,'user'
DB0DH,0AH,'exit'
DB0DH,0AH,'quit'
DB0DH,0AH,'test'
DB0DH,0AH,''
DB0DH,0AH,'$'
DATAENDS
STACKSEGMENTSTACK
DW0FFHDUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEABX,BUF[2]
MOVDL,9
AGAIN0:
MOVDI,BX
MOVSI,DI
ADDSI,6
MOVDH,DL
AGAIN1:
PUSHSI
PUSHDI
CLD
MOVCX,4
REPZCMPSB
POPDI
POPSI
JANEXT1
MOVDI,SI
NEXT1:
ADDSI,6
DECDH
JNZAGAIN1
NEXT0:
CALLXCHGS4
ADDBX,6
DECDL
JNZAGAIN0
LEADX,BUF
MOVAH,09H
INT21H
LEABX,BUF[2+6*10]
LEASI,STRINSERT
LEADI,BUF[2]
MOVDL,10
AGAIN2:
PUSHSI
PUSHDI
CLD
MOVCX,4
REPCMPSB
POPDI
POPSI
JBSHIFTRIGHT
NEXT2:
ADDDI,6
DECDL
JNZAGAIN2
SHIFTRIGHT:
PUSHDI
MOVAX,BX
SUB