第一范文网 - 专业文章范例文档资料分享平台

ARM的多寄存器寻址

来源:用户分享 时间:2026/8/25 1:08:28 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

ARM的多寄存器寻址

实验目的

? 熟悉使用ADS开发环境。

? 通过实验掌握ARM汇编指令的使用方法。 ? 理解ARM的多寄存器寻址方式。

实验设备

? 硬件:PC机。

? 软件:ADS集成开发环境,Windows 2000/XP/2003。

实验内容

? 熟悉开发环境,理解ARM的多寄存器寻址方式。

实验原理

寻址方式分类——多寄存器寻址

多寄存器寻址一次可传送几个寄存器值,允许一条指令传送16个寄存器的任何子集或所有寄存器。多寄存器寻址指令举例如下:

LDMIA R1!,{R2-R4,R6} ;将R1指向的单元中的数据读出到 ;R2~R4、R6中(R1自动加1)

STMIA R0!,{R2-R4,R6} ;将寄存器R2~R4、R6的值保 ;存到R0指向的存储; 单元中 ;(R0自动加1)

注意寄存器的编号连续和不连续的情况

寻址方式分类——堆栈寻址

堆栈是一个按特定顺序进行存取的存储区,操作顺序为“后进先出” 。堆栈寻址是隐含的,它使用一个专门的寄存器(堆栈指针)指向一块存储区域(堆栈),指针所指向的存储单元即是堆栈的栈顶。存储器堆栈可分为两种:

? 向上生长:向高地址方向生长,称为递增堆栈 ? 向下生长:向低地址方向生长,称为递减堆栈

寻址方式分类——块拷贝寻址

块拷贝是将寄存器内容复制到寄存器的地址所指示的存储器中,需要注意的是在存储第一个值之后存储器地址是增加还是减少.增值类型如下: IA---- 每次传送后,地址加4 IB---- 每次传送前,地址加4

DA—— 每次传送后,地址减4 DB—— 每次传送前,地址减4

实验步骤 实验参考程序

AREA Example1,CODE,READONLY ; 声明代码段Example1 ENTRY ; 标识程序入口

CODE32 ; 声明32位ARM指令 START stmfd r13!,{r0,r4-r7,lr} ldmfd r13!,{r0,r4-r7,pc} STOP MOV R0,#0x18 LDR R1,=0x20026 SWI 0x123456 END ;标记程序结束

实验结论

实验总结及心得体会

实验思考题

1.运行测试下面Load/Store指令,每条语句要求写注释说明寻址方式。有错误的地方请改正并说明原因.

ldmia r8,{r0,r5,r9}

stmdb r1!,{r3-r6,r11,r12} stmfd r13!,{r0,r4-r7,lr} ldmfd r13!,{r0,r4-r7,pc}

2.分析下列堆栈操作指令,写出对应的块操作指令. STMFD R0!,{R5-R6} . . .

LDMFD R0!,{R5-R6}

搜索更多关于: ARM的多寄存器寻址 的文档
ARM的多寄存器寻址.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c75okq50f7i5nrap1skk9_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top