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

2018-12-29 17:54

北京理工大学汇编上机试题和代码(修改版)

1. 请任意输入一个字符串,将该串倒序后在屏幕上显示。 DATAS SEGMENT BUF1 DB 0FFH DB ?

DB 0FFH DUP(?)

BUF2 DB 0DH,0AH,0FDH DUP(?) DATAS ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS START:

MOV AX,DATAS MOV DS,AX LEA DX,BUF1 MOV AH,0AH INT 21H MOV AX,0

MOV AL,BUF1[1] LEA SI,BUF1[1] ADD SI,AX LEA DI,BUF2[2] MOV CX,0

MOV CL,BUF1[1] L:

MOV AL,[SI] MOV [DI],AL DEC SI INC DI LOOP L

MOV BYTE PTR [DI],'$' LEA DX,BUF2 MOV AH,09H INT 21H

MOV AH,4CH INT 21H CODES ENDS END START

取巧:

DATA SEGMENT

DB 512 DUP('$') ;定义可输入的字符个数 BUF DB '$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX

MOV BX,OFFSET BUF ;指针指向待显示字符串尾部 AGAIN:

MOV AH,01 ;输入字符 INT 21H

CMP AL,0DH ;是回车吗 JE DISP ;是,转显示 DEC BX ;指针减1

MOV [BX],AL ;存入输入的字符 JMP AGAIN ;继续输入

DISP:

MOV DX,BX ;定位待显示字符串首地址 MOV AH,09 INT 21H ;显示

MOV AH,4CH ;DOS返回 INT 21H CODE ENDS END START

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

DATA SEGMENT BUF DB 0FFH DB ? DB 0FFH DUP (?) OUTPUT DB 0DH,0AH,' A =000' DB 0DH,0AH,'SPACE=000','$' DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF

MOV AH,0AH INT 21H

LEA SI,BUF[2] MOV CX,0

MOV CL,BUF[1] L:

CMP BYTE PTR[SI],'A' JNE NOTA

CMP OUTPUT[10],'9' JE CAR1

INC OUTPUT[10] JMP NEXT CAR1:

CMP OUTPUT[9],'9' JE CAR2

MOV OUTPUT[10],'0' INC OUTPUT[9] JMP NEXT CAR2:

MOV OUTPUT[10],'0' MOV OUTPUT[9],'0' INC OUTPUT[8] JMP NEXT NOTA:

CMP BYTE PTR[SI],' ' JNE NEXT

CMP OUTPUT[21],'9' JE CSR1

INC OUTPUT[21] JMP NEXT CSR1:

CMP OUTPUT[20],'9' JE CSR2

MOV OUTPUT[21],'0' INC OUTPUT[20] JMP NEXT CSR2:

MOV OUTPUT[21],'0' MOV OUTPUT[20],'0' INC OUTPUT[19] JMP NEXT NEXT: INC SI LOOP L

LEA DX,OUTPUT MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END

3. 请任意输入一个字符串,将其中的空格全部删除,并将结果显示在屏幕上。 DATA SEGMENT BUF1 DB 0FFH DB ? DB 0FFH DUP('?') BUF2 DB 0DH,0AH,0FDH DUP('?') DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF1 MOV AH,0AH INT 21H MOV CX,0 MOV CL,BUF1[1] LEA SI,BUF1[2] LEA DI,BUF2[2] L: CMP BYTE PTR [SI],' ' JE M MOV AL,[SI] MOV [DI],AL INC DI M: INC SI LOOP L MOV BYTE PTR [DI],'$' LEA DX,BUF2 MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS

END

4. 请任意输入一个字符串,将其中A换成B,并将结果显示在屏幕上。 DATA SEGMENT BUF DB 0FFH DB ? DB 0FFH DUP('?') DATA ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,0AH INT 21H MOV CX,0 MOV CL,BUF[1] LEA SI,BUF[2] L: CMP BYTE PTR [SI],'A' JNE M MOV BYTE PTR [SI],'B' M: INC SI LOOP L MOV WORD PTR [SI],0D0AH MOV BYTE PTR [SI+2],'$' LEA DX,BUF[2] MOV AH,09H INT 21H MOV AX,4C00H INT 21H CODE ENDS END

5. 请任意输入一个字符串,将其中A换成CC,并将结果显示在屏幕上。 DATA SEGMENT BUF1 DB 0FFH DB ? DB 0FFH DUP('?') BUF2 DB 0DH,0AH,0FDH DUP('?')


北京理工大学汇编上机试题和代码.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:长征知识竞赛题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: