关于大写字母转换成小写字母

hongjunzhi 2008-11-23 10:17:17
缓冲区BUFFER中存放有字符串,以0为结束标志。编写程序,把字符串中的大写字母转换成小写字母?应该怎么用汇编语言编写呢?或者给点提示也行啊····
...全文
322 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaopoy 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yiyilove97 的回复:]
你先查一下ascii表 了解大写字母与小写字母的上限与下限 判断是大写字母,+30 是小写字母 就不动
[/Quote]
纯帮顶

well,另外一种方法
and 0xEF,al;转换为大写

or 0x10,al;转换为小写。

0101 0000;小写a
0101 1010;小写z

0110 0001;大写A
0111 1010;大写Z
l164976398 2008-11-24
  • 打赏
  • 举报
回复
大小写字母 ASC 码差32
hongjunzhi 2008-11-24
  • 打赏
  • 举报
回复
各位快点来指导一下啊·····
hongjunzhi 2008-11-24
  • 打赏
  • 举报
回复
DATA SEGMENT
_X DB 81 DUP(?)
M DW ?
N EQU 0
_L DB 0AH,0DH,"PLEASE ENTER LETTERS:",'$',0DH,0AH
_M DB 0AH,0DH," ",'$',0AH,0DH
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV BX,N
MOV CX,81
;*********************
LL: LEA DX, _L
MOV AH,09H
INT 21H
;**********************
L1: MOV AH, 01H
INT 21H
CMP AL,' '
JZ L
CMP AL,40H
JNG LL
CMP AL,7BH
JGE LL
CMP AL,5BH
JNG _TURNL
CMP AL,60H
JNG LL
JG _ALLOW
_TURNL: OR AL,20H
_ALLOW: MOV _X[BX],AL
INC BX
;***********************

LOOP L1
;***********************

L: MOV AX,0
LEA DX,_M
MOV AH,09H
INT 21H

;**********************
MOV M,BX
CMP M,0
JZ L4
MOV BX,0
LEA BX,_X
MOV CX,M
L2: MOV DL,DS:[BX]
MOV AH,02H
INT 21H
INC BX
LOOP L2
L4: MOV AH,4CH
INT 21H
CODE ENDS
END START
现在我把程序写出来给你们看看(想了一天,LZ比较菜,想的时间很多),但是这里没有涉及到缓冲区BUFFER,虽然能正确实现该程序的要求(把大写字母转换成小写,而小写的不用转换),但是我还是觉得没有见到BUFFER这个字眼有点别扭··该怎么办呢?
yiyilove97 2008-11-24
  • 打赏
  • 举报
回复
你先查一下ascii表 了解大写字母与小写字母的上限与下限 判断是大写字母,+30 是小写字母 就不动

21,500

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧