Простой ответ: сборка x86 не поддерживает два явных операнда памяти в одной инструкции.
Таким образом, ваша первая инструкция cmp [cx], num
недействительна. Сначала загрузите один из аргументов в регистр, а затем выполните сравнение (например, так):
mov ax, num ; preferably outside the loop
cmp [cx], ax
JNE LOOP1
inc count
jmp LOOP1
Это должно решить эту проблему.
[cx]
не допустимый 16-битный режим адресации, поэтому выберите BX, SI или DI вместо того, чтобы перебирать указатель на массив.