在程序设计中一个最常规的存在就是变量的操作,无论是循环控制、逻辑运算、条件判断都必不可少的要用到变量操作
在汇编中其实也是和其他语言的程序不会有很大的区别的,变量的赋值、运算 都是很常见的应用
这里就针对arm汇编的变量给出一个基本的操作方法
arm汇编中全局变量声明的关键字有这么几个
GBLA ( GBLL 或 GBLS ) 全局变量名
GBLA 、 GBLL 和 GBLS 伪指令用于定义一个 ARM 程序中的全局变量,并将其初始化。其中:
GBLA 伪指令用于定义一个全局的数字变量,并初始化为 0 ;
GBLL 伪指令用于定义一个全局的逻辑变量,并初始化为 F (假);
GBLS 伪指令用于定义一个全局的字符串变量,并初始化为空;
arm汇编中关于局部变量的初始化
LCLA ( LCLL 或 LCLS ) 局部变量名
LCLA 、 LCLL 和 LCLS 伪指令用于定义一个 ARM 程序中的局部变量,并将其初始化。其中:
LCLA 伪指令用于定义一个局部的数字变量,并初始化为 0 ;
LCLL 伪指令用于定义一个局部的逻辑变量,并初始化为 F (假);
LCLS 伪指令用于定义一个局部的字符串变量,并初始化为空;
arm汇编中关于变量初始化
变量名 SETA ( SETL 或 SETS ) 表达式
伪指令 SETA 、 SETL 、 SETS 用于给一个已经定义的全局变量或局部变量赋值。
SETA 伪指令用于给一个数学变量赋值;
SETL 伪指令用于给一个逻辑变量赋值;
SETS 伪指令用于给一个字符串变量赋值;
最后给一个变量和while循环的例子出来给大家参参考吧
GBLA COU ;声明变量
COU SETA 0x0 ;变量初始化
;MMU_TABLE_INIT DCD mmu_table
mmu_table
WHILE COU = 0xa;循环条件的判定
ldr r0,=0x0
HH r0,0,0,0,0
LDR r1,"COU";变量值的导入
SUB r1 ,#1
STR COU,r1 ;变量存储
;ldr COU ,r1
WEND ;循环结束
原文:http://blog.csdn.net/weiwei_xiaoyu/article/details/23780431