汇编结构伪指令用于建立汇编程序的结构框架,常用的伪指令包括以下几条。上述常用属性中,ALIGN实际也是一个伪指令。例如:2.状态切换伪指令CODE16、CODE32格式:CODE16功能:CODE16伪指令通知编译器,其后的指令序列为16位Thumb指令。CODE32伪指令通知编译器,其后的指令序列为32位ARM指令。例如:4.程序结束伪指令END格式:END功能:END伪指令用于通知编译器已经到了源程序的结尾。......
2023-11-21
数据定义(Data Definition)伪指令用来为数据分配存储单元,建立变量和存储单元之间的联系,并可实现已分配存储单元的初始化。常见的数据定义伪指令有如下几种:
1.字节单元定义伪指令DCB
格式:标号 DCB 表达式
功能:DCB伪指令用于分配一片连续的字节存储单元并用伪指令中指定的表达式初始化。
注意:表达式可以为0~255的数字或字符串。DCB可用“=”代替。
例如:
2.半字单元定义伪指令DCW(或DCWU)
格式:标号 DCW(或DCWU) 表达式
功能:DCW(或DCWU)伪指令用于分配一片连续的半字存储单元并用伪指令中指定的表达式初始化。
注意:表达式可以为程序标号或数字表达式。用DCW分配的字存储单元是半字对齐的,而用DCWU分配的字存储单元并不严格半字对齐。
例如:
3.字单元定义伪指令DCD(或DCDU)
格式:标号 DCD(或DCDU) 表达式
功能:DCD(或DCDU)伪指令用于分配一片连续的字存储单元并用伪指令中指定的表达式初始化。
注意:表达式可以为程序标号或数字表达式。DCD可用“&”代替。用DCD分配的字存储单元是字对齐的,而用DCDU分配的字存储单元并不严格字对齐。
例如:
4.双精度数定义伪指令DCFD(或DCFDU)
格式:标号 DCFD(或DCFDU) 表达式
功能:DCFD(或DCFDU)伪指令用于为双精度浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化。每个双精度浮点数占据两个字单元。
注意:用DCFD分配的字存储单元是字对齐的,而用DCFDU分配的字存储单元并不严格字对齐。
例如:
5.单精度数定义伪指令DCFS(或DCFSU)
格式:标号 DCFS(或DCFSU) 表达式
功能:DCFS(或DCFSU)伪指令用于为单精度浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化。(www.chuimin.cn)
注意:每个单精度浮点数占据一个字单元。用DCFS分配的字存储单元是字对齐的,而用DCFSU分配的字存储单元并不严格字对齐。
例如:
6.双字单元定义伪指令DCQ(或DCQU)
格式:标号 DCQ(或DCQU) 表达式
功能:DCQ(或DCQU)伪指令用于分配一片以8字节为单位的连续存储区域并用伪指令中指定的表达式初始化。
注意:用DCQ分配的存储单元是字对齐的,而用DCQU分配的存储单元并不严格字对齐。
例如:
7.存储区域定义伪指令SPACE
格式:标号 SPACE 表达式
功能:SPACE伪指令用于分配一片连续的存储区域并初始化为0。
注意:表达式为要分配的字节数。SPACE可用“%”代替。
例如:
8.首地址定义伪指令MAP
格式:MAP 表达式{,基址寄存器}
功能:MAP伪指令用于定义一个结构化内存表的首地址。MAP可用“^”代替。
注意:表达式可以为程序中的标号或数学表达式,基址寄存器为可选项,当基址寄存器选项不存在时,表达式的值即为内存表的首地址;当该选项存在时,内存表的首地址为表达式的值与基址寄存器的和。MAP伪指令通常与FIELD伪指令配合使用来定义结构化内存表。
例如:
9.数据域定义伪指令FIELD
格式:标号 FIELD 表达式
功能:FIELD伪指令用于定义一个结构化内存表中的数据域。FIELD可用“#”代替。表达式的值为当前数据域在内存表中所占的字节数。
注意:FIELD伪指令常与MAP伪指令配合使用来定义结构化内存表。MAP伪指令定义内存表的首地址,FIELD伪指令定义内存表中的各个数据域,并可以为每个数据域指定一个标号供其他指令引用。此外,两个伪指令仅用于定义数据结构,并不实际分配存储单元。
例如:
有关嵌入式系统原理及应用:基于ARM Cortex-M4体系结构的文章
汇编结构伪指令用于建立汇编程序的结构框架,常用的伪指令包括以下几条。上述常用属性中,ALIGN实际也是一个伪指令。例如:2.状态切换伪指令CODE16、CODE32格式:CODE16功能:CODE16伪指令通知编译器,其后的指令序列为16位Thumb指令。CODE32伪指令通知编译器,其后的指令序列为32位ARM指令。例如:4.程序结束伪指令END格式:END功能:END伪指令用于通知编译器已经到了源程序的结尾。......
2023-11-21
汇编控制伪指令用于控制汇编程序的执行流程,常用汇编控制伪指令包括IF、ELSE、ENDIF、WHILE、WEND、MACRO、MEND、MEXIT。例如:2.循环控制伪指令WHILE、WEND格式:功能:该组伪指令能根据条件的成立与否决定是否循环执行某个指令序列。包含在MACRO和MEND之间的指令序列称为宏定义体。MACRO、MEND伪指令可以嵌套使用。4.宏退出伪指令MEXIT格式:MEXIT功能:MEXIT用于从宏定义中跳转出去。......
2023-11-21
GBLS伪指令用于定义一个全局的字符串变量,并初始化为空。例如:4.寄存器列表定义伪指令RLIST格式:名称RLIST{寄存器列表}功能:RLIST伪指令可用于对一个通用寄存器列表定义名称,使用该伪指令定义的名称可在ARM指令LDM/STM中使用。......
2023-11-21
STM32F4处理器的DAC模块是12位数字输入,属于电压输出类型。DAC可以配置为8位或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐或右对齐。DAC可以通过引脚输入参考电压Vref+以获得更精确的转换结果。STM32F4处理器的DAC模块主要特点如下:2个DAC转换器:每个转换器对应1个输出通道。双DAC通道同时或分别转换。每个通道都有DMA功能。单DAC通道有以下3种情况。12位数据左对齐:用户将数据写入DAC_DHR12Lx[15:4]位。......
2023-11-21
ARM微处理器已经遍及工业控制、消费类电子通信系统、网络系统、无线系统各类产品市场,基于ARM技术的微处理器应用占据了32位RISC微处理器80%以上的市场份额。ARM嵌入式技术在联网方面的优势,为弧焊电源实现网络化控制奠定了基础。ARM9可以达到180~200MHz的工作速率,它能驱动的周边装置比ARM7多,应用范围也比较广。ATMEL公司的AT91AM9200是基于ARM9的,具有丰富的接口功能。ARM芯片通信接口能力强,一般用于焊接过程及设备人机界面系统的核心芯片。......
2023-06-26
DAC模拟输出的配置过程需要使用STM32的库函数,函数定义在文件stm32f4××_dac.c和头文件stm32f4××_dac.h中。该函数中使用了参数设置结构体类型DAC_InitTypeDef,其定义如下:实例代码如下:4.使能DAC转换通道初始化DAC之后,就要使能DAC转换通道了,使用库函数的方法如下:5.设置DAC的输出值通过上述设置步骤,DAC就能开始工作了。第2个参数就是DAC的输入值了,初始化设置为0。......
2023-11-21
Keil MDK软件源自德国的KEIL公司,是RealView MDK的简称。MDK5.10版本使用μVision5集成开发环境,是针对ARM处理器,尤其是Cortex M内核处理器的最佳开发工具。Keil MDK软件的功能特点如下:完美支持Cortex-M、Cortex-R4、ARM7和ARM9系列器件。大量的项目例程帮助用户快速熟悉MDK-ARM强大的内置特征。符合Cortex微控制器软件接口标准。ARM公司负责的是芯片内核的架构设计,而芯片生产公司根据ARM公司提供的芯片内核标准设计自己的芯片。......
2023-11-21
相关推荐