北京理工大学上机试题及答案汇编.docx

上传人:b****2 文档编号:1163874 上传时间:2023-04-30 格式:DOCX 页数:114 大小:29.90KB
下载 相关 举报
北京理工大学上机试题及答案汇编.docx_第1页
第1页 / 共114页
北京理工大学上机试题及答案汇编.docx_第2页
第2页 / 共114页
北京理工大学上机试题及答案汇编.docx_第3页
第3页 / 共114页
北京理工大学上机试题及答案汇编.docx_第4页
第4页 / 共114页
北京理工大学上机试题及答案汇编.docx_第5页
第5页 / 共114页
北京理工大学上机试题及答案汇编.docx_第6页
第6页 / 共114页
北京理工大学上机试题及答案汇编.docx_第7页
第7页 / 共114页
北京理工大学上机试题及答案汇编.docx_第8页
第8页 / 共114页
北京理工大学上机试题及答案汇编.docx_第9页
第9页 / 共114页
北京理工大学上机试题及答案汇编.docx_第10页
第10页 / 共114页
北京理工大学上机试题及答案汇编.docx_第11页
第11页 / 共114页
北京理工大学上机试题及答案汇编.docx_第12页
第12页 / 共114页
北京理工大学上机试题及答案汇编.docx_第13页
第13页 / 共114页
北京理工大学上机试题及答案汇编.docx_第14页
第14页 / 共114页
北京理工大学上机试题及答案汇编.docx_第15页
第15页 / 共114页
北京理工大学上机试题及答案汇编.docx_第16页
第16页 / 共114页
北京理工大学上机试题及答案汇编.docx_第17页
第17页 / 共114页
北京理工大学上机试题及答案汇编.docx_第18页
第18页 / 共114页
北京理工大学上机试题及答案汇编.docx_第19页
第19页 / 共114页
北京理工大学上机试题及答案汇编.docx_第20页
第20页 / 共114页
亲,该文档总共114页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

北京理工大学上机试题及答案汇编.docx

《北京理工大学上机试题及答案汇编.docx》由会员分享,可在线阅读,更多相关《北京理工大学上机试题及答案汇编.docx(114页珍藏版)》请在冰点文库上搜索。

北京理工大学上机试题及答案汇编.docx

北京理工大学上机试题及答案汇编

北京理工大学汇编上机试题和代码

1.请任意输入一个字符串,将该串倒序后在屏幕上显示。

DATASSEGMENT

BUF1DB0FFH

DB?

DB0FFHDUP(?

BUF2DB0DH,0AH,0FDHDUP(?

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

LEADX,BUF1

MOVAH,0AH

INT21H

MOVAX,0

MOVAL,BUF1[1]

LEASI,BUF1[1]

ADDSI,AX

LEADI,BUF2[2]

MOVCX,0

MOVCL,BUF1[1]

L:

MOVAL,[SI]

MOV[DI],AL

DECSI

INCDI

LOOPL

MOVBYTEPTR[DI],'$'

LEADX,BUF2

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

 

2.请任意输入一个字符串,统计其中空格和A的个数,并将结果显示在屏幕上。

DATASEGMENT

BUFDB0FFH

DB?

DB0FFHDUP(?

OUTPUTDB0DH,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]

MOVCX,0

MOVCL,BUF[1]

L:

CMPBYTEPTR[SI],'A'

JNENOTA

CMPOUTPUT[10],'9'

JECAR1

INCOUTPUT[10]

JMPNEXT

CAR1:

CMPOUTPUT[9],'9'

JECAR2

MOVOUTPUT[10],'0'

INCOUTPUT[9]

JMPNEXT

CAR2:

MOVOUTPUT[10],'0'

MOVOUTPUT[9],'0'

INCOUTPUT[8]

JMPNEXT

NOTA:

CMPBYTEPTR[SI],''

JNENEXT

CMPOUTPUT[21],'9'

JECSR1

INCOUTPUT[21]

JMPNEXT

CSR1:

CMPOUTPUT[20],'9'

JECSR2

MOVOUTPUT[21],'0'

INCOUTPUT[20]

JMPNEXT

CSR2:

MOVOUTPUT[21],'0'

MOVOUTPUT[20],'0'

INCOUTPUT[19]

JMPNEXT

NEXT:

INCSI

LOOPL

LEADX,OUTPUT

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

END

3.请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。

DATASEGMENT

BUF1DB0FFH

DB?

DB0FFHDUP('?

')

BUF2DB0DH,0AH,0FDHDUP('?

')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUF1

MOVAH,0AH

INT21H

MOVCX,0

MOVCL,BUF1[1]

LEASI,BUF1[2]

LEADI,BUF2[2]

L:

CMPBYTEPTR[SI],''

JEM

MOVAL,[SI]

MOV[DI],AL

INCDI

M:

INCSI

LOOPL

MOVBYTEPTR[DI],'$'

LEADX,BUF2

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

END

 

4.请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。

DATASEGMENT

BUF1DB0FFH

DB?

DB0FFHDUP('?

')

BUF2DB0DH,0AH,0FDHDUP('?

')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUF1

MOVAH,0AH

INT21H

MOVCX,0

MOVCL,BUF1[1]

LEASI,BUF1[2]

LEADI,BUF2[2]

L:

CMPBYTEPTR[SI],'A'

JNEM

MOVWORDPTR[DI],'CC'

ADDDI,2

INCSI

JMPN

M:

MOVAL,[SI]

MOV[DI],AL

INCDI

INCSI

N:

LOOPL

MOVBYTEPTR[DI],'$'

LEADX,BUF2

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

END

5.请任意输入一个字符串,将其中大写字母换成小写字母,并将结果显示在屏幕上。

DATASEGMENT

BUF1DB0FFH

DB?

DB0FFHDUP('?

')

BUF2DB0DH,0AH,0FDHDUP('?

')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUF1

MOVAH,0AH

INT21H

MOVCX,0

MOVCL,BUF1[1]

LEASI,BUF1[2]

LEADI,BUF2[2]

L:

MOVAL,[SI]

MOV[DI],AL

CMPBYTEPTR[DI],'a'

JNBM

ORBYTEPTR[DI],00100000B

M:

INCDI

INCSI

N:

LOOPL

MOVBYTEPTR[DI],'$'

LEADX,BUF2

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

END

6.请任意输入一个字符串,将其中的英文字母全部删除,并将结果显示在屏幕上。

DATASEGMENT

BUF1DB0FFH

DB?

DB0FFHDUP('?

')

BUF2DB0DH,0AH,0FDHDUP('?

')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUF1

MOVAH,0AH

INT21H

MOVCX,0

MOVCL,BUF1[1]

LEASI,BUF1[2]

LEADI,BUF2[2]

L:

CMPBYTEPTR[SI],'A'

JNBM

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

JMPNEXT

M:

CMPBYTEPTR[SI],'z'

JNAN

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

JMPNEXT

N:

CMPBYTEPTR[SI],'a'

JBH

INCSI

JMPNEXT

H:

CMPBYTEPTR[SI],'Z'

JAO

INCSI

JMPNEXT

O:

MOVAL,[SI]

MOV[DI],AL

INCSI

INCDI

JMPNEXT

NEXT:

LOOPL

MOVBYTEPTR[DI],'$'

LEADX,BUF2

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

END

7.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其修改为disk,并在显示器上显示。

DATASSEGMENT

BUFDB05H

DB?

DB05HDUP('?

')

LIBDB0DH,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'

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,ES:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVES,AX

LEADX,BUF

MOVAH,0AH

INT21H

LEASI,BUF[2]

LEADI,LIB[2]

MOVBX,DI

MOVCX,10

L:

CLD

PUSHCX

MOVCX,4

REPZCMPSB

JNZN

POPCX

MOVSI,BX

LEADI,REPLACE

MOVCX,4

M:

MOVAL,[DI]

MOV[SI],AL

INCDI

INCSI

LOOPM

JMPEXIT

N:

ADDBX,6

MOVDI,BX

LEASI,BUF[2]

LOOPL

EXIT:

LEADX,LIB

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

8.现有一组字符串为ram,yes,red,the,get,for,and,key,not,may,请编写程序将他们按ASCII大小排序,并在显示器上显示。

DATASEGMENT

LIBDB'ram',0DH,0AH

DB'yes',0DH,0AH

DB'red',0DH,0AH

DB'the',0DH,0AH

DB'get',0DH,0AH

DB'for',0DH,0AH

DB'and',0DH,0AH

DB'key',0DH,0AH

DB'not',0DH,0AH

DB'may',0DH,0AH,'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDI,9

A:

MOVCX,DI

LEASI,LIB

B:

MOVAL,[SI]

CMPAL,[SI+5]

PUSHSI

JADAYU

JEDENGYU

JBXIAOYU

DENGYU:

INCSI

MOVAL,[SI]

CMPAL,[SI+5]

JADAYU

JBXIAOYU

JEDENGYU

DAYU:

POPSI

PUSHSI

MOVBX,3

JIAOHUAN:

MOVAL,BYTEPTR[SI]

MOVAH,BYTEPTR[SI+5]

MOVBYTEPTR[SI],AH

MOVBYTEPTR[SI+5],AL

INCSI

DECBX

JNZJIAOHUAN

XIAOYU:

POPSI

ADDSI,5

LOOPB

DECDI

JNZA

LEADX,LIB

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

9、现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序从键盘输入4个字符的字符串,若存在将其删除,并在显示器上显示。

DATASEGMENT

BUFDB05H

DB?

DB05HDUP(?

LIBDB0DH,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

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVES,AX

LEADX,BUF

MOVAH,0AH

INT21H

LEASI,BUF[2]

LEADI,LIB[2]

MOVDL,10

L:

PUSHSI

PUSHDI

MOVCX,4

CLD

REPZCMPSB

MOVAX,DI

JEDEL

POPDI

POPSI

ADDDI,7

DECDL

JNZL

JMPEXIT

DEL:

MOVBX,AX

SUBBX,6

EXIT:

LEADX,LIB

MOVCX,10

M:

PUSHDX

CMPDX,BX

JEN

MOVAH,09H

INT21H

N:

POPDX

ADDDX,7

LOOPM

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

10.现有一组字符串为data,name,time,file,code,path,user,exit,quit,text,请编写程序将上述字符串排序(升序)并插入disk使其人仍然有序,并在显示器上显示。

DATASSEGMENT

DATADB0DH,0AH,'time'

DB0DH,0AH,'name'

DB0DH,0AH,'data'

DB0DH,0AH,'file'

DB0DH,0AH,'code'

DB0DH,0AH,'path'

DB0DH,0AH,'user'

DB0DH,0AH,'exit'

DB0DH,0AH,'quit'

DB0DH,0AH,'text','$'

DB05HDUP(?

DB'$'

MOREDB0DH,0AH,'disk'

CENTERDB0DH,0AH,'$'

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS

START:

MOVAX,DATAS

MOVDS,AX

MOVES,AX

LEASI,DATA[2]

LEADI,DATA[8]

MOVCX,09D

CALLRANK

LEADX,CENTER

MOVAH,09H

INT21H

LEADI,DATA[60]

LEASI,MORE[0]

MOVCX,06D

REPMOVSB

LEASI,DATA[2]

LEADI,DATA[8]

MOVCX,0AH

CALLRANK

JMPEXIT

RANKPROCFAR

L:

PUSHCX

PUSHSI

PUSHDI

MAIN:

PUSHCX

PUSHSI

PUSHDI

MOVCX,04D

REPZCMPSB

JAEXCHANGE

M:

POPDI

POPSI

POPCX

ADDSI,06D

ADDDI,06D

LOOPMAIN

POPDI

POPSI

POPCX

LOOPL

JMPPRINT

EXCHANGE:

POPDI

POPSI

PUSHSI

PUSHDI

MOVCX,04D

AGAIN:

MOVBL,[SI]

MOVDL,[DI]

MOV[SI],DL

MOV[DI],BL

INCDI

INCSI

LOOPAGAIN

JMPM

PRINT:

LEADX,DATA

MOVAH,09H

INT21H

RET

RANKENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

11.键盘输入一个十进制数,以十六进制的形式输出。

CODESSEGMENT

ASSUMECS:

CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H;输入字符

INT21H

CBW;convertbytetoword

CMPAX,0DH;比较是否为回车

JERETURN

CMPAX,'0'

JBEXIT

CMPAX,'9'

JAEXIT

CALLTRANSFORM;确认为0-9的数字,跳转至数值转换TRANSFORM子程序

JMPSHURU;循环操作,直至输入为回车结束

RETURN:

RET;返回CALLINPUT的末尾,即开始执行CALLOUTPUT

INPUTENDP

TRANSFORMPROCNEAR;机器内部的运算都是以ASCII码进行

XCHGAX,BX

SUBBX,30H

MOVCX,10

MULCX

ADDAX,BX

XCHGAX,BX;转换完成的数字存放在BX中

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVDH,4

MOVCL,4

CONTINUE:

ROLBX,CL;循环左移,最高位跑到最低位,高第二位跑到最高位,以此类推

MOVDL,BL

ANDDL,0FH;保留低四位内容,放在DL中,通过循环左移后低四位即为一开始最高位,以此类推

CMPDL,9;;这里9不加引号,因为前边已经减掉了30H

JAZIMU

ADDDL,30H

JMPSHUCHU

ZIMU:

ADDDL,37H

SHUCHU:

MOVAH,02H

INT21H

DECDH

CMPDH,0

JNECONTINUE

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

MOVAH,02H

INT21H

RET;每个PROC指令中至少包含一个RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

12.键盘输入一个十进制数,以二进制的形式输出。

CODESSEGMENT

ASSUMECS:

CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H

INT21H

CBW

CMPAX,0DH

JERETURN

CMPAX,'0'

JBEXIT

CMPAX,'9'

JAEXIT

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

XCHGAX,BX

SUBBX,30H

MOVCX,10

MULCX

ADDAX,BX

XCHGAX,BX

RET

TRANSFORMENDP

OUTPUTPROCNEAR

MOVDH,16

MOVCL,1

CONTINUE:

ROLBX,CL

MOVDL,BL

ANDDL,00000001H

ADDDL,30H

SHUCHU:

MOVAH,02H

INT21H

DECDH

CMPDH,0

JNECONTINUE

MOVDL,0AH

MOVAH,02H

INT21H

MOVDL,0DH

MOVAH,02H

INT21H

RET

OUTPUTENDP

EXIT:

MOVAH,4CH

INT21H

CODESENDS

ENDSTART

13.键盘输入一个二进制数,以十六进制的形式输出。

CODESSEGMENT

ASSUMECS:

CODES

START:

NEXT:

MOVBX,0

CALLINPUT

CALLOUTPUT

JMPNEXT

INPUTPROCNEAR

SHURU:

MOVAH,01H

INT21H

CBW

CMPAX,0DH

JERETURN

CMPAX,'0'

JBEXIT

CMPAX,'1'

JAEXIT

CALLTRANSFORM

JMPSHURU

RETURN:

RET

INPUTENDP

TRANSFORMPROCNEAR

XCHGAX,BX

SUBBX,30H

MOVCX,2

MULCX

ADDAX,B

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2