hhh 1.0.1

The hhh Binary File Processor
Documentation
// Test out lots of directives.

0:

// Turn on radix prefixes.
[[prefix]]

// Generate file offsets and ASCII preview.
[[offsets]]
[[ascii]]

"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna\
aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint\
occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."

// Do not generate file offsets or ASCII.
[[no_offsets]]
[[no_ascii]]

/* Change the current offset. */

512:

// Some binary data.
0b10000000/1 0b10101010/1 0b01010101/1 0b00000001/1 0b11110000/1 0b00001111/1 0b1111000011110000/2

// Incorporate a tiny bit of objdump
1024:
[[no_prefix]]
[[relative(0x4000)]]
[[stoic]]

/usr/bin/ls:     file format elf64-x86-64


Disassembly of section .init:

0000000000004000 <.init>:
    4000:	f3 0f 1e fa          	endbr64 
    4004:	48 83 ec 08          	sub    rsp,0x8
    4008:	48 8b 05 b1 df 01 00 	mov    rax,QWORD PTR [rip+0x1dfb1]        # 21fc0 <__gmon_start__@Base>
    400f:	48 85 c0             	test   rax,rax
    4012:	74 02                	je     4016 <free@plt-0x66a>
    4014:	ff d0                	call   rax
    4016:	e8 c5 2b 00 00       	call   6be0 <__sprintf_chk@plt+0x1f00>
    401b:	e8 d0 30 01 00       	call   170f0 <_obstack_memory_used@@Base+0x6940>
    4020:	48 83 c4 08          	add    rsp,0x8
    4024:	c3                   	ret    

// Re-engage warnings and error checking.
[[no_stoic]]

// The objdump should produce the following.
// 00004000: f3 0f 1e fa 48 83 ec 08 48 8b 05 b1 df 01 00 48  // ....H...H......H
// 00004010: 85 c0 74 02 ff d0 e8 c5 2b 00 00 e8 d0 30 01 00  // ..t.....+....0..
// 00004020: 48 83 c4 08 c3                                   // H.....

// An end marker.
"END"
04 00