Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .586
  2. .model flat, stdcall
  3. ExitProcess PROTO, dwExitCode:DWORD
  4.  
  5. include \Irvine\Irvine32.inc
  6. includelib \Irvine\kernel32.lib
  7. includelib \Irvine\user32.lib
  8. include module.inc
  9.  
  10. .data
  11.   CaptionGreet BYTE "Last <<< --- First", 0
  12.  
  13.   ; First --->>> Last
  14.   arrA DWORD 80010001h, 0, 0, 0
  15.   arrB DWORD 80000001h, 0, 0, 0
  16.   arrC DWORD 0, 0, 0, 0
  17.  
  18.   toOut DB 64 dup(?)
  19.  
  20. .code
  21.  
  22. main PROC
  23.  
  24.     mov edi, OFFSET arrA    ; Address of arrA
  25.     mov esi, OFFSET arrB    ; Address of arrB
  26.     mov ebx, Offset arrC    ; Address of arrC
  27.  
  28.     mov eax, 0              ; Register with result
  29.  
  30.     mov ecx, LENGTHOF arrA  ; Length of arrays
  31.  
  32.     L1:
  33.         mov eax, [edi]      ; Copy current arrA element to eax
  34.         adc eax, [esi]      ; Add current arrB element to eax
  35.        
  36.  
  37.         add edi, TYPE arrA  ; Move pointer to the next arrA element
  38.         add esi, TYPE arrB  ; Move pointer to the next arrB element
  39.  
  40.         mov [ebx], eax      ; Move current eax value to current arrC element
  41.         add ebx, TYPE arrC  ; Move pointer to the next arrC element
  42.  
  43.         loop L1
  44.  
  45.     ; Convert result to HEX toOut
  46.     push OFFSET toOut
  47.     push OFFSET arrC
  48.     push 128
  49.     call StrHex_MY
  50.  
  51.     ; Output result. Should be 01 00010002
  52.     INVOKE MessageBoxA, 0, ADDR toOut, ADDR CaptionGreet, 0
  53.     INVOKE ExitProcess,0
  54.  
  55. main ENDP
  56. END main
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement