Ayudame a calcular la posición del i del primer for.
Funciona perfecto todo, pero me tira mal la posición del i, del primer for.
Mirá este código lo debuggié con gdb, de todos modos no pude sacar.
Capaz que sea una cuenta mal hecha, este código está ya funcionando.
Funciona perfecto todo, pero me tira mal la posición del i, del primer for.
Mirá este código lo debuggié con gdb, de todos modos no pude sacar.
Capaz que sea una cuenta mal hecha, este código está ya funcionando.
Código (asm) [Seleccionar]
.text
.global bf
bf:
cld
movq %rcx,%r8
subq %rcx,%rdx
incq %rdx
movq %rdx,%rcx
aca:
lodsb
_1for:
scasb
je Si_eq_s0
loop _1for
movq $-1,%rax
ret
Si_eq_s0:
movq %rcx,%r13
movq %rsi,%r11
decq %r11 # siempre apunta al primero
movq %rdi,%r12
# comprobamos denuevo letra anterior porque sino queda vacio y da true.
# incq %rcx # VER
decq %rsi
decq %rdi
subq %rcx,%rdx # este es la posición.
# esta bucle se repite ls-1 veces.
movq %r8,%rcx # r8=ls
decq %rcx
_2for:
repe cmpsb
jne fail
jmp final
fail:
cmpq $0,%rcx
je final
movq %r13,%rcx
movq %r11,%rsi
movq %r12,%rdi
jmp aca
final:
subq %rcx,%rdx
movq %rdx,%rax
ret