.data Array1 sdword 2, 4, -3, -9, 7, 1, 8 Array2 sdword 2, -3, 6, 0, 7, 8, 5 prompt byte "matches", 0 .code main proc xor esi, esi mov ecx, lengthof Array1 xor eax, eax L1: mov ebx, Array1[esi] mov edx, Array2[esi] cmp ebx, edx jnz L2 inc eax L2: add esi, type Array1 loop L1 call writeint lea edx, prompt call writestring call crlf call waitmsg main endp ```assembly= INCLUDE Irvine32.inc main EQU start@0 .data Array1 sdword 2, 4, -3, -9, 7, 1, 8 Array2 sdword 2, -3, 6, 0, 7, 8, 5 prompt byte 10h, "matches", 0 .code main proc xor esi, esi mov ecx, lengthof Array1 xor eax, eax L1: mov ebx, Array1[esi] mov edx, Array2[esi] cmp ebx, edx jnz L2 inc eax L2: add esi, type Array1 loop L1 call writeint lea edx, prompt call writestring call crlf call waitmsg main endp END main ``` ![](https://i.imgur.com/mudwu6a.png) ```assembly= INCLUDE Irvine32.inc main EQU start@0 .data array1 sdword 2, 4, -3, -9, 7, 1, 8 array2 sdword 2, -3, 6, 0, 7, 8, 5 prompt byte 10h, "matches", 0 .code compare proc uses ecx edi L2: mov ebx, esi mov edx, edi cmp ebx, edx jnz L3 inc eax L3: add edi, type array2 loop L2 compare endp main proc xor eax, eax mov ecx, lengthof array1 lea esi, array1 lea edi, array2 L1: call compare add esi, type array1 loop L1 call writeint lea edx, prompt call writestring main endp end main ```