您的位置:首页 > 编程语言

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

2016-01-25 11:54 399 查看
用汇编语言编程:输入一串数字字母字符串,把其中的数字去掉,把大写改小写,小写改大写,显示在屏幕上。
如:
输入: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 小时
后记:本程序,是可以满足题目要求的,简单的实验一下即可知道。
   但是提问者,却把判别正误的责任推给了网友,让大家来投票。
   表面上是尊重网友意见,实际上是把不明真相的网友推向了不义的境地。
;=============================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: