typestar

Marcos de pila en Assembly

rbp ancla los locales a offsets fijos: el prólogo clásico.

; A stack frame: rbp anchors locals at fixed offsets.
        global _start

        section .text
area:                           ; rdi=w, rsi=h -> rax
        push rbp
        mov rbp, rsp
        sub rsp, 16             ; room for two locals

        mov [rbp - 8], rdi      ; local w
        mov [rbp - 16], rsi     ; local h
        mov rax, [rbp - 8]
        imul rax, [rbp - 16]

        mov rsp, rbp            ; epilogue
        pop rbp
        ret

_start:
        mov rdi, 6
        mov rsi, 9
        call area
        mov rdi, rax            ; 54
        mov rax, 60             ; exit code 54
        syscall

Cómo funciona

  1. push rbp; mov rbp, rsp; sub rsp, 16 abre el marco.
  2. Los locales viven en [rbp - 8] y [rbp - 16].
  3. El epílogo restaura rsp y rbp antes del ret.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
25
Caracteres a escribir
478
Tokens
80
Ritmo de tres estrellas
55 tpm

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

Escribe este fragmento

Paso 3 de 3 en La pila; paso 21 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →