# gcc -g -o t7_minuscules t7_minuscules.s
# gdb t7_minuscules 
# (gdb) break end
# (gdb) run
# (gdb) x /1sb &v
# 0x804a044 <o>:	 "demasiadas mayusculas para tan pocas balas."
# (gcb) [Ctrl+D][Ctrl+D]
# Al final de tot teniu mes exemples de com debugar-ho amb gdb

MIDA = 100
.data
v: .ascii "Demasiadas Mayusculas PARA TAN pOcAs BalAs."
.bss
.comm o,MIDA,1

.text
.global main
main:
 movl $0, %ecx
for:
 cmpb $'.', v(,%ecx,1)
 je endfor
 pushl %ecx
 pushl v(,%ecx,1)
 call minuscula
 movb %al, o(,%ecx,1)
 addl $4, %esp
 popl %ecx
 incl %ecx
 jmp for
endfor:
 movb $'.', o(,%ecx,1)

end:
 movl $0, %ebx
 movl $1, %eax
 int $0x80

minuscula:
 pushl %ebp
 movl %esp, %ebp
 movb 8(%ebp), %al
 cmpb $'A', %al
 jl endif
 cmpb $'Z', %al
 jg endif
 subb $'A', %al
 addb $'a', %al
endif:
 popl %ebp
 ret

# gdb t7_minuscules 
# (gdb) break end
# (gdb) run
# (gdb) x /1sb &v
# 0x804a010 <v>:	 "Demasiadas Mayusculas PARA TAN pOcAs BalAs."
# (gdb) x /1sb &o
# 0x804a044 <o>:	 "demasiadas mayusculas para tan pocas balas."
# (gcb) [Ctrl+D][Ctrl+D]

# gdb t7_minuscules 
# (gdb) break minuscula
# (gdb) run
# (gdb) x /4cb $ebp+8
# 0xbffff334:	68 'D'	101 'e'	109 'm'	97 'a'
# (gdb) cont
# (gdb) x /4cb $ebp+8
# 0xbffff334:	101 'e'	109 'm'	97 'a'	115 's'
# (gcb) [Ctrl+D][Ctrl+D]

# gdb t7_minuscules 
# (gdb) break minuscula
# (gdb) run
# (gdb) cont
# (gdb) cont
# (gdb) cont
# (gdb) x /4cb &v
# 0x804a010 <v>:	68 'D'	101 'e'	109 'm'	97 'a'
# (gdb) x /4cb &o
# 0x804a044 <o>:	100 'd'	101 'e'	109 'm'	0 '\000'
# (gdb) print $ecx
# $1 = 3
# (gdb) x /4cb $ebp+8
# 0xbffff334:	97 'a'	115 's'	105 'i'	97 'a'	// Parametre #1
# (gdb) x /1ld $ebp+12
# 0xbffff338:	3	// Regs (%ecx)
# (gcb) [Ctrl+D][Ctrl+D]

