arm裸机学习预备知识一:arm汇编及机器码

本文介绍了ARM汇编指令的基础知识,包括ldr、str、mov、sub、add、b和bl等,并详细讲解了ldr的伪指令用法。同时,文章阐述了机器码的概念,说明了如何从反汇编代码中获取机器码,并以mov指令为例,解析了机器码的格式和立即数的处理方式。
摘要由CSDN通过智能技术生成

注:以下学习内容学习于韦东山老师arm裸机第一期教程

   

    一.常用arm汇编指令

        1.1 ldr,读地址指令

            ldr R0,[R1]

           假设R1的值是x,那么这条语句:读地址x上的数据(4字节),保存到R0中

        

        1.2 str,写地址指令

            str R0,[R1]

           假设R1的值是x,把R0的值写到地址x(4字节)

        

        1.3 mov

            mov R0,R1

          把R1的值赋给R0,R0 = R1

          mov R0,#0x100(#后面表示是一个立即数) R0 = 0x100

        

        1.4 ldr ,伪指令

            ldr R0, = 0x12345678

          R0 = 0x12345678

            这是一条伪指令,它会被拆分为几条真正的ARM指令

            因为如果写入 mov R0,#0x12345678 是一条错误指令

            因为32位的arm指令,肯定会有一些字节表示mov指令本身,有一些位表示R0,剩下的不足32位,不能够保存任意的值,只能够保存简单值,也被称为立即数。 (0x100就是简单值)                                    

            因此引入伪指令ldr R0, = 0x12345678(注意有个等号,与读内存时不同),这条指令会被拆分成真正的arm指令。

            例如下面的代码
          

                
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值