---
# System prepended metadata

title: Untitled

---

.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
```