ARM汇编程序---通过LDMFD/STMFD实现R0-R6寄存器的数据的交换
2012-11-26 23:40
597 查看
交换规则如下:
![](http://img.my.csdn.net/uploads/201211/26/1353944324_7782.jpg)
具体思路:
在此题中是不实用其他的寄存器从而解决问题,所以此时我们就可以将这些数据先通过LDMFD(过后增加)指令保存到堆栈里面,然后再通过LDMFD(过后增加)和STMFD来进行数据的交换。我再进行存储了数据以后又用了STMFD操作是因为经过是一个操作堆栈的指针已经指向了堆栈的最后,所以此时用STMFD操作可以将堆栈的指针指向堆栈的开始位置。然后载经过LDMFD操作实现寄存器的数据的交换。
ARM代码:
![](http://img.my.csdn.net/uploads/201211/26/1353944324_7782.jpg)
具体思路:
在此题中是不实用其他的寄存器从而解决问题,所以此时我们就可以将这些数据先通过LDMFD(过后增加)指令保存到堆栈里面,然后再通过LDMFD(过后增加)和STMFD来进行数据的交换。我再进行存储了数据以后又用了STMFD操作是因为经过是一个操作堆栈的指针已经指向了堆栈的最后,所以此时用STMFD操作可以将堆栈的指针指向堆栈的开始位置。然后载经过LDMFD操作实现寄存器的数据的交换。
ARM代码:
AREA HOMEWORK4,CODE,READWRITE ENTRY START LDR SP,=DATA LDMFD SP!,{R0-R6} STMFD SP!,{R0-R6} LDMFD SP!,{R3} LDMFD SP!,{R4} LDMFD SP!,{R6} LDMFD SP!,{R5} LDMFD SP!,{R0} LDMFD SP!,{R1} LDMFD SP!,{R2} STOP B STOP DATA DCD 0,1,2,3,4,5,6
相关文章推荐
- ARM汇编程序---通过LDMFD/STMFD实现R0-R6寄存器的数据的交换
- ARM汇编程序---通过ARM汇编调用C语言函数实现累加
- ARM汇编程序---通过ARM汇编调用C语言函数实现累加
- ARM汇编程序---通过ARM汇编实现累加一个队列的所有元素
- ARM汇编程序---用ARM汇编实现R0寄存器中数据调换数据
- Lua和C程序通过一个堆栈交换数据
- 关于双核通信通过共享内存交换数据ARM端程序的学习
- 通过js实现2个select控件的交换数据
- 利用汇编语言编程实现通过堆栈交换ax,bx的大小
- 通过广播实现简单数据交换前后台数据交换BroadcastReceiver
- 通过友元函数实现两个不同类中私有成员变量的数据交换
- 通过内存映射实现进程间数据交换
- 图形的绘制,如何使用自定义画笔(颜色,线宽,线形)。如何为程序中添加选项菜单和选项设置对话框,如何使用标准颜色对话框,如何使用字体对话框,在选项对话框中实现预览功能。实现选项对话框和窗口类中的数据交换。如何改变对话框和控件的背景色,如何改变控件的文本颜色,
- ARM汇编程序---C语言调用ARM汇编实现字符串的拷贝
- 用ARM汇编实现64位数据的运算
- 通过xalan实现关系型数据库到XML的数据交换
- ARM汇编程序---ARM汇编实现简单判断环习题
- ARM汇编程序---C语言调用ARM汇编实现字符串的拷贝
- 异构数据库之间实现数据交换(通过咏南中间件)
- 通过xalan实现关系型数据库到XML的数据交换