• 汇编指令及其特点


    基础知识

    指令与伪指令

    汇编指令:CPU机器指令的助记符,编译后得到1和0组成的机器码,由CPU读取执行

    伪指令:本质上不是指令,由编译环境提供,目的在于指导编译过程,最终不会生成机器码

    不同的ARM风格

    ARM官方汇编风格:指令一般大写,windows IDE开发环境常用。(譬如:LDR、STR)

    GNU风格的ARM汇编:指令一般小写,linux中常用。(譬如:ldr、str)

    ARM汇编的特点

    ARM汇编特点1:LDR和STR架构

    ARM采用RISC架构,CPU不能直接读取内存,需要将内存内容加载到CPU通用寄存器才能被CPU处理。

    ldr(load register):将内存内容加载到通用寄存器    

    str(store register):将指令存取通用寄存器

    用ldr和str组合就能很好实现数据交换

    ARM汇编特点2:八种寻址方式

    寄存器寻址 mov r1, r2             //把r2存入r1
    立即寻址 mov r0, #0xFF00           //把后面的数字存入r0
    寄存器移位寻址 mov r0, r1, lsl #3      //把r1左移3位后存入r1
    寄存器间接寻址 ldr r1, [r2]        //把r2这个内存地址所对应的值赋值给r1
    基址变址寻址 ldr r1, [r2, #4]       //把r2+4后的内存地址多对应的值存入r1
    多寄存器寻址 ldmia r1!, {r2-r7, r12}   //把r1到r7以及r12依次存在r1,r2,r3,r4,r5,r6,r7,r12
    堆栈寻址 stmfd sp!, {r2-r7, lr}      //把堆栈SP中的内容依次存在r2,r3,r4,r5,r6,r7,lr中
    相对寻址   beq flag           //跳转到标号flag
         flag:     

    ARM汇编特点3:指令后缀

    同一指令经常附带不同后缀,变成不同的指令。

    经常使用的后缀有:

    B(byte)功能不变,操作长度变为8位

    H(half word)功能不变,长度变为16位      //由于我们在32位系统中,依次操作32位的效率是最高的,所以一般用ldr

    S(signed)功能不变,操作数变为有符号 如 ldr ldrb ldrh ldrsb ldrsh   

    S(S标志)功能不变,影响CPSR标志位 如 mov和movs movs r0, #0

    ARM汇编特点4:条件执行后缀

    无后缀:mov r0, r1

    有后缀:moveq r0, r1    //如果eq后缀成立则执行mov r0, r1,如果不成立则本句代码作废

    注意:(1)条件执行后缀是否成立,不是取决于本句代码,而是取决于之前代码执行的结果

       (2)条件后缀决定了本句代码是否执行,而不会影响上一句和下一句代码是否被执行

    常用的一般就是EQ(equal)、NE(not equal)、GT(great than)、LT(less than)

    ARM汇编特点5:多级指令流水线

     

    为了让CPU处理起来更加的具有效率,CPU往往是一边执行指令的同时就在提前读取下面的指令了,对于三级流水线,以ARM为例子,在32位系统中,一条指令刚好4个字节。

    举例分析:假设有三条指令地址为:0xd002_0040、0xd002_0044、0xd002_0048

    当前已经执行到0xd002_0040,为了保证运行流畅高效,实际上CPU指令指针PC已经指向0xd002_0048了,开始做准备工作了。所以对应的,他们的地址分别为:PC-8和PC。

  • 相关阅读:
    详解ASP.NET中获取小程序二维码图片的操作<后端>
    ASP.NET 后台上传图片
    使用Js在前台画二维码
    在网页上点击图片打开一个新页面显示大图
    C# 使用RabbitMQ消息队列
    Git如何拉取指定远程分支
    win10专业版激活方法
    基于.Net Core3.1 MVC + EF Core的项目(一)框架的初步搭建
    session未过期就丢失的原因以及处理方式
    DES加密和base64加密
  • 原文地址:https://www.cnblogs.com/jxjl/p/6971323.html
Copyright © 2020-2023  润新知