
Assembly Opcodes March
A downloadable soundtrack
Assembly Opcode March submission for Tiny Music Jam #2 hosted by Aurora595 for Itch.IO September 2025
a streaming link has been provided below:
https://soundcloud.com/doug-stoothoff/assembly-opcodes-march-60sec
Note that per usual the outside-Itch-facing version of the track (for example in SoundCloud for our link) is 60 seconds because it has to hit the minimum length requirements for Distrokid to spit out to the other 27 platforms. Therefore it just has 3 repeats in it of the same thing.
But the 20 second version is here to comply with the rules, in the files.
"Assembly Opcode March" x86 opcodes (like how MOV=1011 binary as high/low) for a simple loop, played as binary tones.
As the basis of my tune i used the x86 assembly code for a simple infinite loop. It performs a futile operation: adding 1 to the EAX register and then immediately subtracting 1, resulting in no net change, before jumping back to repeat indefinitely. Basically it's performative of computer science concepts like wasted cycles, undecidability in halting, or inefficient code in low-level programming history (nodding to early assembly optimization challenges). Decoding the binary tone sequence back to hex opcodes reveals a "pointless eternal march," symbolizing programs that run forever without progress.
loop:
add eax, 1 ; 83 C0 01 (add 1 to EAX)
sub eax, 1 ; 83 E8 01 (subtract 1 from EAX)
jmp loop ; EB F8 (short jump back to 'loop' label; disp8 = -8)
This is a decent assortment of opcodes: 83 (modR/M for ADD/SUB with immediate)
C0 (modR/M byte for ADD to EAX)
01 (immediate value 1)
E8 (modR/M byte for SUB from EAX)
EB (opcode for short JMP)
F8 (displacement for JMP, -8 in two's complement)
These cover common categories: arithmetic (ADD, SUB), control flow (JMP), and operand encoding (modR/M, immediates).
The full machine code in hex is: 83 C0 01 83 E8 01 EB F8.
Detailed Melody Notation
Notes are listed in order, grouped by byte for readability (8 tones per group).
Each tone is a 16th note. Played monophonically on the synth with Step-Recording.
I say that liberally, they -were- 16th notes before compression to 20seconds
I mean that they were while -negotiating- the manual play of the Step Record Mode.
Byte 1 (83 hex = 10000011): G4, C4, C4, C4, C4, C4, G4, G4
Byte 2 (C0 hex = 11000000): G4, G4, C4, C4, C4, C4, C4, C4
Byte 3 (01 hex = 00000001): C4, C4, C4, C4, C4, C4, C4, G4
Byte 4 (83 hex = 10000011): G4, C4, C4, C4, C4, C4, G4, G4
Byte 5 (E8 hex = 11101000): G4, G4, G4, C4, G4, C4, C4, C4
Byte 6 (01 hex = 00000001): C4, C4, C4, C4, C4, C4, C4, G4
Byte 7 (EB hex = 11101011): G4, G4, G4, C4, G4, C4, G4, G4
Byte 8 (F8 hex = 11111000): G4, G4, G4, G4, G4, C4, C4, C4
For Pass 2, I replaced C4 with C5 (523 Hz) and G4 with G5 (784 Hz) throughout the same sequence.
And then i did it as a Canon with 5 other synth/seq notes
And then i manually played for some human feel a pad sequence descending and copied it to 3 other synth pad instruments.
And then percussion for the first half, is off of group 1 in unison using one kind of drum kit
And then percussion for the 2nd half, is off the 8th byte group in unison using woodblocks.
MuseScore was stuck so I don't know if it's going to be one of those rare notation pages that just hangs in eternity saying the score is "in processing" or if eventually you will be able to get at it online. In any case the PDF is here and it uses partly non-electronic instruments because that app has less instruments than the Roland FA-08 synth.
main website:
Published | 18 days ago |
Status | Released |
Category | Soundtrack |
Author | exedexes1 |
Download
Click download now to get access to the following files:
Leave a comment
Log in with itch.io to leave a comment.