用80x86汇编语言编程--过滤数字符号,并且大小写转换

来源:互联网 发布:matlab怎么编程 编辑:程序博客网 时间:2024/05/17 01:19

用汇编语言编程:输入一串数字字母字符串,把其中的数字去掉,把大写改小写,小写改大写,显示在屏幕上。
如:
输入:15fswSWEE78522sdDAAD
输出:FSWsweeSDdaad

;=============================================

下列程序符合题目要求:


DATA  SEGMENT
    MSG1  DB  13, 10, 'Input a STR : $'
    MSG2  DB  13, 10, 'The  STR  is: $'
    I1_L  DB  100
    I1_N  DB  ?
    I1_B  DB  100 DUP (?)

    I2_B  DB  100 DUP (?)
DATA  ENDS
;---------------------------------------
CODE  SEGMENT
    ASSUME   CS:CODE, DS:DATA
START:
    MOV   AX,  DATA
    MOV   DS,  AX

    LEA   DX,  MSG1
    MOV   AH,  9
    INT   21H
    LEA   DX,  I1_L
    MOV   AH,  10
    INT   21H
;---------------------------------------
    LEA   SI,  I1_B
    LEA   DI,  I2_B
    MOV   CL,  I1_N
    MOV   CH,  0
LOP:
    MOV   AL,  [SI]
    CMP   AL,  'A'
    JB    NEXT
    CMP   AL,  'z'
    JA    NEXT
    CMP   AL,  'Z'
    JB    TO_XXX
    CMP   AL,  'a'
    JB    NEXT
TO_XXX:
    XOR   AL, 00100000B
    MOV   [DI],  AL
    INC   DI
NEXT:
    INC   SI
    LOOP  LOP
    MOV   BYTE PTR [DI],  '$'
;---------------------------------------
DISP:
    LEA   DX,  MSG2
    MOV   AH,  9
    INT   21H
    LEA   DX,  I2_B
    MOV   AH,  9
    INT   21H
;---------------------------------------
    MOV   AH, 4CH
    INT   21H
CODE  ENDS
    END   START
;=============================================

程序运行后,将以下列形式显示:

C:\MASM>z

Input a STR : skdpa9293fa okq pPOKSFDPKPASP
The  STR  is: SKDPAFAOKQPpoksfdpkpasp

;=============================================
回答者: 做而论道 | 十五级 采纳率:43% 名人 达人
回答时间:2011-12-10 15:59
原题网址:http://zhidao.baidu.com/question/352969520.html

提问者:蒋明俊910823 | 悬赏分:15 | 离投票结束还有 3 天 23 小时

后记:本程序,是可以满足题目要求的,简单的实验一下即可知道。
   但是提问者,却把判别正误的责任推给了网友,让大家来投票。
   表面上是尊重网友意见,实际上是把不明真相的网友推向了不义的境地。
;=============================================

0 0
原创粉丝点击