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
push rbp; mov rbp, rsp; sub rsp, 16abre el marco.- Los locales viven en
[rbp - 8]y[rbp - 16]. - El epílogo restaura rsp y rbp antes del ret.
Palabras clave y builtins usados aquí
globalraxrbprdirsirspsection
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.
Paso 3 de 3 en La pila; paso 21 de 31 en Fundamentos del lenguaje.