20_ARM汇编自学笔记程序设计之汇编格式
2017-07-06 19:30
246 查看
在汇编语言程序中常用的符号
程序中的变量是指其值在程序的运行过程中可以改变的量
程序中的常量是指其值在程序的运行过程中不能被改变的量
程序中的变量可通过代换操作取得一个常量代换操作符为“$”。
汇编语言程序中的表达式和运算符
“+”、“-”、“×”、“/” 及“MOD”算术运算符
X:MOD:Y 表示 X 除以 Y 的余数。
“ROL”、“ROR”、“SHL”及“SHR”移位运算符
X:ROL:Y 表示将 X 循环左移 Y 位
“AND”、“OR”、“NOT”及“EOR”按位逻辑运算符
X:AND:Y 表示将 X 和 Y 按位作逻辑与的操作
“=”、“>”、“<”、“>=”、“<= ”、“/=”、“ <>” 运算符
“LAND”、“LOR”、“LNOT”及“LEOR”运算符
字符串最大长度为 512 字节。
LEN 运算符返回字符串的长度(字符数)
CHR 运算符将 0~255 之间的整数转换为一个字符
STR 运算符将将一个数字表达式或逻辑表达式转换为一个字符串
LEFT 运算符返回某个字符串左端的一个子串
RIGHT 运算符返回某个字符串右端的一个子串
CC 运算符用于将两个字符串连接成一个字符串
BASE 运算符返回基于寄存器的表达式中寄存器的编号,
INDEX 运算符返回基于寄存器的表达式中相对于其基址寄存器的偏移量
?运算符返回某代码行所生成的可执行代码的长度
DEF 运算符判断是否定义某个符号
汇编语言的程序结构
AREA Init,CODE,READONLY
ENTRY
Start
LDR R0,=0x3FF5000
LDR R1,0xFF
STR R1,[R0]
LDR R0,=0x3FF5008
LDR R1,0x01
STR R1,[R0]
┉┉
END
汇编语言的子程序调用
BL 子程序名
即可完成子程序的调用。
在调用子程序的同时,也可以完成参数的传递和从子程序返回运算的结果,通常可以使用寄存器 R0~R3 完成
AREA Init,CODE,READONLY
ENTRY
Start
LDR R0,=0x3FF5000
LDR R1,0xFF
STR R1,[R0]
LDR R0,=0x3FF5008
LDR R1,0x01
STR R1,[R0]
BL PRINT_TEXT
┉┉
PRINT_TEXT
┉┉
MOV PC,BL
┉┉
END
程序中的变量是指其值在程序的运行过程中可以改变的量
程序中的常量是指其值在程序的运行过程中不能被改变的量
程序中的变量可通过代换操作取得一个常量代换操作符为“$”。
汇编语言程序中的表达式和运算符
“+”、“-”、“×”、“/” 及“MOD”算术运算符
X:MOD:Y 表示 X 除以 Y 的余数。
“ROL”、“ROR”、“SHL”及“SHR”移位运算符
X:ROL:Y 表示将 X 循环左移 Y 位
“AND”、“OR”、“NOT”及“EOR”按位逻辑运算符
X:AND:Y 表示将 X 和 Y 按位作逻辑与的操作
“=”、“>”、“<”、“>=”、“<= ”、“/=”、“ <>” 运算符
“LAND”、“LOR”、“LNOT”及“LEOR”运算符
字符串最大长度为 512 字节。
LEN 运算符返回字符串的长度(字符数)
CHR 运算符将 0~255 之间的整数转换为一个字符
STR 运算符将将一个数字表达式或逻辑表达式转换为一个字符串
LEFT 运算符返回某个字符串左端的一个子串
RIGHT 运算符返回某个字符串右端的一个子串
CC 运算符用于将两个字符串连接成一个字符串
BASE 运算符返回基于寄存器的表达式中寄存器的编号,
INDEX 运算符返回基于寄存器的表达式中相对于其基址寄存器的偏移量
?运算符返回某代码行所生成的可执行代码的长度
DEF 运算符判断是否定义某个符号
汇编语言的程序结构
AREA Init,CODE,READONLY
ENTRY
Start
LDR R0,=0x3FF5000
LDR R1,0xFF
STR R1,[R0]
LDR R0,=0x3FF5008
LDR R1,0x01
STR R1,[R0]
┉┉
END
汇编语言的子程序调用
BL 子程序名
即可完成子程序的调用。
在调用子程序的同时,也可以完成参数的传递和从子程序返回运算的结果,通常可以使用寄存器 R0~R3 完成
AREA Init,CODE,READONLY
ENTRY
Start
LDR R0,=0x3FF5000
LDR R1,0xFF
STR R1,[R0]
LDR R0,=0x3FF5008
LDR R1,0x01
STR R1,[R0]
BL PRINT_TEXT
┉┉
PRINT_TEXT
┉┉
MOV PC,BL
┉┉
END
相关文章推荐
- 06_ARM汇编自学笔记指令系统之分类与格式
- 18_ARM汇编自学笔记程序设计之符号定义&数据定义伪指令
- 04_ARM汇编自学笔记模型之ARM 状态下的寄存器组织
- 10_ARM汇编自学笔记指令系统之乘法指令与乘加指令
- 05_ARM汇编自学笔记模型之程序状态寄存器
- 08_ARM汇编自学笔记指令系统之跳转指令
- 12_ARM汇编自学笔记指令系统之加载存储指令
- 02_ARM汇编自学笔记模型之ARM微处理器的工作状态
- 09_ARM汇编自学笔记指令系统之数据处理指令
- 15_ARM汇编自学笔记指令系统之移位指令(操作)
- 13_ARM汇编自学笔记指令系统之批量数据加载存储指令
- 11_ARM汇编自学笔记指令系统之程序状态寄存器访问指令
- 03_ARM汇编自学笔记模型之处理器模式
- 01_ARM汇编自学笔记之介绍
- 面向对象的程序设计-学习笔记-20-常量对象
- ARM汇编伪指令笔记
- C语言、windows程序设计、汇编笔记(很有用哦)
- ARM裸机程序开发15(伪指令,汇编语句格式,汇编变量常量)
- ARM汇编笔记之一
- ARM-LINUX-GCC汇编格式