MOVED TO: https://cirosantilli.com/linux-kernel-module-cheat/userland-assembly with code at https://github.com/cirosantilli/linux-kernel-module-cheat/tree/master/userland/arch/x86_64 SEE README. x86 IA-32 and x86-64 userland minimal examples tutorial. Hundreds of runnable asserts. Nice GDB setup. IO done with libc, so OS portable in theory. NASM and GAS covered. Tested in Ubuntu 18.04. Containers (ELF), linking, calling conventions. System land cheat at: https://github.com/cirosantilli/x86-bare-metal-examples, ARM cheat at: https://github.com/cirosantilli/arm-assembly-cheat 移至:https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly请参阅自述文件。 x86 IA-32和x86-64 userland最少示例教程。 数百个可运行的断言。 好的GDB设置。 IO是用libc完成的,因此OS在理论上是可移植的。 涵盖了NASM和GAS。 在Ubuntu 18.04中测试。 容器(ELF),链接,调用约定。 系统土地作弊网址:https://github.com/cirosantilli/x86-bare-metal-examples,ARM作弊网址:https://github.com/cirosantilli/arm-assembly-cheat
THIS REPO HAS MOVED TO: https://github.com/cirosantilli/linux-kernel-module-cheat#userland-assembly
All the most valuable content has already been moved: the bulk of the x86 instruction examples with assertions.
There is some stuff left here, e.g. 32-bit x86 and some useless prose. Maybe one day I'll migrate them, let's see.
No major new features are intended to be added here.
Notable advantages of LKMC repository include:
The bulk of this repo had been written a long time ago, and so it was semi-crappy. All content that moved to LKMC was reviewed and improved.
In particular, the use of NASM was a bad choice from before I understood that GCC uses GNU GAS assembly by default. I intend to just migrate NASM examples to GAS, and let NASM die: if you really, want NASM, please checkout just before the migration. NASM devs are cool, but GCC wins.
However, the LKMC infrastructure is already working and completely superior, all that is left if to migrate some missing key concept examples there.
x86 IA-32 and x86-64 userland minimal examples tutorial. Hundreds of runnable asserts. Nice GDB setup. IO done with libc, so OS portable in theory. NASM and GAS covered. Tested in Ubuntu 18.04. Containers (ELF), linking, calling conventions. System land cheat at: https://github.com/cirosantilli/x86-bare-metal-examples, ARM cheat at: https://github.com/cirosantilli/arm-assembly-cheat