initial commit: a mess of assembly code
[fmap.git] / x86_64_sse2_x87 / doc / structs
blob156f79a9d5b043e9853f158db7bfe9e2f27a1a7d
1 fasm "language" is very powerfull because it can be used to code an assembler for nearly any ISAs
2 (Instruction Set Architecture: x86_64/risc-v/etc) and any file formats (elf/coff/etc).
4 The main pitfall is to lose ourself into the usage of such "language" for our own assembly written
5 programs: "struct" definition and usage are strong attractors to such pitfall.
7 Namely, use the power of fasm "language" to write assemblers, but using it "too much" for assembly
8 written programs would be some kind of mistake.
10 "structs" are a way to describe a memory layout and give some facilities to access such layout,
11 originally from the C language.
13 We should not try to "recode"/"use" C-like "structs" in fasm, even though it was done by fasm author
14 (fasm "language" is powerfull enough to do so). See his personal code repository ("struct.inc" file
15 which is basically a fasm-syntax-like parser!).
17 All that to say, we keep memory layout definitions (~structs) kind of simple and brutal on
18 purpose.