Note that there are some explanatory texts on larger screens.

plurals
  1. POnasm sum of real number array, assembly
    text
    copied!<p>this is an extension to my previous post, here is the updated code, so far it will ouput the last number I inputed into the array, so it's not actually summing values yet</p> <pre><code>;*************************************ADD ARRAY********************************************** segment .bss sum resq 1 segment .data summessage db "The Sum is: ", 0 segment .text extern readdouble,print_string, read_int, writedouble, print_nl, print_int global addarray addarray: pusha mov edi, 0 ;initialize counter to 0 mov esi, 0 ;initialize accum to 0 ;mov ecx, 0 ;zero out ecx and edx ;mov edx, 0 mov ebx, [ebp] ;moves starting location of array1 into ebx mov edi, [ebp+12] ;moves array size add_loop: mov ecx, [ebx] ;mov higher order mov edx, [ebx+4] ;mov lower order push ecx push edx fldz fld qword [esp] ;The second input is now in a floating point register, specifically st0. pop dword ecx pop dword edx ;The first input is now on top of the system stack (the stack addressed by bytes) fadd qword [esp] ;The first input is added to the second input and the sum ;replaces the second input in st0 add ebx,8 inc esi cmp edi, esi jz add_done jmp add_loop add_done: call print_nl mov eax, summessage ;Setup to display a message call print_string ;Dr. Carter's library push dword 0 ;Make space on sytem stack for the sum value push dword 0 ;Ditto fst qword [esp] ;Copy contents of st0 to space currently on top of the system stack pop edx ;Copy 4 MSBs to ecx pop ecx ;Copy 4 LSBs to ecx call writedouble ;Show the 8-byte value call print_nl ;Newline popa ret </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload