汇编上机题目代码

2020-04-03 11:33

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

DATA SEGMENT BUF DB 0FFH DB ?

DB 0FFH DUP (?)

ANS DB 0DH,0AH,0FDH 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

LEA SI,BUF[2] MOV AL,BUF[1] XOR AH,AH ADD SI,AX DEC SI LEA DI,ANS[2] XOR CH,CH MOV CL,BUF[1] AGAIN:

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

LOOP AGAIN

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

INT 21H

CODE ENDS END START

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

DB 20 DUP(?) NUM1 DB ? NUM2 DB ? BUF3 DB 13,10

BUF2 DB 'NUM1=',0,0,13,10,'NUM2=',0,0,'$' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA MAIN PROC FAR

MOV AX,DATA

MOV DS,AX MOV ES,AX

CALL INPUT CALL COUNT

1

CALL FIND CALL OUTPUT MOV AX,4C00H INT 21H MAIN ENDP

INPUT PROC

MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RET INPUT ENDP

OUTPUT PROC

LEA DX,BUF3

MOV AH,9 INT 21H RET OUTPUT ENDP

COUNT PROC MOV CX,0FFFFH LEA SI,BUF1+2

AGAIN2: CMP BYTE PTR [SI],0DH JZ TO INC SI LOOP AGAIN2 TO: NOT CX RET COUNT ENDP

FIND PROC PUSH CX

LEA SI,BUF1+2

AGAIN: CMP BYTE PTR [SI],' '

JNZ T1

INC NUM1 T1: INC SI LOOP AGAIN POP CX

LEA SI,BUF1+2 AGAIN1: CMP BYTE PTR [SI],'A'

JNZ T

INC NUM2 T: INC SI

LOOP AGAIN1

MOV DL,10 MOV AL,NUM1

MOV AH,0

DIV DL OR AX,3030H

MOV WORD PTR BUF3+7,AX

MOV AL,NUM2 MOV AH,0

DIV DL

OR AX,3030H

2

MOV WORD PTR BUF3+16,AX

RET

FIND ENDP

CODE ENDS END MAIN

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

DATA SEGMENT BUF1 DB 20 DB ?

BUF4 DB 20 DUP(?) BUF3 DB 13,10 BUF2 DB 20 DUP(?) COUN DB 0 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,ES:DATA,DS:DATA

MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX

CALL INPUT CALL LOCATE CALL PREPARE CALL OUTPUT

MOV AX,4C00H INT 21H MAIN ENDP

INPUT PROC

MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RET INPUT ENDP

LOCATE PROC LEA BX,BUF1+2 DEC BX AGAIN2:INC BX

CMP BYTE PTR [BX],' ' JNZ TO5 CALL DELETE

TO5: CMP BYTE PTR [BX],0DH JNZ AGAIN2 RET LOCATE ENDP

OUTPUT PROC

LEA DX,BUF1

MOV AH,9 INT 21H RET OUTPUT ENDP

3

DELETE PROC PUSH BX

AGAIN3:CMP BYTE PTR [BX],0DH JZ TO2

MOV AL, BYTE PTR [BX+1] MOV BYTE PTR [BX],AL INC BX JMP AGAIN3 TO2: POP BX DEC BX RET PREPARE PROC CALL COUNTLEN LEA SI,BUF4 ADD SI,CX

MOV BYTE PTR [SI],'$' LEA SI,BUF1 MOV [SI],0D0AH RET PREPARE ENDP

COUNTLEN PROC MOV CX,0FFFFH LEA SI,BUF1+2

AGAIN5: CMP BYTE PTR [SI],0DH JZ TO3 INC SI LOOP AGAIN5 TO3: NOT CX RET

COUNTLEN ENDP

CODE ENDS END MAIN

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

DATA SEGMENT BUF1 DB 20 DB ?

BUF4 DB 20 DUP(?) BUF3 DB 13,10 BUF2 DB 20 DUP(?) COUN DB 0 DATA ENDS

CODE SEGMENT

ASSUME CS:CODE ,ES:DATA,DS:DATA

MAIN PROC FAR MOV AX,DATA MOV DS,AX MOV ES,AX

CALL INPUT CALL LOCATE CALL PREPARE CALL OUTPUT MOV AX,4C00H INT 21H

4

MAIN ENDP

INPUT PROC

MOV DX,OFFSET BUF1 MOV AH,0AH INT 21H RET INPUT ENDP

LOCATE PROC LEA BX,BUF1+2 DEC BX AGAIN2:INC BX

CMP BYTE PTR [BX],'A' JNZ TO5 CALL ADDTION

TO5: CMP BYTE PTR [BX],0DH JNZ AGAIN2 RET LOCATE ENDP

OUTPUT PROC

LEA DX,BUF1

MOV AH,9 INT 21H RET OUTPUT ENDP

ADDTION PROC PUSH BX

AGAIN3:INC BX INC COUN

CMP BYTE PTR [BX],0DH JNZ AGAIN3

AGAIN4:MOV AL, BYTE PTR [BX] MOV BYTE PTR [BX+1],AL DEC BX DEC COUN JNZ AGAIN4

POP BX MOV [BX],'CC' RET ADDTION ENDP PREPARE PROC CALL COUNTLEN LEA SI,BUF4 ADD SI,CX

MOV BYTE PTR [SI],'$' LEA SI,BUF1 MOV [SI],0D0AH RET PREPARE ENDP

COUNTLEN PROC MOV CX,0FFFFH LEA SI,BUF1+2

AGAIN5: CMP BYTE PTR [SI],0DH JZ TO3 INC SI

5


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

下一篇:综合知识

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

马上注册会员

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