Thursday, May 26, 2016

8051 Program - signed 32bit addition

; subroutine ADD32
; 32-Bit Signed (2's Complement) Addition
; input: r3, r2, r1, r0 = X
; r7, r6, r5, r4 = Y
; output: r3, r2, r1, r0 = signed sum S = X + Y
; Carry C is set if the result (S) is out of range
; alters: acc, C, OV

ADD32:anl PSW, #0E7H ;Register Bank 0
mov a, r0 ;load X low byte into acc
add a, r4 ;add Y low byte
mov r0, a ;save result
mov a, r1 ;load X next byte into acc
addc a, r5 ;add Y next byte with carry
mov r1, a ;save result
mov a, r2 ;load X next byte into acc
addc a, r6 ;add Y next byte
mov r2, a ;save result
mov a, r3 ;load X high byte into acc
addc a, r7 ;add Y high byte with carry
mov r3, a
mov C, OV

Source: Maths Subroutines for the 8051 microcontroller, W.G.Marshall 2002

Related topics:
8051 Program - signed 16bit addition   |   8051 Program - signed 16bit subtraction   |   8051 Program - signed 32bit subtraction   |   8051 Program - signed 8bit multiplication   |   8051 Program - unsigned 8bit multiplication   |   8051 Program - memory subroutines   |   8051 Program - math subroutines   |   8051 Program - conversion subroutines

List of topics: 8051

No comments:

Post a Comment