generated from loic/c-template
feat: README
This commit is contained in:
parent
0974151b85
commit
e1cac57dce
1 changed files with 23 additions and 0 deletions
23
README.md
23
README.md
|
|
@ -1 +1,24 @@
|
||||||
# Dr_Quine
|
# Dr_Quine
|
||||||
|
|
||||||
|
A **quine** is a program that prints its own source code without reading any
|
||||||
|
file. This project implements quines in 3 languages: **C**, **x86-64
|
||||||
|
Assembly**, and **Shell**.
|
||||||
|
|
||||||
|
The replication logic relies on a string that contains the source code of the
|
||||||
|
program itself. When a special placeholder character (`$`) is encountered while
|
||||||
|
printing that string, the program switches into *escape mode* and prints the
|
||||||
|
string again — this time with special characters escaped — so the output is
|
||||||
|
valid source code. Every other character is printed as-is. The result is a
|
||||||
|
perfect copy of the original source.
|
||||||
|
|
||||||
|
## Programs
|
||||||
|
|
||||||
|
- **Colleen** — simple quine, prints its source to stdout
|
||||||
|
- **Grace** — writes its source into a new file `Grace_Kid.c`
|
||||||
|
- **Sully** — generates and compiles a child program, then runs it, counting
|
||||||
|
down from 5 to 0
|
||||||
|
|
||||||
|
> **Warning:** The assembly code in this project does not follow the System V
|
||||||
|
> AMD64 ABI — calling conventions, callee-saved/caller-saved registers, and
|
||||||
|
> stack alignment are not properly respected. This was my first program in
|
||||||
|
> assembly.
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue