用ARM汇编实现64位数据的运算
2014-04-03 19:51
381 查看
R0和R1分别存放一个64位操作数的低32位和高32位,
R2和R3分别存放另一个64位操作数的低32位和高32位。
一、64位操作数的加法运算
ADDS R4,R0,R2
ADC R5,R1,R3
ADDS指令中,R4=R0+R2,且是否有进位会影响到CPSR寄存器中的C标志位;
ADC指令R5=R1+R3+C,这样,R4和R5就存放了64位和值的低32位和高32位。
二、64位操作数的减法运算
SUBS R4,R0,R2
SBC R5,R1,R3
SUBS指令中,R4=R0-R2,如果发生借位,则C=0【这和ADDS指令相反】;
SBC指令R5=R1-R3-C标志位的反码。
三、求64位操作数的负数
RSBS R2,R0,#0 ;R2=-R0,且发生了借位,则C标志位为0.
RSC R3,R1,#0 ;R3=-R1-C的反码【此处为1】
来自:http://blog.sina.com.cn/s/blog_6238e8790100nx7h.html
R2和R3分别存放另一个64位操作数的低32位和高32位。
一、64位操作数的加法运算
ADDS R4,R0,R2
ADC R5,R1,R3
ADDS指令中,R4=R0+R2,且是否有进位会影响到CPSR寄存器中的C标志位;
ADC指令R5=R1+R3+C,这样,R4和R5就存放了64位和值的低32位和高32位。
二、64位操作数的减法运算
SUBS R4,R0,R2
SBC R5,R1,R3
SUBS指令中,R4=R0-R2,如果发生借位,则C=0【这和ADDS指令相反】;
SBC指令R5=R1-R3-C标志位的反码。
三、求64位操作数的负数
RSBS R2,R0,#0 ;R2=-R0,且发生了借位,则C标志位为0.
RSC R3,R1,#0 ;R3=-R1-C的反码【此处为1】
来自:http://blog.sina.com.cn/s/blog_6238e8790100nx7h.html
相关文章推荐
- 用ARM汇编实现64位数据的运算
- ARM汇编实现简单的加法运算
- ARM汇编程序---通过LDMFD/STMFD实现R0-R6寄存器的数据的交换
- ARM汇编程序---通过LDMFD/STMFD实现R0-R6寄存器的数据的交换
- ARM指令--adc 实现64位加法运算
- ARM汇编程序---用ARM汇编实现R0寄存器中数据调换数据
- ARM汇编模块内部数据访问初步分析
- ARM 汇编实现简单的向量乘
- 数据结构——c语言描述 第三章 (2)栈的练习(四则运算的实现)
- ARM汇编程序---通过ARM汇编实现累加一个队列的所有元素
- thinkphp 如何在模板里面实现控制器数据算术运算
- 汇编语言实现偏移量二进制倒序并与原偏移量下数据交换
- 自定义函数实现字符串中数据的运算和统计2
- 使用类的重载实现不同数据类型之间的运算
- 猴子分食桃子 ARM 汇编实现
- 数据结构——只用赋值、自增和循环操作实现减法运算
- Arm 汇编实现 快速排序算法
- 从 Arm 汇编看 Android C++虚函数实现原理
- C++编程->汇编内联实现加法运算
- ubuntu arm-linux-gcc 的安装 64位设置兼容32位的实现