From 0d6ed8a318eec75157c1195d06e24d69b6083e61 Mon Sep 17 00:00:00 2001 From: janis Date: Fri, 5 Jun 2026 02:45:33 +0200 Subject: [PATCH] change hex0 comments to be ; instead of # --- stages/hex0/Makefile | 2 +- stages/hex0/hex0.in | 266 +++++++++++++++++++++---------------------- 2 files changed, 134 insertions(+), 134 deletions(-) diff --git a/stages/hex0/Makefile b/stages/hex0/Makefile index 7219cf5..f06ae10 100644 --- a/stages/hex0/Makefile +++ b/stages/hex0/Makefile @@ -7,7 +7,7 @@ stage0: $(BUILD)/stage0 stage0-bootstrap: $(BUILD)/stage0-bootstrap $(BUILD)/stage0-bootstrap: hex0.in - for x in `sed '/^#/d;s/#.*//;s/ *//' hex0.in`; do printf \\x$$x; done > $@ + for x in `sed '/^;/d;s/;.*//;s/ *//' hex0.in`; do printf \\x$$x; done > $@ chmod +x $@ $(BUILD)/stage0: $(BUILD)/stage0-bootstrap diff --git a/stages/hex0/hex0.in b/stages/hex0/hex0.in index 37740ab..735e067 100644 --- a/stages/hex0/hex0.in +++ b/stages/hex0/hex0.in @@ -1,221 +1,221 @@ -# ELF header -# e_ident: u128 -# Magic number: 0x7f454c46 = "\x7fELF" +; ELF header +; e_ident: u128 +; Magic number: 0x7f454c46 = "\x7fELF" 7f 45 4c 46 -# EI_CLASS: u8 = ELFCLASS64 +; EI_CLASS: u8 = ELFCLASS64 02 -# EI_DATA: u8 = ELFDATA2LSB +; EI_DATA: u8 = ELFDATA2LSB 01 -# EI_VERSION: u8 = EV_CURRENT +; EI_VERSION: u8 = EV_CURRENT 01 -# EI_OSABI: u8 = ELFOSABI_NONE +; EI_OSABI: u8 = ELFOSABI_NONE 00 -# EI_ABIVERSION: u8 = 0 +; EI_ABIVERSION: u8 = 0 00 -# EI_PAD: [u8; 7] +; EI_PAD: [u8; 7] 00 00 00 00 00 00 00 -# e_type: u16 = E_EXEC +; e_type: u16 = E_EXEC 02 00 -# e_machine: u16 = EM_X86_64 +; e_machine: u16 = EM_X86_64 3e 00 -# e_version: u32 = EV_CURRENT +; e_version: u32 = EV_CURRENT 01 00 00 00 -# e_entry: u64 = 0x400078 +; e_entry: u64 = 0x400078 78 00 40 00 00 00 00 00 -# e_phoff: u64 = 0x40 +; e_phoff: u64 = 0x40 40 00 00 00 00 00 00 00 -# e_shoff: u64 = 0x0 +; e_shoff: u64 = 0x0 00 00 00 00 00 00 00 00 -# e_flags: u32 = 0 +; e_flags: u32 = 0 00 00 00 00 -# e_ehsize: u16 = 64 +; e_ehsize: u16 = 64 40 00 -# e_phentsize: u16 = 56 +; e_phentsize: u16 = 56 38 00 -# e_phnum: u16 = 1 +; e_phnum: u16 = 1 01 00 -# e_shentsize: u16 = 0 +; e_shentsize: u16 = 0 00 00 -# e_shnum: u16 = 0 +; e_shnum: u16 = 0 00 00 -# e_shstrndx: u16 = 0 +; e_shstrndx: u16 = 0 00 00 -# End of ELF header -# -# Program header -# p_type: u32 = PT_LOAD +; End of ELF header +; +; Program header +; p_type: u32 = PT_LOAD 01 00 00 00 -# p_flags: u32 = PF_R | PF_X +; p_flags: u32 = PF_R | PF_X 05 00 00 00 -# p_offset: u64 = 0 +; p_offset: u64 = 0 00 00 00 00 00 00 00 00 -# p_vaddr: u64 = 0x400000 +; p_vaddr: u64 = 0x400000 00 00 40 00 00 00 00 00 -# p_paddr: u64 = 0x0 +; p_paddr: u64 = 0x0 00 00 00 00 00 00 00 00 -# p_filesz: u64 = 0x167 +; p_filesz: u64 = 0x167 67 01 00 00 00 00 00 00 -# p_memsz: u64 = 0x167 +; p_memsz: u64 = 0x167 67 01 00 00 00 00 00 00 -# p_align: u64 = 0x1000 +; p_align: u64 = 0x1000 00 10 00 00 00 00 00 00 -# End of program header -# -# Code segment (offset 0x40, virtual address 0x400000) -# -# _start=120: -# ; alloca 0x1000 bytes on the stack -# mov rbp, rsp +; End of program header +; +; Code segment (offset 0x40, virtual address 0x400000) +; +; _start=120: +; ; alloca 0x1000 bytes on the stack +; mov rbp, rsp 48 89 e5 -# sub rsp, 0x10000, increase this if you want to read more than 0x10000 bytes +; sub rsp, 0x10000, increase this if you want to read more than 0x10000 bytes 48 81 ec 00 00 01 00 -# ; read 0x10000 bytes from stdin into the stack -# .READ: (130) -# xor rax, rax +; ; read 0x10000 bytes from stdin into the stack +; .READ: (130) +; xor rax, rax 48 31 c0 -# mov edi, 0 (stdin) +; mov edi, 0 (stdin) 48 c7 c7 00 00 00 00 -# mov rsi, rsp +; mov rsi, rsp 48 89 e6 -# mov rdx, 0x10000, increase this if you want to read more than 0x10000 bytes +; mov rdx, 0x10000, increase this if you want to read more than 0x10000 bytes 48 c7 c2 00 00 01 00 -# syscall (sys_read) +; syscall (sys_read) 0f 05 -# cmp rax, 0 +; cmp rax, 0 48 83 f8 00 -# jle die +; jle die 0f 8e b3 00 00 00 -## (162) -# ; end = r8 -# mov r8, rax +;# (162) +; ; end = r8 +; mov r8, rax 49 89 c0 -# add r8, rsp +; add r8, rsp 49 01 e0 -# ; pos = r9 -# mov r9, rsp +; ; pos = r9 +; mov r9, rsp 49 89 e1 -# ; dst = r10 -# mov r10, rsp +; ; dst = r10 +; mov r10, rsp 49 89 e2 -# add r10, 0x0000 +; add r10, 0x0000 49 81 c2 00 00 00 00 -# ; while (pos < end) { -# ; .L0: (181) -# cmp r9, r8 +; ; while (pos < end) { +; ; .L0: (181) +; cmp r9, r8 4d 39 c1 -# jge .L3 +; jge .L3 0f 8d 72 00 00 00 -# (190) -# -# ; if (*pos == '#') { -# mov al , byte [r9] +; (190) +; +; ; if (*pos == ';') { +; mov al , byte [r9] 41 8a 41 00 -# cmp al, '\n' +; cmp al, '\n' 3c 0a -# je .L2.1: +; je .L2.1: 0f 84 15 00 00 00 -# (202) -# cmp al, '#' -3c 23 -# jne .L1 +; (202) +; cmp al, ';' +3c 3b +; jne .L1 0f 85 15 00 00 00 -# ; while (*pos != '\n') pos++; -# ; .L2: (210) -# inc r9 +; ; while (*pos != '\n') pos++; +; ; .L2: (210) +; inc r9 49 ff c1 -# cmp byte [r9], '\n' +; cmp byte [r9], '\n' 41 80 39 0a -# jne .L2 +; jne .L2 0f 85 f3 ff ff ff -# .L2.1: (223) -# inc r9 +; .L2.1: (223) +; inc r9 49 ff c1 -# jmp .L0 +; jmp .L0 e9 ce ff ff ff -# (231) -# ; .L1: (231) -# ; convert *pos to high word -# mov al, byte [r9] +; (231) +; ; .L1: (231) +; ; convert *pos to high word +; mov al, byte [r9] 41 8a 01 -# mov bl, al +; mov bl, al 88 c3 -# sub bl, 'a' +; sub bl, 'a' 80 eb 61 -# add bl, 10 +; add bl, 10 80 c3 0a -# sub al, '0' +; sub al, '0' 2c 30 -# cmp al, 10 +; cmp al, 10 3c 0a -# cmovge eax, ebx +; cmovge eax, ebx 0f 43 c3 -# shl al, 4 +; shl al, 4 c0 e0 04 -# ; pos++ -# inc r9 +; ; pos++ +; inc r9 49 ff c1 -# ; convert *pos to low word -# mov bl, byte [r9] +; ; convert *pos to low word +; mov bl, byte [r9] 41 8a 19 -# mov cl, bl +; mov cl, bl 88 d9 -# sub cl, 'a' +; sub cl, 'a' 80 e9 61 -# add cl, 10 +; add cl, 10 80 c1 0a -# sub bl, '0' +; sub bl, '0' 80 eb 30 -# cmp bl, 10 +; cmp bl, 10 80 fb 0a -# cmovge ebx, ecx +; cmovge ebx, ecx 0f 4d d9 -# ; combine high and low word -# or al, bl +; ; combine high and low word +; or al, bl 08 d8 -# ; write the byte to dst -# mov byte [r10], al +; ; write the byte to dst +; mov byte [r10], al 41 88 02 -# inc r10 +; inc r10 49 ff c2 -# inc r9 +; inc r9 49 ff c1 -# ; if (*pos++ == '\n') goto .L1; -# cmp byte [r9], '\n' +; ; if (*pos++ == '\n') goto .L1; +; cmp byte [r9], '\n' 41 80 39 0a -# je .L0 +; je .L0 0f 84 8d ff ff ff -## (296) -# inc r9 +;# (296) +; inc r9 49 ff c1 -# jmp .L1 ; +; jmp .L1 ; e9 b7 ff ff ff -## (304) -# ; } -# .L3: (304) -# ; write the decoded bytes to stdout -# mov rax, 1 (sys_write) +;# (304) +; ; } +; .L3: (304) +; ; write the decoded bytes to stdout +; mov rax, 1 (sys_write) 48 c7 c0 01 00 00 00 -# mov rdi, 1 (stdout) +; mov rdi, 1 (stdout) 48 c7 c7 01 00 00 00 -# mov rsi, rsp +; mov rsi, rsp 48 89 e6 -# add rsi, 0x000 +; add rsi, 0x000 48 81 c6 00 00 00 00 -# mov rdx, r10 +; mov rdx, r10 4c 89 d2 -# sub rdx, rsi +; sub rdx, rsi 48 29 f2 -# syscall +; syscall 0f 05 -# jmp .READ ; +; jmp .READ ; e9 2d ff ff ff -## (341) -# -# die: (341) -# mov rax, 60 (sys_exit) +;# (341) +; +; die: (341) +; mov rax, 60 (sys_exit) 48 c7 c0 3c 00 00 00 -# xor rdi, rdi +; xor rdi, rdi 48 31 ff -# syscall +; syscall 0f 05 -# _start+215 \ No newline at end of file +; _start+215 \ No newline at end of file