Back in the days of early 80s glorious feats were done with x86 assembler and DOS operating system was able to come to the light.
It squeezed a lot of power out from stupidly slow Intel 80286 (hence the term x86 which was widely adopted and still used) CPU.
There was no "high level languages" yet much in use in those PC programs that did one thing and tried to do it fast and efficient, much like how UNIX functions albeit giving 100% of the PC performance to one single program at one time as this was the soul of DOS systems, they were not multiuser systems.
But the thing is, they did a lot with having very little in terms of memory or CPU crunching power. Memory was 640 kilobytes, thats right about half a megabyte.
WHAT COULD BE ACCOMPLISHED TODAY with 16x PC-CPU cores, 16GB+ memory if the software that is being run on it is written purely in assembly? Some minor C code is allowed to be thrown in if its optimized properly. Would it be possible to create incredibly powerful number crunching software for example? It wouldnt necessarily even need a GUI, just CMD-line. But that depends how and what for it will be used and most importantly by whom.
No different modern software is INCREDIBLY advanced and compilers already do all the optimization possible.
If you've got performance issues just use modern hardware, duh.
Ryan Powell
The compiler is smarter than you. The only speed gain you get by going asm is to change your program to be something the CPU likes more. Also most softwares on the 286 era used a combination of high level language for the "slow loops" and ASM just on the parts where it mattered. Only crazy people like the zsnes author that did everything in asm.
Modern CPUs are all about pipelining. Unless you can hand write optimized non-linear assembly, you're better off just using a high level language.
Christopher Sullivan
Jow Forums is dead.
Jaxon Barnes
Compilers these days are so good that most people would not be able to write better hand-written assembly. An application large enough to need hand-written assembly on modern hardware would be necessarily so complex that assembly programs would have too many bugs to be practical.
>Would it be possible to create incredibly powerful number crunching software for example? people already do this if they think they can out-run an optimizing compiler, but they do it for discrete sections of the code that need to be optimized rather than writing a horrifying buggy/unmaintainable mess of assembler now show us a proper modern, complex application written purely in assembly like the OP describes, not small hand-optimized segments that people still do today when warranted.
Brayden Smith
google "star journey" and "the witness"
David Wood
It's really not that compilers are "so good" these days, it's that CPUs have so many hardware level optimization techniques that what constitutes efficient assembly is completely different from the 80s. It's really easy for a compiler to take advantage of that, not so much for a human.
Nobody cares, m8. OP is talking about writing an entire program, not about a number crunching scenario in a tight loop. Those are two entirely different problems. A lot of programs use embedded assembly for stuff like that for scientific applications and encryption, but it's not something that typical programs can benefit from much if at all.
Eli Lewis
this shit looks like exactly what I described at best; blocks of small and optimized assembler code strung together by higher level languages handling the shit nobody would ever want to write in assembler
don't worry, when you actually start writing code you'll learn why assembler isn't universal anymore, even in OP's "glorious times" everyone who could afford more powerful hardware was using high-level languages instead.
what are you talking about? OP was always talking about programs fully written pure assembler. are you retarded or just illiterate?
nobody's arguing that assembler isn't sometimes used in cases where it's warranted on performance grounds, people who actually read the OP were always arguing against the stupid rose-tinted hipster viewpoint that everything should still be written in assembly just like the "good old days" when security, portability and long-term maintainability were incredibly remote concepts on personal computers.
Levi Perez
>o-only 90% of the program benefits from assembly! see! the c-c-c-c-compiler is smarter than you!
Aiden Myers
once again, are you illiterate?
Samuel Bell
People who ask these questions tend to forget that hardware was much simpler back then. I'll use a more extreme example for illustrative purposes: people say that games before were made in C/ASM with no/little framework/engine support. But at the time, we didn't have a programmable pipeline, it was fixed function. On consoles it's even easier because all the primitives are part of the machine. So you just had to put your resource pointers on the right registers and call an interrupt and everything would magically render exactly as you would expect. Now you have to actually program the rendering routine in excruciating details, so it turns out it's actually slightly harder to use full-fledged engines on modern hardware than to program from scratch on old hardware. The same idea applies to modern CPUs vs old archs. Now you have a billion subsystems that you need to move your data into before you can do fast ops on them before you move them back and you generally have to program a significantly larger amount of the routines that used to be hardware-level available.
David Evans
Okey then genius, whats wrong with this asm statement? mov rax, 0
Sebastian Nguyen
>0.000001% is 90% Pottery.
Kayden Edwards
user I'm very curious on learning how old machines used to work, do you know where I can lurk more?
Lincoln James
I wish we had hardware with modern performance but with 80s simplicity. Fucking CIA niggers.
Chase Lewis
You cant read from null
Daniel Harris
Moron. Try again.
Jeremiah Price
Considering modern complexity exists to improve performance, what you're asking for is simply impossible. But just get into microcontrollers/embedded systems if you just want simple designs clocked to ridiculous speeds.
Jonathan Green
If you want to zero a register you xor it with itself instead of moving zero into it. That's special-cased in the instruction decoding and I think it also saves you a byte or something over the encoding for moving an immediate zero.
Colton Thompson
>>There was no "high level languages" You mean like COBOL, Fortran, BASIC, Pascal etc?
Luis Torres
hand optimized division tricks are usually 3x faster as well
Elijah Miller
I just assumed he meant on personal computers, which was generally true although plenty of high-level language compilers and development tools existed and were used.
Easton Sanchez
Compilers were pretty shitty back in the day, so beating them was trivial. CPU's were also much simpler back then which helped make it easier to write assembly for. If you want high performance nowadays, microoptimizations like barely matter. What you really should do is use tools for profiling performance hotspots and then analyze those.
Charles Moore
based and terrypilled
Eli Hall
asmfags can keep their shitty code, I write my code directly in binary
Julian Cooper
if you memorize the opcodes it's not that hard
Ryan Wright
This. It's only more of a pain when you need to manually convert data representations.
Caleb Gutierrez
Most software developed for MS-DOS was written in Turbo Pascal or something similar. Sure, some nut-jobs liked to write assembler code but most of us didn't. There's wasn't any reason to then and there's no reason to now either. C compilers are really good at optimizing. If you compare say Java to C then sure, there's a difference. But saying we should go back to writing everything in assembly is silly.
Chase Richardson
>C compilers are really good at optimizing. t. knows nothing of assembly or compilers
Anthony James
>WHAT COULD BE ACCOMPLISHED TODAY with 16x PC-CPU cores, 16GB+ memory if the software that is being run on it is written purely in assembly? Realistically speaking, less than what is currently being achieved with higher level languages. The abstraction they provide is extremely useful when working with very, very complex codebases. The code is still written and maintained by people, at some point using only ASM simply becomes impractical and unmaintainable.
There are other factors to consider as well, for instance how you're not actually programming for a single processor in particular nowadays, but for shitloads of models which use the same core ISA but might not actually support all instruction sets. It's not as easy as targeting one single CPU model which was also a much simpler device than a modern CPU, plus modern compilers are pretty damn good. Maybe you could produce better code for very particular parts of your project, but I seriously doubt you'd produce better ASM overall when you've got a project which hits millions of lines or such.
Jaxson Reyes
high level languages make it more difficult to maintain and write, not less.
Adrian Cooper
>t. newfag who doesn't know what "t." means he's not wrong, in the general case a modern optimizing compiler will generate better and more compatible code than your inexperienced ass ever would, makes a great point on processor targeting as well you have literally no fucking idea what you're talking about lmao
Jaxon Powell
You mean software by 3rd parties
Stuff by Microsoft was never written with Pascal
Actually it is mostly games that ware Pascale
Joshua Peterson
It does not need to be necessarily wery complex software however
What if its designed to simply perform some Fourier Equation with insane speeds?
To only study a crystalline structure of some molecule?
It will be almost purely maths then. Maybe it will be 100 lines of code or something.
Elijah Lee
>You mean [most of the software people bought PCs to run] imagine being so underage that you think everyone was running a pure microsoft stack on a system that was literally defined by its third party software and hardware developer base
Jaxson Rivera
people already do this and have done it for decades
Zachary Martin
This guy has said some wonderful things regarding this topic: countercomplex.blogspot.com/ I highly recommend anyone who's not cancerous neo/g/ read his entire blog.
x86 doesn't have exposed pipelines without interlocks, x86 have had OoO execution since the 90's.
Carter Garcia
for you
Jackson Reed
I had an university teacher specialized in electronics who gave us classes in Computer Architecture. Being a specialist in the 80s, he tends to have a good knowledge of this, that's the actual shit he worked with back then
Jason Collins
Au contraire my javascrip noob, things like using xor for clearing a register is very important. Why else would compilers make an effort to do so? Shorter code, no artificial dependency on a literal load, potentially smaller uop encoding or even removal of the xor at the register rename stage.
Eli Adams
Microsoft wrote most of their software in Pascal?!? Ever heard of Windows?
Aiden Gray
not an application
Hunter Bennett
>multiple applications aren't a single application so it doesn't count Please don't. Literally just pick any of them then. The kernel, the userland, the media player, whatever else.
Ryder Collins
why didn't you just pick a specific example yourself then? if anything that is a perfect example of why pure assembly projects are terrible considering it's >targeted to a single ancient Athlon 64 development system with no support for newer instruction sets that could significantly enhance many workloads >has no applications other than the basic tools the developers themselves have supplied for it (really, a media player is a selling point? what year is it?) >is a closed source and likely unmaintainable mess that hasn't progressed at all in the years it has existed >has poor hardware support
seriously, what argument are you trying to make with this crap? it's a toy/demo/proof of concept, nobody uses this for anything important.
Blake Myers
>why didn't you just pick a specific example yourself then? You're really being pedantic over this? Why would I present multiple examples instead of 1? Fuck off. You're not trying to discuss, you're trying to argue.
>Realistically speaking, less than what is currently being achieved with higher level languages. The abstraction they provide is extremely useful when working with very, very complex codebases. The code is still written and maintained by people, at some point using only ASM simply becomes impractical and unmaintainable.
Abstraction and modularization is EXACTLY what can render assembly useful in a program. If you properly break up your code into independent parts, it'll make it trivially easy both to profile where a CPU bottleneck is, and to replace a part that has a clear input and output with an assembly alternative that has the same (and ONLY that part).
Samuel Roberts
because I asked for a single complex application, not a collection of simple basic shit you're trying to pass as a whole application because you have literally nothing else to contribute to this discussion you claim to want so badly while you're just replying with one-liners and not even reading my replies to them fully?
stop projecting so hard and actually offer some discussion if you're interested in it, because all you're doing right now is screeching "s-stop being pedantic!" and providing literally nothing else while I've already attacked that example as a whole and received nothing back from you on it
Xavier Jenkins
...
Isaiah Sullivan
>my arbitrary and sliding level of complexity nah dude, that aint no discussion. An OS with a full application suite aint trivial.
Henry Roberts
Not the guy you're replying to, but your reaching is incredibly pathetic. That's all.
why is this thread attracting so many illiterate retards.
Noah Garcia
Each abstraction allows dumber people to learn to code.
Austin Lee
it's a simple multitasking operating system with some basic net clients, an IDE, and a shitty media player, single developers could do this shit in the 80s, no matter how you spin it's not really that impressive. >but he showed you a useless toy operating system with pretty windows and a MEDIA PLAYER! you're moving the goal posts! wow what a great discussion we're having, I truly feel BTFO beyond belief right now with these pictures of goalposts and funny cat gifs
seriously fuck off you stupid hipsters
Connor Perry
This reads like self convincing.
Luis Gutierrez
Yet it's true. Windows was MSDOS software from the beginning if you didn't know that, Windows and most software for it was written in Pascal.
Kevin Reyes
Sure thing, buddy. Go tell your handler you won an internet argument. Go on now, be a good boy.
if this is all the "discussion" I'm getting then yeah, guess I'm good, you can have the last word if it makes you feel special
Cooper Allen
How about GeoWorks then? Operating system with GUI and productivity software (spreadsheet, drawing program, word processor etc.) written in assembly.
Henry Young
aren't the modern versions a mixture of assembly and C code?
Dominic Garcia
The "discussion" stopped when you insisted on holding your ground despite being proven wrong several times. You're a weak, pathetic man, incapable of admitting defeat.
I usually take care to always be respectful, even on 4channel, but you 100% deserve me fucking with you, so what the hell. I'm indulging myself.
>name ONE(1) application written in ASM that's good, I dare you >an OS isn't impressive enough >several media players aren't impressive enough >web browsers aren't impressive enough >roller coaster tycoon isn't impressive enough >wow you can't even name 1 thing, pshh later kids
Angel James
fucking kek how many levels of autism is that self righteous dildo on
Jaxson White
That’s cool and all, but are any of you actually using MenuetOS or posting from shitty old asm web browsers that don’t comply with any modern standards and can’t actually display any web pages?
Adrian Davis
Is this some kind of trick question because it's not related to what the original user asked for. They said a modern, complex, application written only in ASM. I provided several but they don't qualify because I don't personally use them and they don't personally find them impressive. So it's all invalidated.
Nolan Wood
Yeah, you’re all high fiving each other over some retard tripping over his own logic but still all you’ve posted are crap not even you want to use that doesn’t really further the OP’s interests or the pro-asm side in general.
Kevin Butler
>WHAT COULD BE ACCOMPLISHED TODAY with 16x PC-CPU cores, 16GB+ memory if the software that is being run on it is written purely in assembly? en.wikipedia.org/wiki/Amdahl's_law
Aaron Green
Why assert that as anyonone's intention? What the heck. You can't speak for OP, you don't know what my intention was, and you're not every reader either. This is madness of some kind.
In isolation, standing alone in the reply chain, someone asked for something and it was provided. As has been typical in the thread, the goal keeps moving.
Thomas Reyes
Alright, but this thread is pretty clearly and asm circlejerk and I’m just noting that none of the asm stuff you guys have posted are really that good.
James Moore
I'll bet your car has 8 steam engines in it
Caleb Davis
No x86 comes from the 8086 which was one generation x86 prior to 80286
Aiden Reyes
Unix which was around at the same time and xenix(Microsoft licensed AT&T Unix) which ran on the same computer as IBM dos(msdos) which was a multiuser system
Julian Thompson
what was wrong with rollercoaster tycoon?
Lucas Peterson
I guess RCT is alright, but that’s a game. I’m more talking about the non /v/ stuff.
Ayden Morgan
Pretty sure PC/IX was still single user due to no memory protection, maybe Xenix was different.
How desperate are you guys to worship asm? You’re just nitpicking people’s posts looking for anything they might have overlooked thinking it invalidates everything else they’ve said that you haven’t even tried to argue against.
Eli Wright
is this the academy of goalpost teleport spells?
Oliver Butler
Is it next to the academy of deluded straw grasping?
Kayden Thompson
Hello newfriends! Sorry to intrude on your upvoting session, but I’m here to remind you all that crying logical phallus is in fact not an argument in itself, and your points must still be substantiated if you wish to be taken seriously. yourlogicalfallacyis.com/the-fallacy-fallacy
Elijah Baker
>WHAT COULD BE ACCOMPLISHED TODAY Significantly slower development process, smaller feature set, and limited cross-platform availability.
Jackson Martinez
>give me examples of ASM being good >lmao why are you guys worshiping ASM
Alexander Stewart
People already do that as far as I know. Writing (small) parts in ASM is practical and can be useful, yeah. That's obviously different from OP's question about writing purely in ASM and nothing else though.
Grayson Mitchell
most algorithms you can write in C or the equivalent it will generate 100% optimal assembly, the times where you gain anything from going straight to asm are rare