bl指令为什么不跳转呢?

[复制链接]
2066|2
 楼主| rxg10000 发表于 2008-9-11 15:37 | 显示全部楼层 |阅读模式
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AREA&nbsp;&nbsp;&nbsp;&nbsp;StrCopy,&nbsp;CODE,&nbsp;READONLY<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENTRY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;mark&nbsp;the&nbsp;first&nbsp;instruction&nbsp;to&nbsp;call<br /><br />start<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r1,&nbsp;=srcstr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;pointer&nbsp;to&nbsp;first&nbsp;string<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;=dststr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;pointer&nbsp;to&nbsp;second&nbsp;string<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcopy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;call&nbsp;subroutine&nbsp;to&nbsp;do&nbsp;copy<br /><br />stop<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r0,&nbsp;#&18&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;angel_SWIreason_ReportException<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r1,&nbsp;=0x20026&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;ADP_Stopped_ApplicationExit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SWI&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x123456&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;ARM&nbsp;semihosting&nbsp;SWI<br /><br /><br />strcopy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDRB&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;[r1],#1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;load&nbsp;byte&nbsp;and&nbsp;update&nbsp;address<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STRB&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;[r0],#1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;store&nbsp;byte&nbsp;and&nbsp;update&nbsp;address;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r2,&nbsp;#0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;check&nbsp;for&nbsp;zero&nbsp;terminator<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BNE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcopy&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;keep&nbsp;going&nbsp;if&nbsp;not<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pc,lr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;Return<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AREA&nbsp;&nbsp;&nbsp;&nbsp;Strings,&nbsp;DATA,&nbsp;READWRITE<br />srcstr&nbsp;&nbsp;DCB&nbsp;&quot;First&nbsp;string&nbsp;-&nbsp;source&quot;,0<br />dststr&nbsp;&nbsp;DCB&nbsp;&quot;Second&nbsp;string&nbsp;-&nbsp;destination&quot;,0<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;END<br />以上是一条字符串拷贝程序,<br />程序执行到BL&nbsp;&nbsp;strcopy后,没有跳转到strcopy处,而是继续执行下一条语句(stop),请问为什么?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 楼主| rxg10000 发表于 2008-9-11 16:02 | 显示全部楼层

如果在要跳转的子函数里加一个断点就可以

真是奇怪了,如果在子函数里面加一个断点就可以跳转过去,这是为什么呢?
zouboan 发表于 2010-10-21 00:14 | 显示全部楼层
你使用的是单步步过,执行到strcop后再下一步执行完子函数后又出来了!
若在子函数里设置单点,进入子函数后就停在子函数里面了!所以这时候看见它
跳进去了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

1

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