用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 小时
后记:本程序,是可以满足题目要求的,简单的实验一下即可知道。
但是提问者,却把判别正误的责任推给了网友,让大家来投票。
表面上是尊重网友意见,实际上是把不明真相的网友推向了不义的境地。
;=============================================
如:
输入: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 小时
后记:本程序,是可以满足题目要求的,简单的实验一下即可知道。
但是提问者,却把判别正误的责任推给了网友,让大家来投票。
表面上是尊重网友意见,实际上是把不明真相的网友推向了不义的境地。
;=============================================
相关文章推荐
- 用80x86汇编语言编程--统计输入的字符个数
- java基础篇--06<java泛型>
- C语言函数传递与值传递
- C语言编程:进制转换器
- C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置
- C语言编程:有n个人围成一圈,顺序排号。从第一个人开始报数...
- C语言编程:字符串连接
- 用80x86汇编语言编程--在10个无符号数中,找最小的偶数
- 用80x86汇编语言编程:键盘输入数组,再选择输出
- 基于51单片机的00-99秒表--C语言
- Asp.Net 启用全局IE兼容模式
- 51单片机汇编语言编程:用定时器控制输出矩形波
- 用C语言按照冒泡法进行数字排序
- C语言编程:8051单片机系统的时钟为11.0592MHz,把0~99从串行口输出
- C++ STL--stack/queue 的使用方法
- 汇编编程问题:X + Y + Z => 显示
- 汇编语言编程:1 + 2 + 3 + 4 + 5 + …… + n
- 汇编语言编程:按照凯撒密码的规则加密
- 用80x86汇编语言编程:分类统计字符个数
- 三层登录——VB.NET版