# Kreirati obrnuti string od originalnog, ali tako da se
# umesto svakog drugog karaktera u novi string prebacuje
# znak pitanja.
	

#autor: Imenko Prezimić INDEX ra1234-2015

.section .data
	ulaz_poruka: .ascii "Unesite string: \0"
	ulaz_poruka_len = . - ulaz_poruka
	izlaz_poruka: .ascii "Rezultujuci string: \0"
	izlaz_poruka_len = . - izlaz_poruka
	ulaz_max = 50
	izlaz_max = 50
	ulaz: .fill ulaz_max, 1, 42
	izlaz: .fill izlaz_max, 1, 42
	duzina: .long 0
.section .text
.globl main
main:

	movl $4, %eax
	movl $1, %ebx	
	leal ulaz_poruka, %ecx
	movl $ulaz_poruka_len, %edx
	int $0x80

	movl $3, %eax
	movl $0, %ebx	
	leal ulaz, %ecx
	movl $ulaz_max, %edx
	int $0x80
	
	movl %eax, duzina

	movl $ulaz, %esi
	movl $izlaz, %edi
	addl duzina, %edi
	decl %edi
	movb $'\n', (%edi)
	decl %edi
	
petlja:
	cmpb $'\n', (%esi)
	je ispis
	
	movb (%esi), %ch
	movb %ch, (%edi)
	
	addl $2, %esi
	decl %edi

	cmpl $izlaz, %edi
	jl ispis
	
	movb $'?', (%edi)
	decl %edi
	
	jmp petlja
	
ispis:
	movl $4, %eax
	movl $1, %ebx	
	leal izlaz_poruka, %ecx
	movl $izlaz_poruka_len, %edx
	int $0x80
	
	movl $4, %eax
	movl $1, %ebx	
	leal izlaz, %ecx
	movl duzina, %edx
	int $0x80
	
kraj:
	movl $1, %eax
	movl $0, %ebx
	int $0x80

