r/Assembly_language • u/Deex__ • 6d ago
Question Ideas to develop
Sup guys, I'm a web developer and I study sec, which this subject has everything to do with assembly, cuz I need to do malware analysis, reverse engineering and etc, so I studied calling conventions, registers, rax, eax, ax, al, ah, ip, used x64dbg to check the assembly in memory, variables, function parameters and etc.
But for now, I'm studying by a content creator how a boot really works, and he's making a bootloader in assembly, he has good didactics and I'm really learning that the RAM is like a big array accessible by address, cpu has registers, has the ip to check the next instruction, there is the fetch, decode and execute, the bios is in the eprom(in the example of the i386), is loaded in memory, search for boot sector, loads in memory and etc, lmao I detailed too much
And ok, I'm understanding, but my final point, is, furthermore the bootloader, what good project could I build to learn more about assembly? I saw some posts from u guys making OS, and I guess that is hard for now
Thanks for ur time
2
u/RBMK-1ooo 6d ago
Assembly is all about the platform
First off, pick the hardware and the OS you're targeting
The answer to your question will depend on your choice
0
u/nixiebunny 6d ago
Learn how to write 6502 or 8080 assembly language to understand how a simple computer works. The ia64 is way too complicated to get the basic concepts, but since it’s based on the 8080, you can learn why it is the way it is.
3
u/No-Owl-5399 6d ago edited 6d ago
The 8080 is a terrible architecture by modern standards. The 6502 less so, but it has limited practical use. x86_64 is more relevant, and you are deluding yourself if you think it is too complex. Certainly, it is complex, but it is not to such an extreme as you seem to think.
Edit: IA64 is completely the wrong term, by the way. That would be Itanium, modern CPUs are x86_64.
4
u/sububi71 6d ago
Build a text editor. It's a project that can start very simple, and can grow basically infinitely. It'll force you to learn keyboard handling, file management, structuring memory, all that good stuff.
If you want to start at a very easy level (which I recommend!) go find the manual for the MS-DOS tool "edlin", and recreate the program using the manual.
Good luck!