<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://www.gentoo-zh.org/extern.php?action=feed&amp;tid=284&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / 判断字符串中是否有数字]]></title>
		<link>https://www.gentoo-zh.org/viewtopic.php?id=284</link>
		<description><![CDATA[判断字符串中是否有数字 最近发表的帖子。]]></description>
		<lastBuildDate>Thu, 25 Aug 2022 05:04:11 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[判断字符串中是否有数字]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=290#p290</link>
			<description><![CDATA[<p>题目描述<br />在STR到STR+99单元中存放着一个字符串，试编写程序测试该字符串中是否有数字，若有将CL置1，否则CL置0。<br />代码及注释</p><p>DATA SEGMENT<br />STR&#160; &#160;DB &#039;abc2uuuk_o$&#039;&#160; &#160; &#160; ;字符串存入STR中<br />LEN&#160; &#160;EQU $-STR<br />DATA ENDS<br />CODE SEGMENT<br />&#160; &#160; &#160; ASSUME CS:CODE,DS:DATA<br />START:MOV AX,DATA<br />&#160; &#160; &#160; MOV DS,AX<br />&#160; &#160; &#160; XOR CX,CX&#160; &#160; &#160;;清空CX<br />&#160; &#160; &#160; MOV CL,LEN&#160; &#160; ;将字符串长度存入CX<br />&#160; &#160; &#160; MOV BL,100&#160; &#160; <br />&#160; &#160; &#160; CMP CL,BL&#160; &#160; &#160; ;比较CL和100，因为题目要求STR到STR+99，若长度大于100，则需要将长度置为100<br />&#160; &#160; &#160; JB X&#160; &#160; &#160; &#160; &#160; &#160;;长度大于100则跳转，直接进行后续操作，否则把100存入CL<br />&#160; &#160; &#160; XOR CX,CX<br />&#160; &#160; &#160; MOV CL,100&#160; &#160; ;100存入CL代替LEN<br />X:MOV SI,-1&#160; &#160; &#160; &#160; &#160; ;SI作为指针，存入-1<br />NUMBER:INC SI&#160; &#160; &#160; &#160; ;SI加一<br />&#160; &#160; &#160; MOV BL,30H<br />&#160; &#160; &#160; CMP STR[SI],BL&#160; &#160; &#160;;看字符的ASCII码是否大于等于0的ASCII码<br />&#160; &#160; &#160; JAE NEXT&#160; &#160; &#160; &#160; ;大于则跳转<br />&#160; &#160; &#160; LOOP NUMBER&#160; &#160; &#160;;不是则不是数字，检查下一个字符串<br />&#160; &#160; &#160; MOV CL,0&#160; &#160; &#160; &#160;;运行到最后都不是，则CL置0<br />&#160; &#160; &#160; JMP EXIT<br />NEXT:MOV BL,39H&#160; &#160; &#160; &#160;<br />&#160; &#160; &#160; CMP STR[SI],BL&#160; &#160; &#160; ;看字符的ASCII码是否小于等于9的ASCII码<br />&#160; &#160; &#160; JBE LAB1&#160; &#160; &#160; ;是则说明就是字符就是数字，可以将CL置1跳出程序<br />&#160; &#160; &#160; LOOP NUMBER&#160; &#160; &#160; ;不是则不是数字，检查下一个字符串<br />LAB1:XOR CX,CX<br />&#160; &#160; &#160; MOV CL,1&#160; &#160; &#160; &#160; ;是数字会跳转到此处，CL置1<br />EXIT:MOV AH,4CH<br />&#160; &#160; &#160; INT 21H<br />CODE ENDS<br />&#160; &#160; &#160; END START</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Thu, 25 Aug 2022 05:04:11 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=290#p290</guid>
		</item>
	</channel>
</rss>
