~vdupras/tumbleforth

2e95679854187feb8a846ea260f80ba9d8edb87b — Virgil Dupras 1 year, 4 months ago d798482
update
2 files changed, 6 insertions(+), 7 deletions(-)

M 01-duskcc/01-buckleup.md
M index.html
M 01-duskcc/01-buckleup.md => 01-duskcc/01-buckleup.md +5 -6
@@ 105,12 105,11 @@ would look like this:
        mov eax, 1  ; exit
        int 0x80

You can assemble this with `“nasm -f elf64 noop.asm && ld -o noop
noop.o”`. The resulting `noop` executable will efficiently do nothing and
exit. How to read this? The first 3 lines are boilerplate. The linker[^3]
(`ld`) looks at a global symbol named `_start` to set as the ELF
entry point. The `_start:` line is the definition of a label, which we
can see as function names.
You can assemble this with `“nasm -f elf64 noop.asm && ld -o noop noop.o”`. The
resulting `noop` executable will efficiently do nothing and exit. How to read
this? The first 3 lines are boilerplate. The linker[^3] (`ld`) looks at a
global symbol named `_start` to set as the ELF entry point. The `_start:` line
is the definition of a label, which we can see as function names.

The last 2 lines go together. `“mov eax, 1”`[^4] copies the constant
("immediate" in assembler talk) value `1` (the exit syscall ID) into register

M index.html => index.html +1 -1
@@ 76,7 76,7 @@ My <a href="01-duskcc/01-buckleup.html">“pilot” story arc</a> is on the subj
</script>

<stripe-buy-button
  buy-button-id="buy_btn_1N3OUUCA7NIrwVHIqoqJ5nDI"
  buy-button-id="buy_btn_1N3kiKCA7NIrwVHI3eJCZ2zj"
  publishable-key="pk_live_51MvMMICA7NIrwVHIRYb1HLDH2fekhb7w6fKAR1rTEjtsGEFumQNBDOZdbNIhNAnL4Lf4m1ISp1kTepJWR6cOBG3d00QRjUBiEA"
>
</stripe-buy-button>