I dont know if I am doing this properly, but I want to make a simple PROC in x86 MASM for my MD5 implementation. And for instruction ROL it seems that I cannot use this type of coding.
HCALC proc NEAR Avar: DWORD, Xvar: DWORD, Yvar: DWORD, Zvar: DWORD, Mvar: DWORD, S: DWORD, Hvar: DWORD
pushad
mov eax, Avar
mov ebx, Xvar
mov ecx, Yvar
mov edx, Zvar
xor ebx, ecx
xor ebx, edx
add eax, ebx ; a + H(x,y,z)
add eax, Mvar ; a + H(x,y,z) + M[k]
add eax, Hvar ; a + H(x,y,z) + M[k] + h
rol eax, S ; (a + F(x,y,z) + M[k] + h) <<< s)
add eax, ebx ; x + ((a + F(x,y,z) + M[k] + h) <<< s), wynik całości w EAX
mov Avar, eax
popad
ret
HCALC endp
It gives an error error A2070: invalid instruction operands