zlacker

[parent] [thread] 2 comments
1. westur+(OP)[view] [source] 2023-12-27 04:35:12
This is almost Hello World:

https://stackoverflow.com/questions/2246748/assembly-linking... ~:

  cat hello.asm
  # section .text
  #      jmp [rax]
  nasm -f elf64 hello.asm
  objdump -Sr hello.o
/? nasm helloworld: https://www.google.com/search?q=nasm+helloworld :

- https://www.devdungeon.com/content/hello-world-nasm-assemble... : succinct Hello World program; 32bit ; - [ ] port this to 64bit

- "NASM Tutorial" https://cs.lmu.edu/~ray/notes/nasmtutorial/ ; a good "blog tutorial explaining Assembly code" per OT

"What is better "int 0x80" or "syscall" [or "sysenter" or VDSO] in 32-bit code on Linux?" https://stackoverflow.com/questions/12806584/what-is-better-... links to https://stackoverflow.com/questions/12776340/system-calls-im... which links to the vDSO Wikipedia article, which explains that vDSO supports ASLR and is more portable than `int 80` (which is the old 32bit way to syscall)

vDSO: https://en.wikipedia.org/wiki/VDSO

"Linux Assembly HOWTO" http://tldp.org/HOWTO/Assembly-HOWTO/

replies(1): >>westur+l2
2. westur+l2[view] [source] 2023-12-27 05:02:01
>>westur+(OP)
MASM only works on Windows. NASM works on Lin/Mac/Win; there's also a nasm.exe. And, like MASM, NASM assembles Intel ASM syntax (unlike GNU Assembler (`gas`))

/? nasm masm differences: https://www.google.com/search?q=nasm+masm+differences

/? Yasm Fasm:

x86 Assembly/x86 Assemblers: https://en.wikibooks.org/wiki/X86_Assembly/x86_Assemblers ; GAS, YASM; MASM, JWASM; NASM, FASM, YASM; HLA

replies(1): >>westur+8b
◧◩
3. westur+8b[view] [source] [discussion] 2023-12-27 07:15:22
>>westur+l2
WASM: WebAssembly > Specification > Wasm program > Code representation > C source code and corresponding WebAssembly https://en.wikipedia.org/wiki/WebAssembly#Code_representatio...

WASI: https://en.wikipedia.org/wiki/WebAssembly :

> WebAssembly System Interface (WASI) is a simple interface (ABI and API) designed by Mozilla intended to be portable to any platform.[84] It provides POSIX-like features like file I/O constrained by capability-based security.[85][86] There are also a few other proposed ABI/APIs.[87][88]

[88]: webassembly/wasm-c-api: https://github.com/WebAssembly/wasm-c-api

/? WASM tutorial: https://www.google.com/search?q=wasm+tutorial

/? WASM helloworld: https://www.google.com/search?q=wasm+helloworld

Learn X in Y minutes > WebAssembly: https://learnxinyminutes.com/docs/wasm/

WebAssembly/WABT: The WebAssembly Binary Toolkit: https://github.com/WebAssembly/wabt

https://docs.docker.com/desktop/wasm/ :

  docker run \
    --runtime=io.containerd.wasmedge.v1 \
    --platform=wasi/wasm \
    secondstate/rust-example-hello
> Docker Desktop downloads and installs the following runtimes that you can use to run Wasm workloads:

  io.containerd.slight.v1
  io.containerd.spin.v2
  io.containerd.wasmedge.v1
  io.containerd.wasmtime.v1
  io.containerd.lunatic.v1
  io.containerd.wws.v1
  io.containerd.wasmer.v1
Do all of these have WASI?
[go to top]