第4章_基于ARM7系列的汇编语言程序设计汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5
3. 高级语言
高级语言(High Level Language)是 脱离具体机器(即独立于机器)的通用语 言,不依赖于特定计算机的结构与指令系 统。 特点是由于高级语言程序不用考虑机器 的结构特点,因而它不能充分利用CPU所 具有的某些特性,并且编译器生成的目标 程序往往比较冗长,占有较多的内存空间, 执行时间也比较长。
AREA BlockData, DATA, READWRITE ; 数据段的名字BlockData
Src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4
Dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
data
AREA |.extra|, NOINIT, READWRITE ; 未初始数据段的名字.extra
ARM7汇编程序所支持的常量可以分 为数值常量、逻辑常量、字符串常量 和和字符常量。
14
4.2.3 变量
变量就是在程序运行过程中可以改变 的量。通过定义变量可以简化程序的 表达,增加程序的可读性,方便对程 序进行修改,便于交流与记忆。
SPACE 1024
END 声明文件结束 ; 文件结束
8
4.1.2 ARM7汇编语言程序框架
来自百度文库:
➢ ARM汇编程序由段组成(程序段、数据段); ➢ 段是由汇编器伪指令AREA定义的相对独立程序
块; ➢ 段的属性:READONLY(只读)或READWRITE
(读写)分别用于定义一个代码段或数据段;
9
4.1.2 ARM7汇编语言程序框架
标识符(标号):
➢ (用途)用来表示指令的地址、数据的地址、变 量、过程名和常量;
➢ (组成)标号是一个自行设计的字母数字串,通 常以字母开头,由字母、数字、下划线等组成;
➢ (注意1)标号不能与寄存器名、指令助记符、 伪指令(操作)助记符等 “关键字” 同名;
➢ (注意2)标号必须在一行的开头书写,不能留 空格;
10
4.1.2 ARM7汇编语言程序框架
ARM汇编语言程序中,有一些特殊的指令助记 符,称为汇编器伪指令。它们无论表示形式或其 在程序中所处的位置,都与指令相似,但二者之 间有着重要的区别。
指令是供CPU执行的操作命令,每条指令对应 CPU的一种特定操作,在用户代码运行期间执 行;而汇编器伪指令是供汇编器处理的命令,在 汇编过程中由汇编器进行处理,例如定义数据、 分配存储区、定义段、定义宏等;
4.1.1 汇编语言的基本概念 4.1.2 ARM7汇编语言程序框架
2
4.1.1 汇编语言的基本概念
计算机语言
语言是信息的传播载体。 计算机语言是计算机可以识别、理解的
语言。 不同的应用场合和应用目的,有不同的系 统描述需求,派生出了多种计算机语言。 按照形式与功能的不同可分为三类,即机 器语言、汇编语言和高级语言。
汇编以后,汇编器伪指令不产生与之对应的目标 代码。
11
4.2 ARM7汇编语言程序中的符号
4.2.1 4.2.2 4.2.3
符号命名规则 常量 变量
12
4.2.1 符号命名规则
在汇编语言程序设计中,经常使用各种符号表 示变量、常量和地址等,以增加程序的可读性。 在编制符号名时,必须遵循以下的约定:
第4章 基于ARM7系列的 汇编语言程序设计
➢ 1. ARM7汇编语言程序结构格式 ➢ 2. ARM7汇编语言程序中的符号 ➢ 3. ARM7汇编器伪指令 ➢ 4. ARM7汇编语言程序的上机过程 ➢ 5. ARM7汇编语言程序设计 ➢ 6.C语言和ARM7汇编语言的混合/交叉编程
1
4.1 ARM7汇编语言程序结构格式
• 符号由大小写字母、数字以及下划线组成; • 符号区分大小写,同名的大、小写符号会被汇编器认为是
两个不同的符号; • 符号在其作用范围内必须惟一,即在其作用范围内不可有
同名的符号;且符号名不得与系统中保留字相同; • 符号名不应与指令或伪指令同名。
13
4.2.2 常量
常量就是程序中出现的那些固定值, 也就是说其值在程序的运行过程中不 能被改变,除了自身的值以外,没有 其他属性的数值。
6
4.1.2 ARM7汇编语言程序框架
;文件名:TEST1.S
;功能使:用实“现字;符”串进拷行贝注功释能
;说明:使用ARMulate软件仿真调试
AREA Example1,CODE,READONLY ;声明代码段Example1
num EQU 20
;设置拷贝字的个数
ENTRY
;标识程序入口
CODE32
;声明32位ARM指令
START LDR R0, =src
; R0指向源数据块
LDR R1, =dst
MOV标号顶R2格, 写#num
; R1指向目的数据块 ; R2需要拷贝的数据个数
wordcopy
LDR R3, [R0], #程4 序;代从码源段数据块中取一个字,放入R3中,
; R0=R0+4
STR R3, [R1], #4 ; 将R3中的数据存入R1指向的存储
3
1. 机器语言
机器语言(Machine Language)是由 0和1二进制代码表示和存储的指令与 数据。
优点是能被机器直接识别与执行;程序 所占内存空间较少。
缺点是难认、难记、难编、易错。
4
2. 汇编语言
汇编语言(Assembly Language)是一种面 向物理层操作的计算机语言,是一种采用助记符 表示指令的程序设计语言。 汇编语言中使用助记符来表示指令的操作码和 操作数,用标号或符号代表地址、常量或变量。 特点是不同的处理器类型,具有不同的汇编语 言。汇编语言程序能够直接利用硬件系统的特性 (如寄存器、标志、中断系统等),可直接对位、 字节、字寄存器或存储单元、I/O端口进行处理, 同时也能直接使用CPU指令系统提供的各种寻址 方式,编制出的程序不但占用内存空间少,而且 执行速度快。
; 单元中,R1=R1+4
SUBS R2, R2, #1 ; R2计数器减1
BNE wordcopy
; 如果R2不为0,则转向wordcopy处
7
4.1.2 ARM7汇编语言程序框架
stop MOV LDR SWI
R0, #0x18
; 程序运行结束返回编译器调试环境
R1, =0x20026
0x123456
相关文档
最新文档