<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Thumb</title>
	<atom:link href="https://www.aitaocui.cn/tag/143591/feed" rel="self" type="application/rss+xml" />
	<link>https://www.aitaocui.cn</link>
	<description>翡翠玉石爱好者聚集地</description>
	<lastBuildDate>Tue, 22 Nov 2022 06:45:41 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.1.1</generator>

<image>
	<url>https://www.aitaocui.cn/wp-content/uploads/2022/11/taocui.png</url>
	<title>Thumb</title>
	<link>https://www.aitaocui.cn</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Thumb(ARM体系结构的指令集)</title>
		<link>https://www.aitaocui.cn/article/227597.html</link>
					<comments>https://www.aitaocui.cn/article/227597.html#respond</comments>
		
		<dc:creator><![CDATA[胡一刀]]></dc:creator>
		<pubDate>Tue, 22 Nov 2022 06:45:41 +0000</pubDate>
				<category><![CDATA[百科]]></category>
		<category><![CDATA[Thumb]]></category>
		<guid isPermaLink="false">https://www.aitaocui.cn/?p=227597</guid>

					<description><![CDATA[Thumb是ARM体系结构中一种16位的指令集。Thumb指令集可以看作是ARM指令压缩形式的子集，它是为减小代码量而提出，具有16bit的代码密度。Thumb指令体系并不完整，只...]]></description>
										<content:encoded><![CDATA[</p>
<article>
<p>Thumb是ARM体系结构中一种16位的指令集。Thumb指令集可以看作是ARM指令压缩形式的子集，它是为减小代码量而提出，具有16bit的代码密度。Thumb指令体系并不完整，只支持通用功能，必要时仍需要使用ARM指令，如进入异常时。其指令的格式与使用方式与ARM指令集类似，而且使用并不频繁，Thumb指令集作一般了解。</p>
</article>
<article>
<h1>Thumb指令</h1>
<h2 id="a-8409f5ba">基本介绍</h2>
<p>Thumb是ARM体系结构中一种16位的指令集。</p>
<p>从ARMv4T之后的ARM处理器有一种16-bit指令模式，叫做Thumb，也许跟每个条件式执行指令均耗用4位元的情形有关。Thumb指令集可以看作是ARM指令压缩形式的子集，它是为减小代码量而提出，具有16bit的代码密度。Thumb指令体系并不完整，只支持通用功能，必要时仍需要使用ARM指令，如进入异常时。其指令的格式与使用方式与ARM指令集类似，而且使用并不频繁，Thumb指令集作一般了解。</p>
<p>在Thumb模式下，较小的指令码有更少的功能性。例如，只有分支可以是条件式的，且许多指令码无法存取所有CPU的暂存器。然而，较短的指令码提供整体更佳的编码密度，即使有些运算需要更多的指令。特别在内存埠或总线宽度限制在32以下的情形时，更短的Thumb指令码能更有效地使用有限的内存带宽，因而提供比32位元程式码更佳的效能。典型的嵌入式硬件仅具有较小的32-bit datapath寻址范围以及其他更窄的16 bits寻址。</p>
<p>Thumb指令在分支指令中一部分可以在ARM指令集之间切换，Thumb的数据处理指令都能映射到相应的ARM数据处理指令中。但是单寄存器和多寄存器的加载和存储指令是不能相互交换的。</p>
<p>最早应用Thumb技术的处理器是ARM7TDMI系列的内核。所有ARM9和后来的家族，包括XScale都纳入了Thumb技术。Thumb达到的卓越的代码效率意味着对存储器容量需求的降低，使得利用16位宽度的存储器可以达到32位存储器才能达到的高性能。</p>
<p>在编写Thumb指令时，先要使用伪指令CODE16声明，编写ARM指令时，则可使用CODE32伪指令声明。</p>
<p>1、Thumb指令集没有协处理器指令、信号量指令、以及访问CPSR或SPSR的指令，没有乘加指令及64位乘法指令等，且指令的第二操作数受到限制；</p>
<p>2、大多数的Thumb数据处理指令采用2地址格式；</p>
<p>3、除了跳转指令B有条件执行功能之外，其他指令均为无条件执行，而且分支指令的跳转范围有更多限制；</p>
<p>4、数据处理指令是对通用寄存器进行操作，在大多数情况下，操作的结果放入其中一个操作数寄存器中，而不是放入第3个寄存器中；访问寄存器R8~R15受到一定的限制，除MOV、ADD指令访问R8~R15外，其他数据处理指令总是更新CPSR中ALU状态标志，访问寄存器R8~R15的Thumb数据处理指令不能更新CPSR中的ALU状态指示。</p>
<p>5、Thumb状态下，单寄存器加载和存储指令只能访问寄存器R0~R7；</p>
<p>6、LDM、STM指令可以将任何范围为R0~R7的寄存器子集加载或存储；</p>
<p>7、PUSH、POP指令使用栈寄存器R13作为基址堆栈操作。</p>
<h2 id="a-aabf8616">Thumb指令与ARM指令的区别</h2>
<p>1.分支指令：跳转的范围小，除B指令外，都是无条件跳转。</p>
<p>2.数据处理指令：Thumb指令只有2个操作数，而ARM指令是3个操作数。</p>
<p>3.单寄存器加载存储指令：Thumb指令只能访问R0~R7.</p>
<p>4.多寄存器加载存储指令：Thumb指令只能访问R0~R7的子集。</p>
<p>5.Thumb特有指令：PUSH和POP作用于R13.</p>
<h1>Thumb应用</h1>
<p>在Thumb平台上每提出一个问题就会平均收到50-100个回复，这些回复可能是问题的答案，也可能是用户对此的评论等等。如此一来，Thumb会逐渐累积各种类型问题的回复。</p>
</article>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
<div class="mt-3 mb-3" style="max-width: 770px;height: auto;">
                                    </div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.aitaocui.cn/article/227597.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
