From cd55c3a57fea32c6709e808fe8e35e9bbf85c847 Mon Sep 17 00:00:00 2001 From: Jan-Erik Rediger Date: Fri, 15 Sep 2023 11:11:51 +0000 Subject: [PATCH] init --- .gitignore | 1 + Makefile | 8 ++++++++ flake.lock | 25 +++++++++++++++++++++++++ flake.nix | 25 +++++++++++++++++++++++++ template.asm | 6 ++++++ 5 files changed, 65 insertions(+) create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 template.asm diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b981212 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +0x?? diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c02fd88 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +%.o: %.asm + nasm -felf64 $< +%: %.o + gcc -z noexecstack -o $@ $< + +template: + @echo "Copy template.asm to \$$name.asm and run \`make \$$name\`" +.PHONY: template diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..a846bc8 --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1694593561, + "narHash": "sha256-WSaIQZ5s9N9bDFkEMTw6P9eaZ9bv39ZhsiW12GtTNM0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "1697b7d480449b01111e352021f46e5879e47643", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..5111ddb --- /dev/null +++ b/flake.nix @@ -0,0 +1,25 @@ +{ + description = "xchg rax, rax"; + + outputs = { self, nixpkgs, ... }: + let + supportedSystems = [ "x86_64-linux" ]; + forAllSystems = nixpkgs.lib.genAttrs supportedSystems; + in + { + devShells = forAllSystems (system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + default = pkgs.mkShell { + buildInputs = with pkgs; + [ + gdb + gnumake + nasm + ]; + }; + }); + }; +} diff --git a/template.asm b/template.asm new file mode 100644 index 0000000..8f4d019 --- /dev/null +++ b/template.asm @@ -0,0 +1,6 @@ + BITS 64 + SECTION .text + global main + +main: + xor eax, eax