编写ARM汇编程序,完成两个64位数相加,结果存放在NUM单元

编写ARM汇编程序,完成两个64位数相加,结果存放在NUM单元,第1张

MOV R0 #X第一个睁裤让立即数悉局的低32位

MOV R1 #Y第二个立即数的低32位

ADD R2 R1 R0;低位相加

MOV R0 #X>>32第一个立即数的高32位

MOV R1 #Y>>32第二纯答个立即数的高32位

ADC R1 R0;带进位的高位相加

MOV R0 #NUM内存单元NUM地址送入R0

STR R2 [R0];存储低32位结果

STR R1 [R0,#32];存储高32位结果

.global _start

.text

.arm

_start:

MOV R0,#0x10

MOV R1,#0x1000000A

MOV R2,#0x00

MOV R3,#0x9000000D @ 给第一个128位数赋初值

MOV R4,#0x10

MOV R5,#0x1000000A

MOV R6,#0x00

MOV R7,#0x9000000D @ 给第二个128位数赋档兄初值

ADDS R0,R4,R0 @ 最低32位相加,御行结果保存到R0

ADCS R1,R5,R1 @ 次低32位带进位相加,结行拆袭果保存到R1

ADCS R2,R6,R2 @ 次高32位带进位相加,结果保存到R2

ADCS R3,R7,R3 @ 最高32位带进位相加,结果保存到R2

MOV R4,#0 @ R4的值改为零

ADC R4,R4,#0 @ R4接受最高32相加的进位

Stop:

B Stop

.end

当然,这是128位无符号整数加法 GNU ARM 汇编 修改一下就行


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12405347.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存