ARM架构学习笔记2-汇编

RISC是精简指令集计算机(RISC:Reduced Instruction Set Computing)

ARM汇编概述

一开始,ARM公司发布两类指令集:

① ARM指令集,这是32位的,每条指令占据32位,高效,但是太占空间 2 Thumb指令集,这是16位的,每条指令占据16位,节省空间 要节省空间时用Thumb指令,要效率时用ARM指令。

一个CPU既可以运行Thumb指令,也能运行ARM指令。

怎么区分当前指令是Thumb还是ARM指令呢?

程序状态寄存器中有一位,名为“T',它于1时表示当前运行的是Thumb指令。 假设函数A是使用Thumb指令写的,函数B是使用ARM指令写的,怎么调用A/B? 我们可以往PC寄存器里写入函数A或B的地址,就可以调用A或B. 但是怎么让CPU在执行A函数是进入Thumb状态,在执行B函数时进入ARM状态? I 做个手脚: 调用函数A时,让PC寄存器的BITO等于1,即: PC=函数A地址+(1<<0); 调用函数B时,让PC寄存器的BITO等于0:,即: PC=函数B地址 麻烦吧?

麻烦! 引入Thumb2指令集. 它支持16位指令、32位指令混合编程。

汇编分类:

1、内存R/W

2 、运算

3、跳转/分支

4、比较

指令集:指令的结合

分类

1、ARM:32位

2、Thumb:16位

3、Thumb-2

安装调试模拟器

发现错误

修改

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-04-06 06:22:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-06 06:22:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-06 06:22:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-06 06:22:01       18 阅读

热门阅读

  1. 什么是Ajax?怎么使用?

    2024-04-06 06:22:01       12 阅读
  2. 达梦体系结构:内存架构

    2024-04-06 06:22:01       14 阅读
  3. 数据结构--最长公共前缀

    2024-04-06 06:22:01       10 阅读
  4. js中Promise的常见用法 比如resolve、race都是啥意思

    2024-04-06 06:22:01       13 阅读
  5. Go语言中创建HTTP客户端

    2024-04-06 06:22:01       16 阅读
  6. ChatGPT新手指南:如何应用于学术论文撰写

    2024-04-06 06:22:01       17 阅读
  7. ChatGPT写作指南:制作精彩学术论文的关键

    2024-04-06 06:22:01       12 阅读
  8. 发挥ChatGPT潜能,打造引人注目学术论文

    2024-04-06 06:22:01       12 阅读