Advertisement
Ladies_Man

#NUP ADD_256_BE (Intel) rk2

Jun 10th, 2014
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .model flat
  2. .code
  3.  
  4. ;Add256BE (c, a, b)
  5. ;c = a + b
  6. ;typedef int256_x int[8]
  7. ;Big-Endian
  8.  
  9. public func
  10. func proc c public
  11.     push ebp
  12.     mov         ebp, esp
  13.     push esi
  14.     push ebx
  15.            
  16.     mov edx, 8[ebp]     ;c
  17.     mov ebx, 12[ebp]    ;a
  18.     mov esi, 16[ebp]    ;b
  19.  
  20. ;   mov ecx, 6
  21. ;loop:  mov eax, [ebx+ecx*04h]
  22. ;   adc eax, [esi+ecx*04h]
  23. ;   mov [edx+ecx*04h], eax
  24. ;   каждый раз декремент/пуш  
  25.  
  26.     mov eax, 28[ebx]    ;eax=a[7]
  27.     add eax, 28[esi]    ;+b[7]
  28.     mov 28[edx], eax    ;c[7]=a[7]+b[7]
  29.    
  30.     mov eax, 24[ebx]    ;eax=a[6]
  31.     adc eax, 24[esi]    ;+b[6]
  32.     mov 24[edx], eax    ;c[6]=a[6]+b[6]
  33.  
  34.     mov eax, 20[ebx]    ;5
  35.     adc eax, 20[esi]   
  36.     mov 20[edx], eax
  37.  
  38.     mov eax, 16[ebx]    ;4
  39.     adc eax, 16[esi]   
  40.     mov 16[edx], eax
  41.  
  42.     mov eax, 12[ebx]    ;3
  43.     adc eax, 12[esi]   
  44.     mov 12[edx], eax
  45.  
  46.     mov eax, 8[ebx]     ;2
  47.     adc eax, 8[esi]
  48.     mov 8[edx], eax
  49.  
  50.     mov eax, 4[ebx]     ;1
  51.     adc eax, 4[esi]
  52.     mov 4[edx], eax
  53.  
  54.     mov eax, [ebx]      ;0
  55.     adc eax, [esi] 
  56.     mov [edx], eax 
  57.  
  58.     pop ebx
  59.     pop esi
  60.     mov eax, 16[esp]
  61.     pop ebp
  62.     ret
  63. func endp
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement