MDK下ARM伪指令

伪指令是用于告诉汇编程序如何进行汇编的指令。这里指的是MDK下的伪指令与GNU下的伪指令不一样。

 

一、常见伪指令

【area】定义一个代码段或者数据段

格式:area  段名 属性1,属性2……

段名:code:代码段、data:数据段

属性:readonly:只读、readwrite、align[4] 4字节对齐、code32  4字节、code16

【entry】汇编程序的入口点,

一个完整的汇编程序至少要有一个entry,一个文件中最多有一个entry,也可以没有,如果有多个entry,由链接器指定哪个是程序的入口点

【end】程序的结尾

【EQU】定义一个变量,相当于c语言中的define

【export】声明一个全局的标号

【import】通知编译器,要使用的标号在其他的源文件中定义,相当于c语言中的extern 

 

二、符号定义伪指令

gbla 、gbll 、gbls、

GBLA伪操作声明一个全局的算术变量,并将其初始化为0。

GBLL伪操作声明一个全局的逻辑变量,并将其初始化成{FALSE}。

GBLS伪操作声明一个全局的串变量,并将其初始化为空串""。

 

lcla、lcll  、lcls

GBLA伪操作声明一个局部的算术变量,并将其初始化为0。

GBLL伪操作声明一个局部的逻辑变量,并将其初始化成{FALSE}。

GBLS伪操作声明一个局部的串变量,并将其初始化为空串""。

seta 、setl 、sets

设置变量具体值

示例代码如下:

gbla  test1

test1 seta  0xaa

gbll test2

test2 setl {true}

gbls test3

test3 sets  "testing"

 

dcb 、dcw 、dcd 、dcfd 、dcfs 、dcq 、space 、map filed

dcb  类似于定义一个char数组,用于分配一片连续的字节存储单元,

space  类似于mallocfen分配一片连续的内存区域并初始化为0

filed  类似于一个结构体

其他暂时不必了解。

三、控制伪指令

【IF】

if 逻辑表达式

指令序列

else

指令序列

Endif

 

【while】

while

指令语句

wend

 


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值