请教一个ARM的语句问题。

[复制链接]
3332|7
 楼主| xjc 发表于 2007-1-8 09:32 | 显示全部楼层 |阅读模式
请教一个ARM的语句问题。<br />在杜春雷的《ARM体系结构与编程》书中的219页中有这样的一段程序。<br /><br />........<br /><br />;延时<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r4&nbsp;,&nbsp;&nbsp;=0xff<br />01&nbsp;&nbsp;&nbsp;subs&nbsp;r4&nbsp;,&nbsp;r4&nbsp;,&nbsp;&nbsp;#0x01<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bne&nbsp;&nbsp;%b01<br /><br />我的疑问是:bne&nbsp;%b01这段汇编是怎么一个机构?<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%b在这里是什么意思呢&nbsp;&nbsp;?<br /><br /><br />
pigjiang 发表于 2007-1-8 09:36 | 显示全部楼层

这个 在李光驹的书上有

bne&nbsp;&nbsp;%b01<br />说得是&quot;不等的话,跳转到以前的最近的一个叫01的标号处&quot;<br /><br />如果表示往后的第一个标号好像是用&f01吧,忘了.<br />
 楼主| xjc 发表于 2007-1-8 10:08 | 显示全部楼层

请问哪里有讲这个语法的?

谢谢回答了。<br /><br />请问哪里有讲这个语法的?<br /><br />杜春雷的《ARM体系结构与编程》好象没有啊&nbsp;。
pigjiang 发表于 2007-1-8 10:18 | 显示全部楼层

李光驹有本写4510的书

网上有下载的.
pigjiang 发表于 2007-1-8 10:20 | 显示全部楼层

不一定要保定哪本书嘛,到google上一搜就有了.

  
John_light 发表于 2007-1-8 15:47 | 显示全部楼层

摘抄如下,不要问我从哪里来

<u>Local&nbsp;labels</u><br /><br />A&nbsp;local&nbsp;label&nbsp;is&nbsp;a&nbsp;number&nbsp;in&nbsp;the&nbsp;range&nbsp;0-99,&nbsp;optionally&nbsp;followed&nbsp;by&nbsp;a&nbsp;name.&nbsp;The&nbsp;same&nbsp;number&nbsp;can&nbsp;be&nbsp;used&nbsp;for&nbsp;more&nbsp;than&nbsp;one&nbsp;local&nbsp;label&nbsp;in&nbsp;an&nbsp;ELF&nbsp;section.<br /><br />Local&nbsp;labels&nbsp;are&nbsp;typically&nbsp;used&nbsp;for&nbsp;loops&nbsp;and&nbsp;conditional&nbsp;code&nbsp;within&nbsp;a&nbsp;routine,&nbsp;or&nbsp;for&nbsp;small&nbsp;subroutines&nbsp;that&nbsp;are&nbsp;only&nbsp;used&nbsp;locally.&nbsp;They&nbsp;are&nbsp;particularly&nbsp;useful&nbsp;in&nbsp;macros.<br /><br />You&nbsp;can&nbsp;use&nbsp;the&nbsp;same&nbsp;number&nbsp;for&nbsp;more&nbsp;than&nbsp;one&nbsp;local&nbsp;label&nbsp;even&nbsp;within&nbsp;the&nbsp;same&nbsp;scope.<br /><br />By&nbsp;default,&nbsp;the&nbsp;assembler&nbsp;links&nbsp;a&nbsp;local&nbsp;label&nbsp;reference&nbsp;to:<br />.&nbsp;the&nbsp;most&nbsp;recent&nbsp;local&nbsp;label&nbsp;of&nbsp;the&nbsp;same&nbsp;number,&nbsp;if&nbsp;there&nbsp;is&nbsp;one&nbsp;within&nbsp;the&nbsp;scope<br />.&nbsp;the&nbsp;next&nbsp;following&nbsp;local&nbsp;label&nbsp;of&nbsp;the&nbsp;same&nbsp;number,&nbsp;if&nbsp;there&nbsp;is&nbsp;not&nbsp;a&nbsp;preceding&nbsp;one&nbsp;within&nbsp;the&nbsp;scope.<br /><br />Use&nbsp;the&nbsp;optional&nbsp;parameters&nbsp;to&nbsp;modify&nbsp;this&nbsp;search&nbsp;pattern&nbsp;if&nbsp;required.<br /><br /><b>Syntax</b><br /><br />The&nbsp;syntax&nbsp;of&nbsp;a&nbsp;<u>local&nbsp;label</u>&nbsp;is:<br /><i>n{routname}</i><br />The&nbsp;syntax&nbsp;of&nbsp;a&nbsp;<u>reference&nbsp;to&nbsp;a&nbsp;local&nbsp;label</u>&nbsp;is:<br /><i>%{F|B}{A|T}n{routname}</i><br /><br />where:<br /><br />n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;the&nbsp;<u>number</u>&nbsp;of&nbsp;the&nbsp;local&nbsp;label.<br />routname&nbsp;is&nbsp;the&nbsp;<u>name</u>&nbsp;of&nbsp;the&nbsp;current&nbsp;scope.<br />%&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;introduces&nbsp;the&nbsp;reference.<br />F&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instructs&nbsp;the&nbsp;assembler&nbsp;to&nbsp;search&nbsp;<u>forwards</u>&nbsp;only.<br />B&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instructs&nbsp;the&nbsp;assembler&nbsp;to&nbsp;search&nbsp;<u>backwards</u>&nbsp;only.<br />A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instructs&nbsp;the&nbsp;assembler&nbsp;to&nbsp;search&nbsp;<u>all</u>&nbsp;macro&nbsp;levels.<br />T&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instructs&nbsp;the&nbsp;assembler&nbsp;to&nbsp;look&nbsp;at&nbsp;<u>this</u>&nbsp;macro&nbsp;level&nbsp;only.<br /><br />If&nbsp;neither&nbsp;F&nbsp;or&nbsp;B&nbsp;is&nbsp;specified,&nbsp;the&nbsp;assembler&nbsp;searches&nbsp;backwards&nbsp;first,&nbsp;then&nbsp;forwards.<br />If&nbsp;neither&nbsp;A&nbsp;or&nbsp;T&nbsp;is&nbsp;specified,&nbsp;the&nbsp;assembler&nbsp;searches&nbsp;all&nbsp;macros&nbsp;from&nbsp;the&nbsp;current&nbsp;level&nbsp;to&nbsp;the&nbsp;top&nbsp;level,&nbsp;but&nbsp;does&nbsp;not&nbsp;search&nbsp;lower&nbsp;level&nbsp;macros.<br /><br />从你给出的代码:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ldr&nbsp;&nbsp;r4&nbsp;,&nbsp;&nbsp;=0xff<br />01&nbsp;&nbsp;&nbsp;subs&nbsp;r4&nbsp;,&nbsp;r4&nbsp;,&nbsp;&nbsp;#0x01<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bne&nbsp;&nbsp;%b01<br />%b01的意思恐怕是向backwark搜索标号01
John_light 发表于 2007-1-8 15:50 | 显示全部楼层

晕,排了老半天还是很难看

  
XJC 发表于 2007-1-8 17:17 | 显示全部楼层

谢谢各位了。!

  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

xjc

15

主题

84

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部