Page is a not externally linkable
- Hardware and OS Related Technologies
-- Linux, Unix, and *nix like Operating Systems
---- Sparc Assembly Help!


matticus1181 - 10:45 pm on Dec 2, 2007 (gmt 0)


Thanks for the quick response. This is what I had come up with before:


.section ".data"
format: .asciz "%s%c"
displayformat: .asciz "%d\n"
prompt1: .asciz "Enter first number (100 digit max): "
prompt2: .asciz "Enter second number (100 digit max): "
sDisplaySum: .asciz "\nThe sum is: %d"
sDisplayDiff: .asciz "\nThe difference is: %d"
nl: .byte '\n'


.align 4
.section ".bss"
input1: .skip 4 * 50
input2: .skip 4 * 50
sum: .skip 4 * 50
diff: .skip 4 * 50


.align 4
findSumDiff:
save %sp, -96, %sp!can not be leaf b/c must call validate subroutine


!use a loop to continue to load .words and check each time to see if %l1 and %l2 are 0
!use addxcc and
mov 0, %l3!set byte counter to loop


set input1, %l0!load first 32 bits to add
ld [%l0 + %l3], %l1!first number


set input2, %l0!load first 32 bits to add
ld [%l0 + %l3], %l2!second number


addcc %l1, %l2, %l4!does first add and sets the carry flag


set sum, %l5
st %l4, [%l5 + %l3]!store the first part of the sum into memory


add %l3, 4, %l3!increment counter


addloop:
set input1, %l0!loads the next 32 bits of first number
ld [%l0 + %l3], %l1


set input2, %l0!loads the next 32 bits of second number
ld [%l0 + %l3], %l2


addxcc %l1, %l2, %l4!adds in carry to the addition, adds, then sets the flag again


set sum, %l5
st %l4, [%l5 + %l3]!store the first part of the sum into memory


add %l3, 4, %l3!increments counter again


cmp %l3, 200
bne addloop
nop


ret
restore

I was thinking I was having a problem with the load and store part of things... What do you think?


Thread source:: http://www.webmasterworld.com/linux/3518860.htm
Brought to you by WebmasterWorld: http://www.webmasterworld.com