吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2162|回复: 5
收起左侧

[其他转载] [算法实战001]“物以类聚”-将字母按大小写归并

[复制链接]
老刘 发表于 2018-9-1 15:12
[Asm] 纯文本查看 复制代码
;Code By 老刘
;题目链接:http://www.bathome.net/thread-43785-1-1.html
;编译环境:MASM32 SDK
;编译指令:ml /coff 字母按大小写归并.ASM /link /subsystem:console
;调用方法:CMD传参,参数1为要处理的字符串。
;其他:非大小写字母的字符将被丢弃;传入字符串长度最长为126字符。

Include Masm32rt.INC
.Data?
	Arg db 128 dup (?)
	UpperCaseString db 128 dup (?)
	LowerCaseString db 128 dup (?)
	NewString db 128 dup (?)
.Code
Start:
	Invoke ArgClC,1,Offset Arg
	.If Eax == 1
		Mov Esi,Offset Arg
		Mov Ecx,Offset LowerCaseString
		Mov Edx,Offset UpperCaseString
		
		.While Al != 0	;分割为两个字符串
			LodSB
			.If Al >= 41h && Al <= 5Ah
				Mov Byte Ptr [Edx],Al
				Inc Edx
			.ElseIf Al >= 61h && Al <= 7Ah
				Mov Byte Ptr [Ecx],Al
				Inc Ecx
			.EndIf
		.EndW
		
		;合并到同一个字符串中。
		Mov Edi,Offset NewString
		
		;处理小写字符串
		Sub Ecx,Offset LowerCaseString
		Mov Esi,Offset LowerCaseString
		Rep MovSB
		
		;处理大写字符串
		Sub Edx,Offset UpperCaseString
		Mov Ecx,Edx
		Mov Esi,Offset UpperCaseString
		Rep MovSB
		
		;字符串结尾
		Mov Al,0Ah
		StoSB
		Xor EAX,EAX
		StoSB
		
		;回显字符串
		Invoke StdOut,Offset NewString
	.EndIf
	Invoke ExitProcess,NULL
End Start
End

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

暗夜星辰sky 发表于 2018-9-1 15:15
膜拜下大神,看不懂的路过
kkk1l 发表于 2018-9-1 16:00
kingpj 发表于 2018-9-1 16:34
hnhbgz 发表于 2018-9-1 19:21
厉害厉害!
吃肉也不胖 发表于 2018-9-2 10:21
厉害厉害!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 20:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表