<?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=288&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / 排序]]></title>
		<link>https://www.gentoo-zh.org/viewtopic.php?id=288</link>
		<description><![CDATA[排序 最近发表的帖子。]]></description>
		<lastBuildDate>Thu, 25 Aug 2022 05:06:08 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[排序]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=294#p294</link>
			<description><![CDATA[<p>题目描述<br />数据按字节存储，按降序排序，实现排序。</p><p>DATA SEGMENT<br />&#160; &#160; A DB 12,11,5,9,3<br />&#160; &#160;&#160; &#160; &#160;DB 18,4,1,7,2<br />&#160; &#160; CNT EQU $-A<br />DATA ENDS<br />CODE SEGMENT<br />&#160; &#160; ASSUME CS:CODE,DS:DATA<br />START:MOV AX,DATA<br />&#160; &#160; MOV DS,AX<br />&#160; &#160; MOV CX,CNT-1&#160; &#160; &#160; ;CX置为初始循环次数<br />&#160; &#160; MOV BX,0<br />LOOP1:MOV DX,CX<br />&#160; &#160; MOV SI,1&#160; &#160; &#160; &#160; ;因为改为DB，SI初始为1<br />LOOP2:MOV AL,A[BX]<br />&#160; &#160; CMP AL,A[BX+SI]&#160; &#160; &#160;;比较两值<br />&#160; &#160; JNB L1&#160; &#160; &#160; &#160;;大于等于则直接跳转，进行后续步骤<br />&#160; &#160; XCHG AL,A[BX+SI] <br />&#160; &#160; MOV A[BX],AL&#160; &#160; &#160;;否则交换两值<br />L1:INC SI&#160; &#160; &#160; &#160; &#160; ;改为DB，SI每次增加1<br />&#160; &#160; LOOP LOOP2<br />&#160; &#160; ADD BX,1&#160; &#160; &#160; ;改为DB，BX每次增加1<br />&#160; &#160; MOV CX,DX&#160; &#160; &#160; ;细节注意，内循环，即LOOP2的循环次数每次都会减小1，而CX在经过下一个语句LOOP LOOP1时已经回减小1，再存入DX，再下一次取出时又被减小1，以此来实现每次CX都逐渐减小<br />&#160; &#160; LOOP LOOP1<br />&#160; &#160; MOV AH,4CH<br />&#160; &#160; INT 21H<br />CODE ENDS<br />&#160; &#160; END START</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Thu, 25 Aug 2022 05:06:08 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=294#p294</guid>
		</item>
	</channel>
</rss>
