Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .section .data
- str1: .ascii "Unesite do 20 heks. brojeva: \0"
- str1_len=.-str1
- str2: .ascii "Unesite opciju (cifra 1-4): \0"
- str2_len=.-str2
- str3: .ascii "Izlaz: \0"
- str3_len=.-str3
- greska11: .ascii "Prekoracenje!\n\0"
- greska11_len=.-greska11
- greska22: .ascii "Pogresan unos!\n\0"
- greska22_len=.-greska22
- greska33: .ascii "Prekoracenje prilikom konv. varijanse i artim. sredine\n\0"
- greska33_len=.-greska33
- greska44: .ascii "Pogresna opcija!\n\0"
- greska44_len=.-greska44
- novi_red: .ascii "\n"
- novi_red_len=.-novi_red
- unos1: .fill 100,1,0
- unos1_len=.-unos1
- unos2: .fill 100,1,0
- unos2_len=.-unos2
- string: .fill 100,1,0
- string_len=.-string
- niz: .fill 20,4,0
- suma: .long 0
- min: .long 0
- max: .long 0
- aritm: .long 0
- opcija: .long 0
- brojac: .long 0
- baza10: .long 10
- baza16: .long 16
- .section .text
- .globl main
- main:
- movl $4, %eax
- movl $1, %ebx
- movl $str1, %ecx
- movl $str1_len, %edx
- int $0x80
- movl $3, %eax
- movl $0, %ebx
- movl $unos1, %ecx
- movl $unos1_len, %edx
- int $0x80
- movl %ecx, %esi
- movl $0, %eax
- movl $0, %ebx
- movl $0, %edx
- movl $0, %edi #brojac
- petlja1:
- movb (%esi), %bl
- cmpb $'\n' , %bl
- je ucitaj_opciju
- cmpb $' ' , %bl
- jne nasao_broj
- incl %esi
- jmp petlja1
- nasao_broj:
- movb (%esi), %bl
- cmpb $'\n' , %bl
- je dodaj_u_niz
- cmpb $' ' , %bl
- je dodaj_u_niz
- cmpb $'0' , %bl
- jb greska2
- cmpb $'9' , %bl
- jbe nasao_broj2
- cmpb $'A' , %bl
- jb greska2
- cmpb $'F' , %bl
- jbe nasao_broj1
- subb $32, %bl
- cmpb $'F' , %bl
- ja greska2
- nasao_broj1:
- subb $7, %bl
- nasao_broj2:
- subb $'0' , %bl
- movl $0, %edx
- mull baza16
- jc greska1
- addl %ebx, %eax
- jc greska1
- incl %esi
- jmp nasao_broj
- dodaj_u_niz:
- movl %eax, niz(,%edi,4)
- movl $0, %eax
- incl %edi
- cmpb $'\n' , %bl
- je ucitaj_opciju
- incl %esi
- jmp petlja1
- ###########################################
- ucitaj_opciju:
- movl %edi, brojac
- movl $4, %eax
- movl $1, %ebx
- movl $str2, %ecx
- movl $str2_len, %edx
- int $0x80
- movl $3, %eax
- movl $0, %ebx
- movl $unos2, %ecx
- movl $unos2_len, %edx
- int $0x80
- subb $'0' , (%ecx)
- cmpb $1 , (%ecx)
- je upisi_1
- cmpb $2 , (%ecx)
- je upisi_2
- cmpb $3 , (%ecx)
- je upisi_3
- cmpb $4 , (%ecx)
- je upisi_4
- jmp greska4
- upisi_1:
- movl $1, opcija
- jmp predlogika
- upisi_2:
- movl $2, opcija
- jmp predlogika
- upisi_3:
- movl $3, opcija
- jmp predlogika
- upisi_4:
- movl $4, opcija
- jmp predlogika
- ###########################################
- predlogika:
- cmpl $1, opcija
- je min_clan
- cmpl $2, opcija
- je max_clan
- cmpl $3, opcija
- je aritm_sredina
- cmpl $4, opcija
- je varijansa
- ###########################################
- ###########################################
- ###########################################
- min_clan:
- movl $0, %esi
- movl niz(,%esi,4), %ebx
- movl %ebx, min
- incl %esi
- min_clan1:
- cmpl %esi, %edi
- je prebaci_min1
- movl niz(,%esi,4), %eax
- cmpl min, %eax
- jb prebaci_min
- incl %esi
- jmp min_clan1
- prebaci_min:
- movl niz(,%esi,4), %ebx
- movl %ebx, min
- incl %esi
- jmp min_clan1
- prebaci_min1:
- movl min, %eax
- jmp predkonv
- ############################
- max_clan:
- movl $0, %esi
- movl niz(,%esi,4), %ebx
- movl %ebx, max
- incl %esi
- max_clan1:
- cmpl %esi, %edi
- je prebaci_max1
- movl niz(,%esi,4), %eax
- cmpl max, %eax
- ja prebaci_max
- incl %esi
- jmp max_clan1
- prebaci_max:
- movl niz(,%esi,4), %ebx
- movl %ebx, max
- incl %esi
- jmp max_clan1
- prebaci_max1:
- movl max, %eax
- jmp predkonv
- ############################
- aritm_sredina:
- movl $0, %esi
- movl $0, %eax
- aritm_sredina1:
- cmpl %esi, %edi
- je aritm_sredina2
- addl niz(,%esi,4), %eax
- incl %esi
- jmp aritm_sredina1
- aritm_sredina2:
- movl $0, %edx
- divl %edi
- jmp predkonv
- varijansa:
- predkonv:
- movl $string, %esi
- movl %esi, %edi
- movl $0, %edx
- konverzija:
- cmpl $0, %eax
- je obrni
- movl $0, %edx
- divl baza10
- addb $'0' , %dl
- movb %dl, (%esi)
- incl %esi
- jmp konverzija
- obrni:
- movb (%esi), %dl
- movb (%edi), %dh
- movb %dh, (%esi)
- movb %dl, (%edi)
- incl %edi
- decl %esi
- cmpl %edi, %esi
- ja obrni
- movl $4, %eax
- movl $1, %ebx
- movl $str3, %ecx
- movl $str3_len, %edx
- int $0x80
- movl $4, %eax
- movl $1, %ebx
- movl $string, %ecx
- movl $string_len, %edx
- int $0x80
- movl $4, %eax
- movl $1, %ebx
- movl $novi_red, %ecx
- movl $novi_red_len, %edx
- int $0x80
- movl $0, %ebx
- kraj:
- movl $1, %eax
- int $0x80
- greska1:
- movl $4, %eax
- movl $1, %ebx
- movl $greska11, %ecx
- movl $greska11_len, %edx
- int $0x80
- movl $1, %ebx
- jmp kraj
- greska2:
- movl $4, %eax
- movl $1, %ebx
- movl $greska22, %ecx
- movl $greska22_len, %edx
- int $0x80
- movl $2, %ebx
- jmp kraj
- greska3:
- movl $4, %eax
- movl $1, %ebx
- movl $greska33, %ecx
- movl $greska33_len, %edx
- int $0x80
- movl $3, %ebx
- jmp kraj
- greska4:
- movl $4, %eax
- movl $1, %ebx
- movl $greska44, %ecx
- movl $greska44_len, %edx
- int $0x80
- movl $4, %ebx
- jmp kraj
Add Comment
Please, Sign In to add comment