typestar

Memoria en bloque en WebAssembly

Copia o rellena corridas enteras de bytes en una instrucción.

(module
  ;; memory.fill and memory.copy move whole runs of bytes in one
  ;; instruction: destination, source or value, then length.
  (memory (export "mem") 1)
  (data (i32.const 0) "waypoint")

  (func (export "duplicate") (param $to i32)
    (memory.copy (local.get $to) (i32.const 0) (i32.const 8)))

  (func (export "blank") (param $at i32) (param $len i32)
    (memory.fill (local.get $at) (i32.const 32) (local.get $len)))

  (func (export "read") (param $i i32) (result i32)
    (i32.load8_u (local.get $i))))

Cómo funciona

  1. memory.copy mueve length bytes de origen a destino.
  2. memory.fill escribe un byte a lo largo de una corrida — 32 es espacio.
  3. i32.load8_u verifica qué aterrizó dónde.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
492
Tokens
133
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

Paso 4 de 4 en Memoria; paso 19 de 28 en Fundamentos del lenguaje.

← Anterior Siguiente →