Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # autor: Imenko Prezimić INDEX ra1234-2016
- # fajlovi: zad.S
- # Ako vaše rešenje sadrži dodatne fajlove, stavite njihove nazive u liniju fajlovi
- # Na primer, ako imate i potprogram u pp.S, iza fajlovi treba da stoji: zad.S pp.S
- # oktalni brojevi uvek zapocinju sa nulom, npr: 0123, 00
- # dok su dekadni npr: 123, 0
- .section .data
- izlaznik: .ascii "Izlazni kod: \0"
- p0_len = . -izlaznik
- punos: .ascii "Unesite string: \0"
- p1_len = . - punos
- pgreska: .ascii "Doslo je do greske u izvrsavanju programa!\n\0"
- p2_len = . - pgreska
- psuma: .ascii "Suma elemenata niza je: \0"
- p3_len = . - psuma
- pbroj_oktalnih: .ascii "\nBroj oktalnih elemenata u nizu: \0"
- p4_len = . - pbroj_oktalnih
- pbroj_decimalnih: .ascii "\nBroj decimalnih elemenata u nizu: \0"
- p5_len = . - pbroj_decimalnih
- pnovi_red: .ascii "\n\0"
- nizmax = 30
- niz: .fill nizmax,1,42
- suma: .long 0
- greska: .byte 0
- .section .text
- .global main
- main:
- movl $4, %eax
- movl $1, %ebx
- movl $punos, %ecx
- movl $p1_len, %edx
- int $0x80
- movl $3, %eax
- movl $0, %ebx
- movl $niz, %ecx
- movl $nizmax, %edx
- int $0x80
- movl %eax, %esi
- movl $niz,%eax
- broj_p:
- cmpb $'0', (%eax)
- jne slovo_p
- slovo_p:
- cmpb $'a', (%eax)
- je greska1
- incl %eax
- cmpb $10, (%eax)
- jne broj_p
- xorl %eax, %eax
- leal niz, %esi
- sum:
- addl %eax, suma
- jc greska2
- incl %esi
- cmpb $10, (%esi)
- jne sum
- suma_ispis:
- movl $4, %eax
- movl $1, %ebx
- movl $psuma, %ecx
- movl $p3_len, %edx
- int $0x80
- jmp kraj
- greska1:
- movb $1, greska
- /*xorl %eax, %eax
- movb greska, %al
- leal gr, %edi
- movl $10, %ebx
- dec_cifra:
- xorl %edx, %edx
- divl %ebx konverzija iz dekadnog u znakovni oblik (iz broja u string)
- addb $'0', %dl
- movb %dl, (%edi)
- incl %edi
- andl %eax, %eax #%eax,%eax
- jnz dec_cifra
- movb $0, (%edi)
- decl %edi
- leal gr, %esi*/
- movl $4, %eax
- movl $1, %ebx
- movl $pgreska, %ecx
- movl $p2_len, %edx
- int $0x80
- /*movl $4, %eax
- movl $1, %ebx
- movl $izlaznik, %ecx
- movl $p0_len, %edx
- int $0x80*/
- # ovo je za ispis tog izlaznog koda i greske
- /*movl $4, %eax
- movl $1, %ebx
- movl $gr, %ecx
- movl $1, %edx
- int $0x80*/
- jmp kraj
- greska2:
- movb $2, greska
- movl $4, %eax
- movl $1, %ebx
- movl $pgreska, %ecx
- movl $p2_len, %edx
- int $0x80
- jmp kraj
- /*greska3:
- movb $3, greska
- movl $4, %eax
- movl $1, %ebx
- movl $pgreska, %ecx
- movl $p2_len, %edx
- int $0x80*/
- kraj:
- xorl %ebx, %ebx
- movb greska, %bl
- movl $1, %eax
- int $0x80
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement