typestar

strlen a mano en Assembly

Camina los bytes hasta el terminador cero.

; Walk bytes until the zero terminator: strlen by hand.
        global _start

        section .data
name:   db "workbench", 0

        section .text
_start:
        lea rsi, [name]
        xor rcx, rcx
.scan:
        cmp byte [rsi + rcx], 0
        je .done
        inc rcx
        jmp .scan
.done:
        mov rdi, rcx            ; length 9
        mov rax, 60             ; exit code 9
        syscall

Cómo funciona

  1. db "workbench", 0 guarda el string y su terminador.
  2. cmp byte [rsi + rcx], 0 lee un byte a la vez.
  3. El conteo, 9, es el código de salida.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
308
Tokens
50
Ritmo de tres estrellas
55 tpm

Al ritmo de tres estrellas de 55 tokens por minuto, este intento toma unos 55 segundos.

Escribe este fragmento

Paso 3 de 4 en Memoria y strings; paso 24 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →