微机原理与嵌入式系统 chapter_4_ARM7TDMI汇编语言程序.ppt
上传人:qw****27 上传时间:2024-09-12 格式:PPT 页数:75 大小:2.7MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

微机原理与嵌入式系统 chapter_4_ARM7TDMI汇编语言程序.ppt

微机原理与嵌入式系统chapter_4_ARM7TDMI汇编语言程序.ppt

预览

免费试读已结束,剩余 65 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第4章ARM7TDMI汇编语言程序设计第4章目录第4章目录1.汇编语言的基本概念2.汇编语言汇编语言(AssemblyLanguage)是一种面向物理层操作的计算机语言,是一种采用助记符表示的程序设计语言,使用助记符来表示指令的操作码和操作数,用标号或符号代表地址、常量或变量。3.高级语言高级语言(HighLevelLanguage)是脱离具体机器(即独立于机器)的通用语言,不依赖于特定计算机的结构与指令系统。第4章目录2.ARM汇编程序的组成与结构stopMOVR0,#0x18;程序运行结束返回编译器调试环境LDRR1,=0x20026SWI0x123456AREABlockData,DATA,READWRITE;数据段的名字BlockDataSrcDCD1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4DstDCD0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0AREA|.extra|,NOINIT,READWRITE;未初始数据段的名字.extradataSPACE1024END;文件结束ARM汇编器的伪操作4.2ARM汇编器的伪操作4.2.1符号定义伪操作1.全局变量声明GBLA、GBLL和GBLS例4.7使用示例2.LCLA、LCLL和LCLS例4.8使用示例:3.SETA、SETL和SETS例4.9使用示例:4.2.2数据定义伪操作1.DCB2.DCW(DCWU)3.DCD(或DCDU)使用示例:4、DCFD(或DCFDU)语法格式:标号DCFD(或DCFDU)表达式DCFD(或DCFDU)伪指令用于为双精度的浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化。每个双精度的浮点数占据两个字单元如:FDataTestDCFD2E115,-5E7;分配一片连续的字存储单元并初始化为指定的双精度数。5、DCFS(或DCFSU)语法格式:标号DCFS(或DCFSU)表达式DCFS(或DCFSU)伪指令用于为单精度的浮点数分配一片连续的字存储单元并用伪指令中指定的表达式初始化。每个单精度的浮点数占据一个字单元。6、DCQ(或DCQU)语法格式:标号DCQ(或DCQU)表达式DCQ(或DCQU)伪指令用于分配一片以8个字节为单位的连续存储区域并用伪指令中指定的表达式初始化。如:DataTestDCQ100;分配一片连续的存储单元并初始化为指定的值。7、SPACE语法格式:标号SPACE表达式SPACE伪指令用于分配一片连续的存储区域并初始化为0。其中,表达式为要分配的字节数。SPACE也可用“%”代替。使用示例:DataSpaceSPACE100;分配连续100字节的存储单元并初始化为0。8、MAP语法格式:MAP表达式{,基址寄存器}MAP伪指令用于定义一个结构化的内存表的首地址。MAP也可用“^”代替。表达式可以为程序中的标号或数学表达式,基址寄存器为可选项,当基址寄存器选项不存在时,表达式的值即为内存表的首地址,当该选项存在时,内存表的首地址为表达式的值与基址寄存器的和。MAP伪指令通常与FIELD伪指令配合使用来定义结构化的内存表。使用示例:MAP0x100,R0;定义结构化内存表首地址的值为0x100+R0。9、FIELD语法格式:标号FIELD表达式FIELD伪指令用于定义一个结构化内存表中的数据域。FILED也可用“#”代替。表达式的值为当前数据域在内存表中所占的字节数。FIELD伪指令常与MAP伪指令配合使用来定义结构化的内存表。MAP伪指令定义内存表的首地址,FIELD伪指令定义内存表中的各个数据域,并可以为每个数据域指定一个标号供其他的指令引用。注意MAP和FIELD伪指令仅用于定义数据结构,并不实际分配存储单元。使用示例:MAP0x100;定义结构化内存表首地址的值为0x100。AFIELD16;定义A的长度为16字节,位置为0x100BFIELD32;定义B的长度为32字节,位置为0x110SFIELD256;定义S的长度为256字节,位置为0x1304.2.3汇编控制伪操作(1)IF、ELSE、ENDIF语法格式:IF逻辑表达式指令序列1ELSE指令序列2ENDIFIF、ELSE、ENDIF伪指令能根据条件的成立与否决定是否执行某个指令序列。当IF后面的逻辑表达式为真,则执行指令序列1,否则执行指令序列2。其中,ELSE及指令序列2可以没有,此时,当IF后面的逻辑表达式为真,则执行指令序列1,否则继续执行后面的指令。IF、ELSE、ENDIF伪指令可以嵌套使用。使用示例:GBLLTest;声明一个全局的逻辑变量,变量名为Test……IF