汇编语言上机考试题3

2018-10-21  本文已影响0人  魔一方

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

这道题的注释没有分号,如果直接复制粘贴要手动加以下,懒得切换中英文了。

这个就是前两个题的升级版
DATAS SEGMENT

    BUF1 DB 100

    DB ?

    DB 100 DUP(?)

DATAS ENDS

STACKS SEGMENT

    ;此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

    MOV AX,DATAS

    MOV DS,AX

    LEA DX,BUF1

    MOV AH,0AH;读入键盘输入的东西

    INT 21H

    MOV DL,0AH;换行

    MOV AH,02H

    INT 21H

    MOV BL,BUF1[1];存入输入的个数

    MOV SI,2;设置开始的地方

CHULI:

CMP BL,0;

JZ EXIT

CMP BUF1[SI],'A' 首先看是不是大于A

JNB ISDAXIE

JB ISNOT

ISDAXIE:

CMP BUF1[SI],'Z'  再看是不是小于Z 这样确定大写字母

JA ISXIAOXIEA

JNA ZIMU

ISXIAOXIEA:

CMP BUF1[SI],'a'      是比a大么

JB ISNOT

JNB ISXIAOXIEZ

ISXIAOXIEZ:   是比z小么?

    CMP BUF1[SI],'z'  

    JA ISNOT

    JNA ZIMU

ISNOT:  如果不是字母就打印出来

MOV DL,BUF1[SI]

MOV AH,02H

INT 21H

INC SI

DEC BL

JMP CHULI

ZIMU:   是字母的话 就直接跳过

INC SI

DEC BL

JMP CHULI

EXIT:

    ;此处输入代码段代码

    MOV AH,4CH

    INT 21H

CODES ENDS

    END START

上一篇下一篇

猜你喜欢

热点阅读