News:

Masm32 SDK description, downloads and other helpful links
Message to All Guests

Main Menu

how to merge multiple arrays to one array

Started by laomms, June 18, 2022, 08:08:42 PM

Previous topic - Next topic

laomms

I want to concatenate array1 array2 ... to array,how  is fast way:



.data
array1      db 04Dh, 05Ah, 090h, 00h, 003h, 00h, 00h, 00h, 04h, 00h, 00h, 00h
other        dd     100 dup(0) 
array2      db     0FFh, 0FFh, 00h, 00h, 0B8h, 00h, 00h, 00h, 00h, 00h, 00h, 00h

.data ?
array        dd    ?

.code

        invoke crt_memcpy, array, addr array1, sizeof array1
        mov ecx, [array]
        add ecx,24
        invoke crt_memcpy, ecx, addr array2, sizeof array2    ???






.data
array1      db 6,5,4,3,2,1
other        dd     100 dup(0) 
array2      dd     1,2,3,4,5,6

result DWORD LENGTHOF array2 dup(0)

.code
main PROC
  mov eax, 0                             
  mov ecx, LENGTHOF array1           
  mov edi, 0
  mov esi, 0

L1:
  mov al, [array1 + esi * TYPE BYTE]     
  movsx eax, al                           
  mov ebx,[array2 + esi * TYPE DWORD]     
  mov result[edi], ebx         
  add result[edi], eax                   
  inc esi                             
  add edi, 4                         
  loop L1