Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; rotbmp.asm
- ; kompilacja NASM:
- ; nasm -f elf rotbmp.asm
- global _detect
- ; definicja symbolicznych adresów parametrów
- ; i zmiennych lokalnych
- %define img [ebp+8]
- %define width [ebp+12]
- %define row_bytes [ebp-4]
- %define img_line [ebp-8]
- %define img_col [ebp-12]
- %define count [ebp-16]
- _detect:
- ; utwórz ramkę stosu
- push ebp
- mov ebp, esp
- sub esp, 16
- ; odłóż na stos używane rejestry
- push ebx
- push esi
- push edi
- mov ecx,1
- mov width, ecx
- ; oblicz długość linii pikseli
- ; (w bajtach)
- mov eax, 320
- lea edx, [eax+eax*2]
- add edx, 3
- and edx, 0fffffffch
- mov row_bytes, edx
- ; zmienna count inicjowana jest szerokością bitmapy
- mov count, eax
- ; linia pikseli
- mov esi, img
- mov img_line, esi
- add esi, 3
- lolxD:
- ; looking for black
- cmp BYTE [esi], 0
- je exit
- add ecx, 1
- add esi, 3
- jmp lolxD
- exit:
- mov eax, ecx
- ; ściągnięcie rejestrów ze stosu
- pop edi
- pop esi
- pop ebx
- ; powrót z procedury
- mov esp, ebp
- pop ebp
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement