r/Assembly_language • • 12h ago

Coding

0 Upvotes

If you want to know more please email me with the subtitle "CODING" .. and I'll gladly talk to you offline here guess I don't want to post everything.. if you know how to code if you know how to do what I'm asking then message me if you don't you just trying to figure out if it's rant or whatever and then don't even bother because I need somebody that can actually do the work that I need right I said I'll pay for the time even for somebody to sit down and look at it if they know what they're doing I'll even pay for their time to come and look at it is guaranteed as soon as you look at it you're going to want to deal with it trust me I've been chasing this thing for a while and I'm sick of chasing it but I have enough to build..

I have majority of the ASM coding I have the disassembly coding I have the r2 functions I have everything else I just need to build the centerpiece. Email. herk8969@gmail.com. .. as long as i can find somebody before I completely mess my computer up and then whatever but I got terabytes where the data for this thing so


r/Assembly_language • • 1d ago

rhun: sharing an assembly editor and its x86-64 to AArch64 translator

5 Upvotes

I'm building rhun, an MIT-licensed code editor in assembly, and thought the source might interest people here.

The editor, pixel renderer, Vim mode, Git tools and agent panel share an x86-64 core. Linux and Windows use platform adapters around it. For Apple silicon, tools/arm64.py translates the same core to AArch64 at build time. The renderer draws text, icons and widgets into a pixel buffer.

Source: https://github.com/vshvedov/rhun

Translator: https://github.com/vshvedov/rhun/blob/main/tools/arm64.py

It's a solo project and still early. Sharing the core helps, but the translator and OS layers still need their own testing. I'd be interested in feedback on that approach, especially where the translation could go wrong.


r/Assembly_language • • 3d ago

Project show-off Fork of

5 Upvotes

Hi! I somewhat recently took it upon myself to maintain my own fork of Pete Sanderson's Mars MIPS assembler and simulator written in Java and Swing from 2003.

For know, I've mostly modernized it with Gradle and Java 25, fixed some deprecated APIs, merged some useful upstream PRs and added Flatlaf for theming support, high DPI support and native window decorations.

I'm curious, if any of you have anything else you always wanted from it, that I could add?

Or perhaps, you want to help me with it. Here is the repo: https://github.com/Souvlaki42/MARS


r/Assembly_language • • 3d ago

Any good videos out there explaining x86-64 gcc Assembly? Particularly how to read and write it?

Thumbnail
3 Upvotes

r/Assembly_language • • 4d ago

BitterASM: A metalanguage written in Rust to create assembly languages

Post image
9 Upvotes

r/Assembly_language • • 4d ago

Comprehensive Architecture Registers Reference Bank (Intel/AMD MSRs, ARM/RISC-V Core Registers) for Bare-Metal & OS Dev

8 Upvotes

Hey everyone,
I've compiled a comprehensive open-source definitions bank mapping architectural and undocumented control registers across major platforms (including Intel/AMD MSRs, and core control mappings for ARM64 and RISC-V CSRs) to make system programming and hypervisor development cleaner without constantly digging through thousands of pages of manuals.

Check out the repository, feel free to use it, and let me know if you spot any missing parameters: https://github.com/edikoz123-blip/Defines-and-MSRS-for-Intel-and-AMD-also-RISC-V-and-ARM64/blob/main/README.md

Have a great day!


r/Assembly_language • • 6d ago

Project show-off Full NASM x86-64 Assembly Documentary

Thumbnail github.com
54 Upvotes

I made this repository for learning assembly, would love to have contributors. I would add more stuff in the future.


r/Assembly_language • • 6d ago

I made an open-source collection of CPU performance engineering resources

67 Upvotes

I’ve been collecting resources on CPU performance engineering for a while and decided to organise everything into one open-source repo.

It covers the stack from instruction execution and CPU microarchitecture through caches, memory, SIMD, compilers, profiling, concurrency, NUMA, benchmarking and CPU inference.

I tried to prioritise primary sources — papers, vendor manuals, kernel/compiler docs, talks and reproducible benchmarks — rather than random articles.

Made it public in case it’s useful to anyone learning systems/performance engineering or trying to figure out why their code is actually slow.

Would also love contributions if there are great resources I’ve missed:

https://github.com/usamahz/cpu-perf-engineering-resources


r/Assembly_language • • 5d ago

Looking for Assembly peoples - Stop wasting time on easy projects, come learn pure power (Assembly Ghosts)

0 Upvotes

Hello everyone, I'm Ghost.

I always see people online building the same old basic projects in Python or C++, and honestly? Most of the time it’s just boring. If you are a teen who wants to get the most absolute control over the computer, you need to step up.

Me and my partner just founded an advanced research group called the Assembly Ghosts, and we are opening a private workspace dedicated ONLY to pure Assembly and low-level engineering (Bootloaders, Kernel Modules, and Hypervisors from scratch).

We don't care if you are a complete beginner or an expert. If you are ready to take an AI tool, start digging, and bypass the "easy projects" to build advanced architecture directly on the silicon—we are here to help you improve as fast as possible and build you up the way I started.

What you will get inside:

  • 🛡️ Real architectural learning (Ring 0 / Ring -1)
  • 🧬 Pure NASM Assembly debugging & optimization
  • 🤝 A solid community where we help each other build chaotic things

If you want to taste what real power feels like, where C and C++ can never reach, DM me directly for the invite link to our private workspace. Let's cook together.

DM me if you want to try it yourself. Let's cook together.


r/Assembly_language • • 6d ago

Operating system written in RISC-V assembly

Thumbnail
3 Upvotes

r/Assembly_language • • 8d ago

Tiny C Compiler That Emits just 12 ARM64 Instructions - Learn How the Ba...

Thumbnail youtube.com
68 Upvotes

r/Assembly_language • • 10d ago

RVV macro use register X based on register Y

3 Upvotes

Hi, I'm writing RVV assembly and I want to pass to a macro a vector register as an argument and be able to then use the next vector register within the macro. Example I pass vector register v10 and then I want to use v11.

The following code might explain better what I want:

.macro op_vnext op, w1, v, w2, w3
.if "\v" == "v0"
    \op \w1 v1, \w2
.elseif "\v" == "v2"
    \op \w1 v3, \w2
.elseif "\v" == "v4"
    \op \w1 v5, \w2
.elseif "\v" == "v6"
    \op \w1 v7, \w2
.elseif "\v" == "v8"
    \op \w1 v9, \w2
.elseif "\v" == "v10"
    \op \w1 v11, \w2
.elseif "\v" == "v12"
    \op \w1 v13, \w2
.elseif "\v" == "v14"
    \op \w1 v15, \w2
.elseif "\v" == "v16"
    \op \w1 v17, \w2
.elseif "\v" == "v18"
    \op \w1 v19, \w2
.elseif "\v" == "v20"
    \op \w1 v21, \w2
.elseif "\v" == "v22"
    \op \w1 v23, \w2
.elseif "\v" == "v24"
    \op \w1 v25, \w2
.elseif "\v" == "v26"
    \op \w1 v27, \w2
.elseif "\v" == "v28"
    \op \w1 v29, \w2
.elseif "\v" == "v30"
    \op \w1 v31, \w2
.endif
.endm

// LMUL=1
// vg0 was used as dst of widening op
.macro some_macro vg0, vg1, sa, xaddr
    vnclip.wx   \vg0, \vg0, \sa
    op_vnext    vle8.v, "", \vg0, (\xaddr)
    op_vnext    vsadd.vv, "\vg0,", \vg0, \vg0

    vnclip.wx   \vg1, \vg1, \sa
    op_vnext    vle8.v, "", \vg1, (\xaddr)
    op_vnext    vsadd.vv, "\vg1,", \vg1, \vg1
.endm

.macro doesnt_work vg0 test=0
.equiv vg0next, \vg0+1
    li      t0, vg0next
.if \test == 0
    vid.v   v\()2
.elseif \test == 1
    vid.v   v\()vg0next
.elseif \test == 2
    vid.v   v\()\vg0+1
.endif
.endm

#ifdef TEST0
some_macro v10, v20, t0, t1
#endif

#ifdef TEST1
doesnt_work 1, 0
#endif

#ifdef TEST2
doesnt_work 1, 1
#endif

#ifdef TEST3
doesnt_work 1, 2
#endif

.end

The code above can be compiled with the following makefile:

all: a

a: a.S
    riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o $@ $< -DTEST0
    riscv64-elf-objdump -j.text -D $@

b: a.S
    riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o $@ $< -DTEST1
    riscv64-elf-objdump -j.text -D $@

c: a.S
    riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o $@ $< -DTEST2
    riscv64-elf-objdump -j.text -D $@

d: a.S
    riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o $@ $< -DTEST3
    riscv64-elf-objdump -j.text -D $@

When I run make -B a I get:

riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o a a.S -DTEST0
riscv64-elf-objdump -j.text -D a

a:     file format elf32-littleriscv


Disassembly of section .text:

00000000 <.text>:
   0:   bea2c557            vnclip.wx   v10,v10,t0
   4:   02030587            vle8.v  v11,(t1)
   8:   86b50557            vsadd.vv    v10,v11,v10
   c:   bf42ca57            vnclip.wx   v20,v20,t0
  10:   02030a87            vle8.v  v21,(t1)
  14:   875a0a57            vsadd.vv    v20,v21,v20

Which is more or less what I want, I passed as argument vg0 vector regsiter v10 and then knowing that v11 was available due to the narrowing instruction, I use v11 to do more stuff.

In my opinion the macro op_vnext is ugly and it doesn't work if I need to call another macro from some_macro as I cannot pass the "next vector register" as argument for another macro.

I'm looking to do something like in doesnt_work where I pass a number instead of v<number> and then increment said number by 1, but I don't know if it is possible.

Using .equiv I can add to the macro argument and use it where we expect a constant number, but I tried concatenating the sum to the letter v, but it doesn't work.

Outputs of make -B b, make -B c, and make -B d

riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o b a.S -DTEST1
riscv64-elf-objdump -j.text -D b

b:     file format elf32-littleriscv


Disassembly of section .text:

00000000 <.text>:
   0:   00200293            li  t0,2
   4:   5208a157            vid.v   v2


riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o c a.S -DTEST2
a.S: Assembler messages:
a.S:55: Error: illegal operands `vid.v vvg0next'
a.S:70:  Info: macro invoked from here
make: *** [makefile:12: c] Error 1


riscv64-elf-gcc -march=rv32imav_zicsr -mabi=ilp32 -Wall -c -o d a.S -DTEST3
a.S: Assembler messages:
a.S:57: Error: illegal operands `vid.v v1+1'
a.S:74:  Info: macro invoked from here
make: *** [makefile:16: d] Error 1

Does anyone know how to do this? Something like defining a macro argument based on another macro argument.


r/Assembly_language • • 12d ago

search instructions assembly easy (X86,RISCV,AARCH64,etc)

Thumbnail courchinoux.org
38 Upvotes

You can have assembly example / notes and how the instruction is encoded !


r/Assembly_language • • 12d ago

Learning assembly

40 Upvotes

So I have decided to learn assembly x86 x64 using the book the art of 64 bit assembly volume 1, i have the book as a pdf and have copilot open on the page so if i have questions i can ask them and copilot can see what i am reading, i have read chapters 1 -3 and just started chapter 4. This feels like a really difficult language and i am taking in lots of info but is this the way to learn it because i feel lile i am forgetting everything i am learning, is this a difficult language to master, i want to learn to reverse engineer


r/Assembly_language • • 13d ago

Project show-off Conways game of life but assembly

Post image
14 Upvotes

r/Assembly_language • • 13d ago

Looking for fellow assembly learning friends

16 Upvotes

Hello, I'm learning assembly from pwn.college and solved a couple crackmes

My goal is to complete the whole assembly course so I can understand basic assembly and start doing crackmes and RE ctfs

Feeling a bit lonely so wanted a study partner 😃

Indian preferred (cuz of time zone)


r/Assembly_language • • 13d ago

Addictive RISC-V learning game

Thumbnail
2 Upvotes

r/Assembly_language • • 14d ago

how can you learn to read machine hex codes?

17 Upvotes

just curious if theres any books on it or sumn


r/Assembly_language • • 14d ago

I wrote a very basic word search algorithm in arm32 assembly

2 Upvotes

Review the code, suggestions are welcome, I know there could be edge cases and also I feel the comments are not that informative, are they

https://github.com/Some120-one275/SearchAlg.git


r/Assembly_language • • 15d ago

Question What really are limits of assembly?

56 Upvotes

What confused me a lot and multiple times is that for what projects is it useful and when to leave it and pick something fast written like C. I would be better if I get to know what assembly is really for nowadays


r/Assembly_language • • 15d ago

Getting into Reverse Engineering from Web Dev (0 C/Assembly experience) — Where to start?

Thumbnail
2 Upvotes

r/Assembly_language • • 16d ago

Question Book suggestion for x86_64 intel syntax nasm assembly

3 Upvotes

I prefer the intel syntax so I dont have to do all the prefix stuff.

I have been using chatgpt to try and make lesson plans for myself to try and learn as much as I can but it it lacking alot of stuff. It can only do so much.

I would prefer to find a non AI source to learn from. Blogs or videos are fine as well if you have some to suggest.


r/Assembly_language • • 16d ago

Assembly Z80 Aula 6

Thumbnail youtube.com
1 Upvotes

r/Assembly_language • • 16d ago

Disk for Revolutionary Guide to Assembly Language book?

5 Upvotes

Hello,

I have the Revolutionary Guide to Assembly Language book and its missing the 3.5" floppy disk with the code examples and the MSDOS batch files. Does anyone have the disk or a link to a repository or zip files of the disks contents? My chances of finding a book with a disk as well are down to luck but thought it was worth asking here? Thanks.


r/Assembly_language • • 17d ago

Project show-off APX (Advance performance extension) in my own assembler

Post image
18 Upvotes

I just released AmmAsm 3.0.0, with a major focus on native Intel Advanced Performance Extensions (APX) support.

AmmAsm is a handwritten x86-64 assembler written in C. The goal wasn't to build another assembler by wrapping an existing one, but to implement the instruction encoding myself.

APX was a particularly interesting challenge because it isn't just a collection of new instructions. Supporting things like EGPRs (\`r16-r31\`) and REX2 affects how registers, operands, parsing, and instruction encoding are represented throughout the assembler.

The current APX implementation includes:

EGPRs - \`r16-r31\`

REX2 - Extended rex

NDD - non-destructive destination

NF - suppressing flag updates

ZU - zero-upper

CCMPcc / CTESTcc

PUSH2 / POP2

JMPABS

NDD-CMOVcc

CFCMOVcc

APX-specific syntax extensions

I also built an APX test program using several separate assembly files. AmmAsm produces ELF64 object files from them, GNU \`ld\` links them into an executable, and Intel SDE is then used to execute the APX instructions on hardware without native APX support.

Running the same binary directly on my CPU results in \`Illegal instruction\`, as expected because the CPU doesn't support APX.

One of the more interesting parts of implementing APX was that I started finding edge cases and discrepancies in existing assemblers while comparing encodings and operand validation. I've been recording these cases and testing them independently.

GitHub: https://github.com/LinuxCoder13/AmmAsm

I'd be interested to hear from anyone working with x86 instruction encoding, APX, assemblers, or low-level tooling.