ARM编程时数据类型的影响

发布者:电竞狂人最新更新时间:2019-11-13 来源: 51hei关键字:ARM  编程  数据类型 手机看文章 扫描二维码
随时随地手机看文章

这是我今天下午看那本<嵌入式系统开发——软件设计与优化>>所学到的东西。前面的关于ARM核的指令我就不讲了,只说下今天看的关于怎么提高C编程的效率,我还只看了那基本数据类型的定义时所应该要注意的事项,前面我在一篇<>已提到过内存的数据进入ARM核时要经过一个符号扩展,也就是说一个不足32位的数据经过内核会被扩展成32位的,那么我们在编程时就要注意咯,具体有以下几个方面:


1)我们如果在程序中定义了一个字符性的变量,那么编译器会对这个变量进行一个判别,就是这个字符变量值超过了255没,这样势必会增加一条指令,而我们如果用unsignedint,则可以省去那条多余的指令,

2)如果程序中有关于数组的操作时,我们尽量要用指针来操作,为什么呢,因为编译器对数组它分两条指令来实现数组的地址偏移,而用指针,它其实就是一个地址,偏移当然一条指令就够拉。

3)如果我们程序中有不同数据类型的数据直接运算时,这时我们要避免这种现象的发生,因为它会另外生成一条语句来实现数据位数的扩展,所以我们可以在他们计算完后,再统一用一条符号强制命令进行转换。

4)在进行乘除法运算时,如果变量能够用无符号型的,就不要用有符号的,因为无符号的运算在进行除法和乗法运算时编译器会尽量通过右移来实现,这样处理速度快

关键字:ARM  编程  数据类型 引用地址:ARM编程时数据类型的影响

上一篇:ARM内部逻辑结构见解
下一篇:u-boot 第一阶段启动流程

推荐阅读最新更新时间:2024-11-09 21:26

采用ARM架构装置 微软移动装置执行PC软件成真
微软(Microsoft)宣布旗下Windows 10操作系统将正式引进采ARM架构装置,未来该公司将与高通(Qualcomm)合作,推出采高通Snapdragon处理器芯片且可执行完整Windows 10的装置。评论认为,最快预计2017年便有厂商可推出相关产品。 据MSPoweruser报导,微软开放Windows 10可在ARM架构装置上执行后,将带来许多机会。首先,因为ARM现代化架构,让处理器可耗电少并在执行时温度较低,因此许多方面上比传统英特尔(Intel)芯片表现性能佳。 另外,即使ARM相较高阶英特尔处理器略逊一筹,但此举等于已迈出第一步,让OEM厂最早可在2017年便可推出采Snapdragon处理器的W
[手机便携]
ARM 中 LDR伪指令
我们知道ARM CPU中有一条被广泛使用的指令LDR,它主要是用来从存储器(确切地说是地址空间)中装载数据到通用寄存器。但不论是ARMASM还是GNU ARM AS,都提供了一条与之同名的伪指令LDR,而在实际中使用该伪指令的情况也较多,那他们有什么不同呢?下面我谈谈我的理解。 由于我使用GNU工具链,所以以下的内容都以GNU AS的ARM语法为准。 LDR伪指令的语法形式如下: LDR reg , = constant-expression 这个常量表达式 constant-expression 中可以包含Label(在ARM汇编中Label会在连接时解释为一个常数),且其中的常数前不加#符号。
[单片机]
模拟比较器的c语言编程
//***************FileName:Capature.C***************// //***************ICCAVR V6.30编译*****************// #include io8535v.h #define uchar unsigned char #define uint unsigned int void main(void) {uchar i; DDRB=0xf0; //设置PB7输出,PB3~PB2输入 PORTB=0x00; ACSR=0x00; //模拟比较器使能 while(1) {if((ACSR&0x20
[单片机]
51 汇编语言编程:求最大、最小值的乘积
;求 MCS51 内部RAM 的 40H~4FH 中 16 个数据中最大值和最小值的积。 ;其中最大值和最小值分别放到 50H 和 51H 中,积的低位和高位分别放到 52H 和 53H 中。 ;求最大、最小值,再相乘,做而论道编写出来了程序,将在后面列出。 ;为了进行验证,提问者需要准备 16 个数据,然后再执行做而论道编写的程序。 ;那么,综合到一起的程序如下: ORG 0000H ;---------------------下面是在 40H~4F 中,随意写 16 个数据 MOV 40H, #5 MOV 41H, #32 MOV 42H, #34 MOV 43H, #67 M
[单片机]
PLC编程案例:S7-1500与两台S7-1200 Profinet IO通讯
1. 新建项目,添加CPU 1511C-1 PN。添加新子网 PN/IE_1,设置IP:192.168.254.150 2.切换到网络视图,从右边 硬件目录 中添加控制器 CPU1217 。 3.选中CPU1217切换到 设备视图 。双击CPU网口,选中 以太网地址 ,在 子网 中选择 PN/IE_1 ,设置IP:192.168.254.152 。选中 操作模式 勾选 IO设备 ,在 已分配的IO控制器 中选择 PLC1.profinet 接口_1 ,设置 智能设备通讯 如图: 切换到 网络视图 发现已建立好 PLC1.profinet IO 连接。 4.在 网络视图 中,从右边 硬件目录 中添加控制器 CPU121
[嵌入式]
PLC<font color='red'>编程</font>案例:S7-1500与两台S7-1200 Profinet IO通讯
ARM汇编语言入门(二)
数据类型 与高级编程语言类似,ARM也支持操作不同的数据类型。 我们载入(load)或存储(store)的数据类型可以是有符号或无符号的字、半字或字节。这些数据类型的扩展符是:-h或-sh代表半字,-b和-sb代表字节,其中字没有扩展符号。有符号和无符号的区别: 有符号数据类型可以存储正数和负数,因此表示的值范围更小。 无符号数据类型可以存储大的正数(包含0),不能存储符数因此可以表示更大的数。 载入和存储指令使用数据类型: ldr = Load Word ldrh = Load unsigned Half Word ldrsh = Load signed Half Word ldrb = Load unsigned
[单片机]
新手必看,关于ARM的22个常用概念
  文章具体介绍了关于ARM的22个常用概念。 1.ARM中一些常见英文缩写解释   MSB:最高有效位;   LSB:最低有效位;   AHB:先进的高性能总线;   VPB:连接片内外设功能的VLSI外设总线;   EMC:外部存储器控制器;   MAM:存储器加速模块;   VIC:向量中断控制器;   SPI:全双工串行接口;   CAN:控制器局域网,一种串行通讯协议;   PWM:脉宽调制器;   ETM:嵌入式跟踪宏;   CPSR:当前程序状态寄存器;   SPSR:程序保护状态寄存器;   2.MAM 使用注意事项:   答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM
[单片机]
Arm 全面设计助力 Arm 架构生态发展,构建可持续 AI 数据中心
Arm 全面设计 (Arm Total Design) 生态项目推出一年来,成员规模翻倍,推动了全球芯片创新 Arm、三星晶圆代工厂 (Samsung Foundry) 、ADTechnology 和 Rebellions 合作开发基于 Neoverse CSS V3 的 AI CPU 芯粒 (chiplet) 平台,应用于云、高性能计算 (HPC) 以及人工智能/机器学习 (AI/ML) 训练和推理 安国国际科技 (Alcor Micro) 和 Alphawave 推出基于台积公司工艺的全新芯粒,用于打造可持续 AI 数据中心 近日, Arm 控股有限公司 (以下简称 Arm) 分享了 Arm 全面设计生态项目推出
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved