网站大量收购闲置独家精品文档,联系QQ:2885784924

江苏大学通信工程ARM指令系统教学课件.ppt

  1. 1、本文档共141页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
江苏大学通信工程 ARM指令系统 ARM指令系统 简介 ARM指令集与Thumb指令集的关系 3.1 ARM处理器寻址方式 寻址方式分类 寻址方式分类—寄存器寻址 寻址方式分类—立即寻址 寻址方式分类—寄存器移位寻址 寻址方式分类—寄存器间接寻址 寻址方式分类—基址寻址 寻址方式分类—多寄存器寻址 寻址方式分类—堆栈寻址 寻址方式分类—堆栈寻址 寻址方式分类—堆栈寻址 寻址方式分类—堆栈寻址 寻址方式分类—块拷贝寻址 寻址方式分类—相对寻址 ARM指令系统 简单的ARM程序 ARM指令格式 第2个操作数 第2个操作数 第2个操作数 第2个操作数 第2个操作数 第2个操作数 第2个操作数 条件码 条件码 存储器访问指令 ARM数据处理指令 乘法指令 乘法指令 乘法指令 乘法指令 乘法指令 乘法指令 乘法指令 乘法指令 乘法指令 分支指令 分支指令编码 分支指令 分支指令 分支指令 分支指令 分支指令 分支指令 协处理器指令 协处理器指令 杂项指令 ARM伪指令 5.2.5 ARM汇编程序实例 例1.数据块复制 例2.数据简单运算 数据块复制 例1:程序将数据从源数据区src复制到目标数据区dst复制时,以8个字为单位进行。对于最后所剩不足8个字的数据,以字为单位进行复制,这时程序跳转到copywords处执行。在进行以8个字为单位的数据复制时,保存了所用的8个工作寄存器。 在ADS编译环境下,程序如下: 数据块复制汇编程序实例 AREA B1ock,CODE,READONLY ;设置本段程序的名称及属性 NUM EQU 20 ;设置将要复制的字数 ENTRY ;标识程序人口点 LDR R0,=src ;R0寄存器指向源数据区src LDR R1,=dst ;Rl寄存器指向目标数据区dst MOV R2,# NUM ;R2指定将要复制的宇数 MOV SP,#400 ;设置数据栈指针,用于保存工作寄存器数值 Bcopy MOVS R3,R2,LSR #3 ;需要进行的以8个字为单位的复制次数 BEQ Cwotd ;不足8个字的数据,跳转到Cword以字为单位复制 STMFD SP!,{R4-R11} ;保存工作寄存器 Ocopy LDMIA R0!,{R4-R11} ;从源数据区读取8个字的数据,放到8个寄 ;存器中,并更新目标数据区指针R0 STMIA R1!,{R4-R11} ;将这8个字数据写入到目标数据区中并更新 ;目标数据区指针R1 SUBS R3,R3,#l ;将块复制次数减l BNE Ocopy ;循环,直到完成以8个字为单位的块复制 LTMFD SP!,{R4-R11} ;恢复工作寄存器值 数据块复制汇编程序实例 Cword ANDS R2,R2,#7 ;剩下不足8个字的数据的字数 BEQ stop ;数据复制完成 Wcopy LDR R3,[R0],#4 ;读取剩下的数据放到R3 ,并更新目标数据区指针R0 STR R3,[R1],#4 ;将这R3中数据写入到目标数据区中 ;并更新目标数据区指针R1 SUBS R2,R2,#l ;将字数减l BNE Wcopy ;循环,直到完成以字为单位的数据复制 Stop ;程序结束处理 MOV R0,#0x18 ;本条与下条指令的作用是参数传递 LDR R1,=20026 SWl 0x123456 ;将CPU的控制权交给调试器 AREA Bdata,DATA,READWRITE ;定义数据区Bdata src DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,?,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 ;这里的DCD定义源数据区src及目标数据区dst END ;结束汇编 数据简单运算 例2:编写程序循环对R4-R11进行累加8次起始值,R4-R11起始值分别为1~8,每次累加操作后把R4-R11的内容放入SP堆栈中,SP初始设置为0最后把R4-R1

文档评论(0)

xingyuxiaxiang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档