<?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=298&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Gentoo中文社区 / SECTION]]></title>
		<link>https://www.gentoo-zh.org/viewtopic.php?id=298</link>
		<description><![CDATA[SECTION 最近发表的帖子。]]></description>
		<lastBuildDate>Thu, 13 Oct 2022 05:35:29 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[Re: SECTION]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=493#p493</link>
			<description><![CDATA[<p>aa</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Thu, 13 Oct 2022 05:35:29 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=493#p493</guid>
		</item>
		<item>
			<title><![CDATA[Re: SECTION]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=492#p492</link>
			<description><![CDATA[<p>aa</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Thu, 13 Oct 2022 05:34:25 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=492#p492</guid>
		</item>
		<item>
			<title><![CDATA[SECTION]]></title>
			<link>https://www.gentoo-zh.org/viewtopic.php?pid=304#p304</link>
			<description><![CDATA[<p>SECTION是一种组织代码和存储的方式<br />&#160; &#160; &#160; &#160; NASM支持标准的.data, .text和.bss，编译后的程序文件中的内存地址顺序是.text, .data，用户自定义section。<br />&#160; &#160; &#160; &#160; NASM支持用户自定义section<br />&#160; &#160; &#160; &#160; 同名的section，编译后会放在同一块连续的内存上<br />&#160; &#160; &#160; &#160; [SECTION .data]<br />&#160; &#160; &#160; &#160; var1&#160; &#160; db&#160; &#160; 0x01<br />&#160; &#160; &#160; &#160; [SECTION .text]<br />&#160; &#160; &#160; &#160; MOV&#160; &#160;AX, var1<br />&#160; &#160; &#160; &#160; [SECTION .data]<br />&#160; &#160; &#160; &#160; var2&#160; &#160; db&#160; &#160;0x02<br />&#160; &#160; &#160; &#160; 编译后，内存为0xB8040000 0102，其中0xB804是MOV AX，0x04的机器码，0x04是标号var1汇编后的偏移地址。因为汇编后，var1对应的存储区在.data段，被挪到了内存的尾部，因此偏移不是0x00，而变成了0x04。<br />&#160; &#160; &#160; &#160; 对用户自定义section，按照出现的先后顺序存储，同名的section存储在一起。</p><p> </p><p>&#160; &#160; 每个SECTION默认都是按4字节对齐的：<br />&#160; &#160; &#160; &#160; [SECTION .s1]<br />&#160; &#160; &#160; &#160; &#160; &#160; var1&#160; &#160; db&#160; &#160;0x1<br />&#160; &#160; &#160; &#160; [SECTION .s2]<br />&#160; &#160; &#160; &#160; &#160; &#160; var2&#160; &#160; db&#160; &#160;0x3<br />&#160; &#160; &#160; &#160; [SECTION .s1]<br />&#160; &#160; &#160; &#160; &#160; &#160; var3&#160; &#160; db&#160; &#160;0x2<br />&#160; &#160; &#160; &#160; 编译后产生的内存：0x01020000 0x03<br />&#160; &#160; &#160; &#160; 可以看到SECTION .s1被扩展为4个字节，后面两个字节填0，然后是SECTION .s2 </p><p>&#160; &#160; SECTION的对齐方式可以用ALIGN来调整<br />&#160; &#160; $$指向当前section相对于段基址的偏移地址，$指向当前行相对于段基址的偏移地址。</p>]]></description>
			<author><![CDATA[dummy@example.com (batsom)]]></author>
			<pubDate>Fri, 26 Aug 2022 06:00:43 +0000</pubDate>
			<guid>https://www.gentoo-zh.org/viewtopic.php?pid=304#p304</guid>
		</item>
	</channel>
</rss>
