您的位置 首页 电源

GNU ARM汇编–(十二)arm汇编指令的B真的那么简略吗?

说句题外话,在输入指令二字的时候,就想起了google搜索时,提示令不能搜索,要我换词汇如果不能说脏话,我真就无语了在

说句题外话,在输入“指令”二字的时分,就想起了google查找时,提示“令”不能查找,要我换词汇.假如不能说脏话,我真就无语了.

在前面临详细芯片的各个根本模块做完了学习后,在上一篇小结中自以为现已具有了自己写个bootloader的条件,但其实错了,我还有许多根本的常识不了解.比方编译链接gnu的linker script等等.也有许多当地只懂外表,没有做深化的了解.

在《GNU ARM汇编–(二)汇编编译链接与运转》中,模仿网上的比如做了makefile和linker script,在那篇blog的结尾我写道“依据google,做了上面的总结,对GNU ARM汇编有了知道,并且对体系调用软中止,中止处理,uboot反常向量表等等有了探求的愿望,也对elf格局和编译链接有了爱好,依据自己的方向和精力,后续对这些内容做一个或深或浅的学习.”

其时看到了《linker and loader》,仅仅保存了,其时并没有细看,作为一个程序员,其实许多时分咱们并不明白程序的细节.就像台湾有个黑客关于“hello world”的剖析,最初看了他的”hello world”系列ppt,就发现本来简略的hello world里边有这么多不为人知的细节.

这些天翻看了《linker and loader》的前面几节,也翻了《程序员的自我涵养–链接装载和库》,通读了gnu.org的ld相关文档linker script.自己还对gnu的这个文档的大部分做了翻译,在自己的笔记本上写了许多页,一根笔芯也用了多半,并且让我有了久别写字写到手酸的感觉.觉得收成不少.引荐去看看,值得的.

废话了这么多,这篇blog我倒不想写linker script或许ELF的一些细节.我想深究一下arm汇编指令中的B指令.

许多网上的帖子都讨论过arm汇编指令的B和LDR,这儿我依照我的思路来:

首要翻一下《ARM ArchitectureReference Manual》这份肯定威望的手册:

看完上面的英文,再结合下面的实践比如做个照应:

代码如下:

[html]view plaincopy

  1. _start:breset
  2. ……
  3. reset:
  4. ……

反汇编如下:

[cpp]view plaincopy

  1. 10000000<_start>:
  2. 10000000:ea00000eb10000040
  3. ……
  4. 10000040:

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/258062.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部