当前位置: 首页 > news >正文

做网站订金为什么需要交那么多深圳网站维护

做网站订金为什么需要交那么多,深圳网站维护,PHP MySQL 网站开发实例,网站源码文件ARM汇编概述 一开始,ARM公司发布两类指令集: ARM指令集,这是32位的,每条指令占据32位,高效,但是太占空间。Thumb指令集,这是16位的,每条指令占据16位,节省空间。 要节…

ARM汇编概述

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

  1. ARM指令集,这是32位的,每条指令占据32位,高效,但是太占空间。
  2. Thumb指令集,这是16位的,每条指令占据16位,节省空间。

要节省空间时用Thumb指令,要效率时用ARM指令。

一个CPU既可以运行ARM指令,也可以运行Thumb指令。
怎么区分当前指令是Thumb还是ARM指令呢?
程序状态寄存器中有一位,名为“T”,它等于1时表示当前运行的是Thumb指令。

假设函数A是使用Thumb指令下的,函数B是使用ARM指令写的,怎么调用A/B?
我们可以往PC寄存器里写入函数A或B的地址,就可以调用A或B。
但是怎么让CPU在执行A函数时进入Thumb状态,在执行B函数时进入ARM状态?

做个手脚:
调用函数时A时,让PC寄存器的BIT0等于1,即PC=函数A地址+(1<<0);
调用函数时B时,让PC寄存器的BIT0等于0,即PC=函数B地址;

引入Thumb2指令集,支持16位指令、32位指令混合编程。

ARM公司推出了:Unified Assembly Language UAL,统一汇编语言,不需要去区分这些指令集。

UAL汇编格式为:
Operation {cond} {S} Rd, Rn, Operand2

  • Operation表示各类汇编指令,比如ADD、MOV。
  • cond表示condition,即该指令执行的条件。
  • S表示该指令执行后,会修改程序状态寄存器。
  • Rd为目的寄存器,用来存储运算的结果。
  • Rn、Operand2是两个源操作数。

立即数

MOV R0,#VAL

意思是把VAL这个值存入R0寄存器。
VAL可以是任意值吗?
不可以,必须是立即数。
假设VAL可以任意数,“MOV R0,#VAL”本身16位或32位,哪来的空间保存任意数值的VAL,所以VAL必须符合某些规定。
在这里插入图片描述

LDR伪指令

去判断一个VAL是否是立即数,麻烦,并且就是想把任意数值赋给R0,怎么办?
可以使用伪指令:LDR R0,=VAL
伪指令就是假的,不存在的指令。
LDR作为伪指令时,指令中有一个=,否则它就是真的LDR指令了。

编译器会把伪指令替换成真实的指令,比如:
LDR R0,=0x12
0x12是立即数,那么替换为 MOV R0,#0x12

LDR R0,=0x12345678
0x12345678不是立即数,替换为
Label DCD 0x12345678 //编译器在程序某个地方保存这个值
LDR R0,[PC,#offser] //使用Load Register读内存指令读出值,offset是链接程序时确定的。

ADR伪指令

用来读某个标号的地址

ADR R0,LoopLoopADD R0,R0,#1

它是伪指令,会被转换成某条真实的指令。

ARM编译器与GCC编译器语法差异

在这里插入图片描述
低位存放在低地址,小字节序(little endian)。
高位存在低地址,大字节序(big endian)。

程序处理的4个步骤

在这里插入图片描述
main.c经过预处理后生成main.i,经过编译后形成汇编文件.s
汇编文件经过汇编后得到目标文件,多个目标文件链接生成.elf可执行程序(含有机器码),可执行程序再经过反汇编后生成汇编代码.dis。

汇编:把汇编文件转换成目标文件(里面是机器码)
反汇编:把可执行文件(目标文件,里面是机器码),转换成汇编文件

KEIL下怎么反汇编?
在 KEIL的User选项中,添加这两项:
在这里插入图片描述
上电后:
设置栈:CPU会从0x08000000读取值,用来设置SP
跳转:CPU会从0x08000004得到地址值,根据它的BIT0切换到ARM状态或者Thumb状态,然后跳转。
对于Cortex M3/M4,仅支持Thumb状态,所以0x08000004上的值bit0必定是1。
0x08000004上的值 = Reset_Handler+1
从Reset_Handler上继续执行

http://www.hkea.cn/news/87405/

相关文章:

  • 网站做二维码吗做网站的外包公司
  • 郑州市中原区疫情最新消息上海网站营销seo方案
  • 狂人站群系统中国最权威的网站排名
  • 简单网站开发实例网站运营工作的基本内容
  • 飞机免费代理ip爱站网seo综合查询工具
  • 河南焦作有做网站开发的公司吗巩义网络推广公司
  • 邓州做网站网络广告有哪些形式
  • 爬闪数媒 网站建设网站建站流程
  • 网站建设广州白云百度统计app下载
  • 惠州短视频seoseowhy论坛
  • 肇庆网站快速排名优化温州seo排名公司
  • 北京疫情死亡人数最新消息王通seo赚钱培训
  • 北京做网站的外包公司营销策划方案案例范文
  • 专业做酒店网站关键词优化排名软件流量词
  • 做网站推广代理上海网络推广服务
  • wordpress可以做大吗搜索引擎优化的英语简称
  • 民治专业做网站公司中国企业500强排行榜
  • 潍坊 公司 网站seo点击排名器
  • 网站可以做赌博广告建站宝盒
  • 运城市做网站英文seo外链
  • 江宁网站建设如何建立网上销售平台
  • 淄博企业网站建设有限公司搜索引擎关键词竞价排名
  • 网站的优点企业专业搜索引擎优化
  • 哪里有软件开发培训机构无锡seo培训
  • 网站怎么做反链seo是什么品牌
  • 技术型网站做哪一种好软文范例大全100
  • 百度搜索什么关键词能搜到网站seo高效优化
  • 网站搭建分站需要多少钱互联网营销策划
  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用