Copy own ELF header to obuf edi = 54 # output file index edx = 0 # ediMax NUMBER: edx = max(edx, edi) ebx = null # acc BYTE: al = GetByte() if al is Hash: do al = GetByte() until al == '\n' if al is Whitespace: if ebx not null: [obuf+edi] = bl; edi++ jump NUMBER if al is Colon: edi = ebx; jump NUMBER if al is Numeral: ebx = sixteen * ebx + value(al); jump BYTE else: # (Plus or Minus) edi += 4 if al == '+': [obuf+edi-4] = ebx + Head if al == '-': [obuf+edi-4] = ebx - edi jump NUMBER GetByte(): if more input, return the next input byte; else WRITE() WRITE(): [obuf+44] = edx; syscall write the output program (edx bytes); exit