本文作为本人学习过程中的记录及时不时的突发奇想偶记。鄙人菜鸟一只,文中如有错误或疏漏,若读者肯不吝赐教,在下感激零涕。文章一直不断更新中

一、汇编语言

  汇编语言是一种应用计算机、微处理器、微控制器或其它可编程器件的低级语言(符号语言)。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号带图指令或操作数的地址。特定的汇编语言和特定的机器指令集是一一对应的,不同平台之间不可移植。

  特点:①操作的不是具体的数据而是寄存器或者存储器。所以速度相较于处理数据为主的高级语言要快。

     ②在不同平台、处理器架构间移植性差,程序编写兼顾软硬件,书写复杂。

  

二、汇编语言 指令集和不同处理器架构的关系

指令集(不同处理器平台可以识别的一套汇编指令)架构决定了处理器如何识别汇编语言,以及如何同上层进行通信。
   
   处理器架构的异同在识别了汇编语言之后,例如在一个处理器中设计三个ALU,在一个周期里执行三次加法运算

ARM是RICS结构处理器

三 X86架构微处理器的寄存器说明
   eax ebx ebp esp..都是x86的通用寄存器的名称。
   EAX:累加器
   EBX:是基地址寄存器。
   ESP:专用做堆栈指针,也称栈顶指针。

四、常见汇编指令(arm架构)
   (一)、数据的存储、读取指令

  1. LDR   r0,[pc,#520] ;@0x08001070     // ARM指令集- 字数据加载指令:存储器→寄存器,从存储器地址pc+520处读取数据加载到r0寄存器中。
        LDRB 字节数据加载指令 /  LDRH - 半字数据加载指令 

    2. STR  r0,[r1]  ;  //ARM指令集 - 字数据存储指令 : 存储器→寄存器, 将寄存器r0中的数据存放到以r1为地址的存储器中。

  (二)、跳转指令

  在ARM程序中实现程序跳转有两种方式,一种是使用跳转指令 :B / BL / BLX / BX;另一种方式是直接在程序计数器PC指针中直接写入要跳转目的地址的值。

  1.B Label ;    // ARM处理器跳转到给定的地址并执行。

  2.BL Label;  //处理器跳转到给定的地址,并将当前PC的地址保存到R14寄存器中,实现跳转后的程序返回。是实现子程序的一种通常手段。

  3.BLX Label; // 功能同2,且将处理器的工作状态由ARM状态切换到Thumb状态。用于实现主程序和子程序应用不同指令集的状况。

  4.BX Label; //目标既可以是ARM指令,也可以是Thumb指令。

  (三)、特殊功能寄存器的访问     xPSR /PRIMASK / FAULTMASK / BASEPRI / CONTROL

  1.MRS R0 , BASEPRI     ;读取BASEPRI到R0中

  2.MSR PRIMASK,R0   ;写r0总的内容到PRIMASK中

  (四)、

    IMPORT 表示该标号是一个外部变量的标号

    EXPORT 表示标号是在本文件中定义

    EQC  定义一个宏(类似define)
  2.MOV指令
      汇编语言中的传递立即数指令。格式: MOV AX 2000H //将十六位数据2000H放到AX寄存器中
      (更多格式和用法  https://zhidao.baidu.com/question/391946699.html )

1.汇编指令介绍(arm)的更多相关文章

  1. 浅析VS2010反汇编 VS 反汇编方法及常用汇编指令介绍 VS2015使用技巧 调试-反汇编 查看C语言代码对应的汇编代码

    浅析VS2010反汇编 2015年07月25日 21:53:11 阅读数:4374 第一篇 1. 如何进行反汇编 在调试的环境下,我们可以很方便地通过反汇编窗口查看程序生成的反汇编信息.如下图所示. ...

  2. ARM常用汇编指令介绍

    b     跳转指令(跳转范围为32Mb) bl    带返回地址的跳转,指令自动将下一条指令的地址复制到R14寄存器,然后跳转到指定地址去执行,执行完后返回到下一条指令处执行 pc    寄存器R1 ...

  3. 常用ARM汇编指令

    常用ARM汇编指令 [日期:2012-07-14] 来源:Linux社区  作者:xuyuanfan77 [字体:大 中 小]     在嵌入式开发中,汇编程序常常用于非常关键的地方,比如系统启动时初 ...

  4. 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)

    作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137 转载请著名出处 本博客相关文档下载 :  -- AR ...

  5. ARM体系结构和汇编指令

    第一节 可编程器件的编程原理 1. 可编程器件的特点 1 . CPU在固定频率的时钟控制下节奏运行 2 . CPU可以通过总线读取外部存储设备中的二进制指令集,然后解码执行 3 . 这些可以被CPU解 ...

  6. ARM汇编指令调试方法

    学习ARM汇编时,少不了对ARM汇编指令的调试.作为支持多语言的调试器,gdb自然是较好的选择.调试器工作时,一般通过修改代码段的内容构造trap软中断指令,实现程序的暂停和程序执行状态的监控.为了在 ...

  7. ARM 汇编指令

    ARM汇编程序特点: l         所有运算处理都是发生通用寄存器(一般是R0~R14)的之中.所有存储器空间(如C语言变量的本质就是一个存储器空间上的几个BYTE).的值的处理,都是要传送到通 ...

  8. ARM汇编指令(未完待续)

    ARM指令自己在看的时候,看完之后就忘了,根本记不住,而且有些ARM汇编指令在平常的时候可能根本就用不到,所以也没必要把所有的ARM指令都去记忆,所以自己就想着不去一遍一遍的复习ARM指令,而是在平常 ...

  9. 经常使用ARM汇编指令

    一面学习,一面总结,一面记录. 以下是整理在网上找到的一些资料,简单整理记录一下,方便以后查阅. ARM处理器的指令集能够分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.载入/存储指令. ...

随机推荐

  1. Logo的制作

    <style> header { width: 1300px; height: 100px; /* background-color: pink; */ margin: 0 auto; p ...

  2. 如何更改Apache的根目录指向

    更改Apache的默认网站根目录地址方法如下: 0,先找到主目录下的apache文件,然后进行下面操作 1.找到 DocumentRoot “X:/Apache/htdocs” 将“X:/Apache ...

  3. lesson9-小象学院cv

    www.sohu.com/a/159976204_717210 生成模型:基于联合概率~共生关系判别模型:基于条件概率~因果关系 生成模型之学习数据分布:1)概率密度函数估计 2)数据样本生成 模型目 ...

  4. C#并发编程之异步编程2

    C#并发编程之异步编程(二)   写在前面 前面一篇文章介绍了异步编程的基本内容,同时也简要说明了async和await的一些用法.本篇文章将对async和await这两个关键字进行深入探讨,研究其中 ...

  5. NodeServices

    NodeServices https://www.cnblogs.com/stulzq/p/10535310.html 一.前言 在 .NET Framework 时,我们可以通过V8.NET等组件来 ...

  6. java中实现Comparable接口实现自定义排序

    class Student implements Comparable{ String name; int gpa; @Override public int compareTo(Object arg ...

  7. 铁三测试题——权限、你是管理员吗?——WP

    权限 [题目描述]:你是管理员吗? [解题链接]:http://ctf4.shiyanbar.com/web/root/index.php 首先看题,提到“权限”,“管理员”,这就是说涉及到管理员的账 ...

  8. YIT-CTF—密码学

    一.哼哼 小猪生活的地方在哪里? 看题目联想到是猪圈加密 二.卢本伟 LOL我只服五五开 ๑乛◡乛๑babbababaababbababaaababaaaaaaabaaa 更具提示“五五开”,再看到这 ...

  9. 【HDOJ2767】【Tarjan缩点】

    http://acm.hdu.edu.cn/showproblem.php?pid=2767 Proving Equivalences Time Limit: 4000/2000 MS (Java/O ...

  10. easyui表单校验

    痛苦使人清醒,痛苦使人警惕.生于忧患,死于安乐.付出总会有回报. 1.下面跟大家分享使用easyui时表单中的值如何校验. 1.1 首先,在你的jsp/html页面引入JQuery和easyui的js ...