Untitled
By: a guest | Feb 9th, 2010 | Syntax:
ASM (NASM) | Size: 0.96 KB | Hits: 12 | Expires: Never
.486
.model flat
.data
n dd ? ; size of an array
mx dd -1
pos dd ?
num dd 11 dup (0)
.code
_FrequentNumber proc
push ebp
mov ebp, esp
push ebx
push ecx
push esi
push edi
mov ebx, [ebp+8]
mov n, ebx
mov ebx, [ebp+12]
lea edi, num
mov ecx, n
xor esi, esi
cycle:
mov eax, [ebx][esi*4]
call _Analyze
inc esi
loop cycle;
mov ecx, 10
mov esi, 0
findMax:
mov eax, [edi][esi*4];
cmp eax, mx
jng fincycle
mov mx, eax
mov pos, esi
fincycle:
inc esi
loop findMax
mov eax, pos
pop edi
pop esi
pop ecx
pop ebx
pop ebp
ret
_FrequentNumber endp
; The number to analyze is in eax
_Analyze proc
push ebp
mov ebp, esp
push ecx
mov ecx, 10
push esi
push edx
cycle:
cdq
idiv ecx
mov esi, edx
inc dword ptr [edi][esi*4]
cmp eax, 0
jz finAn
jmp cycle
finAn:
pop edx
pop esi
pop ecx
pop ebp
ret
_Analyze endp
end