北京理工大学汇编语言上机考试试题和代码.docx

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

北京理工大学汇编语言上机考试试题和代码.docx

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

北京理工大学汇编语言上机考试试题和代码.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

取巧:

DATASEGMENT

DB512DUP('$');定义可输入的字符个数

BUFDB'$'

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBX,OFFSETBUF;指针指向待显示字符串尾部

AGAIN:

MOVAH,01;输入字符

INT21H

CMPAL,0DH;是回车吗

JEDISP;是,转显示

DECBX;指针减1

MOV[BX],AL;存入输入的字符

JMPAGAIN;继续输入

DISP:

MOVDX,BX;定位待显示字符串首地址

MOVAH,09

INT21H;显示

MOVAH,4CH;DOS返回

INT21H

CODEENDS

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换成B,并将结果显示在屏幕上。

DATASEGMENT

BUFDB0FFH

DB?

DB0FFHDUP('?

')

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEADX,BUF

MOVAH,0AH

INT21H

MOVCX,0

MOVCL,BUF[1]

LEASI,BUF[2]

L:

CMPBYTEPTR[SI],'A'

JNEM

MOVBYTEPTR[SI],'B'

M:

INCSI

LOOPL

MOVWORDPTR[SI],0D0AH

MOVBYTEPTR[SI+2],'$'

LEADX,BUF[2]

MOVAH,09H

INT21H

MOVAX,4C00H

INT21H

CODEENDS

END

 

5.请任意输入一个字符串,将其中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

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:

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

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

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

8.现有一组字符串为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

9.现有一组字符串为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

JAH

JEO

JBR

O:

INCSI

MOVAL,[SI]

CMPAL,[SI+5]

JAH

JBR

JEO

H:

POPSI

PUSHSI

MOVBX,3

M:

MOVAL,BYTEPTR[SI]

MOVAH,BYTEPTR[SI+5]

MOVBYTEPTR[SI],AH

MOVBYTEPTR[SI+5],AL

INCSI

DECBX

JNZM

R:

POPSI

ADDSI,5

LOOPB

DECDI

JNZA

LEADX,LIB

MOVAH,09H

INT21H

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

10.现有一组字符串为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

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

DATASEGMENT

BUFDB0FFH

DB?

DB0DH,0AH,0FDHDUP('?

')

tishiDB0DH,0AH,'PLEASEINPUTANOTHERSTRING:

$'

EXTRADB05H

DB?

DB5DUP(?

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

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVDI,9

CALLSORT

CALLOUTPUT

CALLINSERT

MOVDI,10

CALLSORT

CALLOUTPUT

JMPEXIT

SORTPROCNEAR

A:

MOVCX,DI

LEASI,LIB[2]

B:

MOVAL,[SI]

CMPAL,[SI+6]

PUSHSI

JAH

JEO

JBR

O:

INCSI

MOVAL,[SI]

CMPAL,[SI+6]

JAH

JBR

JEO

H:

POPSI

PUSHSI

MOVBX,4

M:

MOVAL,BYTEPTR[SI]

MOVAH,BYTEPTR[SI+6]

MOVBYTEPTR[SI],AH

MOVBYTEPTR[SI+6],AL

INCSI

DECBX

JNZM

R:

POPSI

ADDSI,6

LOOPB

DECDI

JNZA

RET

SORTENDP

OUTPUTPROCNEAR

LEADX,LIB

MOVAH,09H

INT21H

RET

OUTPUTENDP

INSERTPROCNEAR

LEADX,TISHI

MOVAH,9

INT21H

LEADX,EXTRA

MOVAH,0AH

INT21H

MOVBYTEPTRLIB[60],0DH

MOVBYTEPTRLIB[61],0AH

MOVBH,4

MOVSI,62

MOVDI,2

LOOP1:

MOVAL,EXTRA[DI]

MOVLIB[SI],AL

INCSI

INCDI

DECBH

JNELOOP1

MOVAL,'$'

MOVLIB[SI],AL

;LEADX,LIB

;MOVAH,09H

;INT21H

RET

INSERTENDP

EXIT:

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

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

;

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

DATASEGMENT

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,ES:

DATA

START:

MOVAX,DATA

MOVDS,AX

MOVBX,0

INPUT:

MOVAH,1

INT21H

CMPAL,0DH

JZOUTPUT

SUBAL,30H

MOVAH,0

XCHGAX,BX;这一段称之为“累和”

MOVCX,10

MULCX

ADDAX,BX

XCHGAX,BX

JMPINPUT

OUTPUT:

MOVDI,4

MOVCL,4

YIWEI:

ROLBX,CL

MOVDX,BX

ANDDL,00001111B

CMPDL,9

JAZIMU

ADDDL,30H

JMPL

ZIMU:

ADDDL,37H;十六进制移位ROLCL=4输出字母A-F37H

L:

MOVAH,2

INT21H

DECDI

JNEYIWEI

MOVAH,4CH

INT21H

CODEENDS

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

JAEXIT

CALLTRANSFORM

JMPSHURU

RETUR

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

当前位置:首页 > 解决方案 > 学习计划

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

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