I dont get it? 5 years javascript dev here. is this the ultimate filter?

I dont get it? 5 years javascript dev here
is this the ultimate filter?

Beware Cat Shirt $21.68

Rise, Grind, Banana Find Shirt $21.68

Beware Cat Shirt $21.68

  1. 2 years ago
    Anonymous

    Yes. Why the question?

  2. 2 years ago
    Anonymous

    No. ASM is simple but tedious and overly verbose. I don't know what you want to do, but i already know you will never need it. Even if you program microcontrollers (you do it in C nowadays).

    If you want to get closer to the metal while being capable of building things that have a value and work before you die, learn C, C++ or Rust.

    • 2 years ago
      Anonymous

      this. most real world ASM is calling out to magic instructions and virtualization stuff

    • 2 years ago
      Anonymous

      watching youtube videos doesn't make you a dev. if you have to ask you definitely have 0 years of experience.

      also, this guy fricks

      • 2 years ago
        Anonymous

        >also, this guy fricks
        what does that mean?

        • 2 years ago
          Anonymous
    • 2 years ago
      Anonymous

      It can be verbose, but there are other times where it can in fact be less verbose as you don't have any programmatic beaucracy and abstractions to deal with - at least for CISC processors. RISC ones are a different matter, but those are designed with higher level languages in mind so it would be foolish to want to program in assembly on them. Plus a pain in the ass.

      ASM is moronic simple, I've seen people literally explain how ASM works to non-programmers in 30 minute videos. All the commands are conceptually extremely simple.

      Like others have said, it's simply tedious and verbose to the extreme. If you find it harder than Javascript I don't know what to tell you. If anything I find it substantially easier to understand than JS because it is conceptually less complicated. I suppose JS is easier if you don't understand programming beyond a copy + pasting from stack overflow with no idea what's actually going on at a low level.

      It's no different then putting together a puzzle. You have all the pieces, you just need to figure out how to put them together to achieve what you want. I honestly have no idea why people struggle with it so much.

      this. most real world ASM is calling out to magic instructions and virtualization stuff

      You can write modern, multitasking user land programs in assembly, that has nothing to do with virtualization. You'll of course be writing c/c++ function calls in assembly as OS's are written in them, but everything else in between can be pure assembly.

      • 2 years ago
        Anonymous

        >You can write modern, multitasking user land programs in assembly
        k but why would you?

        • 2 years ago
          Anonymous

          Why would you write such programs in C when you could use Java?
          Precision, less chance of feature bloat and, tertiarily, performance.

          I'm just starting to learn assembly [...]
          and I want to get really good at it, in order to make a compile tool chain from scratch. I plan to make a Forth interpreter, and use it to make a Lisp interpreter in which I will be able to write the compiler itself.
          Any advice, on this or on getting good to assembly? Do you have a must-see ressource maybe?

          My suggestion is to start out writing very basic things in asm, but you kind of already knew that. My first projects were on the level of hexadecimal and decimal converters. Of course, I cannot go back to writing anything in assembly without my library, so I'd recommend using that. If you use my head.ah on linux, you don't even need to worry about linking or sections, you just need to assemble and chmod the executable (Brian Raiter's Tiny ELF guide demonstrates much of how I did this). Not to mention the fact that trying to write re-usable, modular code without something like genreg.ah is borderline impossible.

          In terms of resources, Felix Cloutier's x86 reference is quite good. I remember just reading through these, trying to figure out what kinds of functions I could use each instruction for. That helped a lot. There are also the Intel and AMD architecture and software development guides which help with best practices and understanding the hardware you are developing for. It's useful if you are in a hot loop and need to make a performance decision on multiple options.

          Also, getting to know your assembler's macro system is invaluable. It can literally multiply the speed at which you work. Diligently read the nasmdoc pdf. It is my friend and I suspect it will be your's, too.

          Finally, if you haven't already, watch What's a Creel's excellent video on branchless programming. I was learning before watching this but once I found it I went all in on assembly and never looked back.

          • 2 years ago
            Anonymous

            Thank you very much anon, your ressources will be very valuable.
            I already knew of nasmdoc of course, the Intel documentation, Felix Cloutier's website, and the video on branchless programming.

            I have everything to learn though, and had no idea that macros were that important in assembly. I've head that register allocation is a really important optimization, and I'm starting to understand the pain it is to jungle them, so I will really study and try to understand your genreg.ah file, thank you for that.

          • 2 years ago
            Anonymous

            I'm glad to help. If you are ever stuck trying to understand how something in the library works, feel free to open an issue about it and I will either respond with the information, if it's simple, or push in-file comments explaining it if it's complex. I wrote it primarily for myself, so it's still a bit messy and opaque in places.

            I want to improve it but I moreso want to work on my newer project, a novel assembler/preprocessor system which I am prototyping, so I can't quite justify re-reading the whole library just to clean up and explain things.

        • 2 years ago
          Anonymous

          Some people just like doing things like that.

    • 2 years ago
      Anonymous

      Most small scale software projects in ASM are untenable for most people. Having the wherewhithal to work on and make progress on such projects takes great a sense of purpose as well as the competence to overcome the inherent drawbacks of the programming form, and to exploit its benefits.
      To call it a filter is an understatement. Most developers will call it pointless and, for them, they are correct.

      ASM is moronic simple, I've seen people literally explain how ASM works to non-programmers in 30 minute videos. All the commands are conceptually extremely simple.

      Like others have said, it's simply tedious and verbose to the extreme. If you find it harder than Javascript I don't know what to tell you. If anything I find it substantially easier to understand than JS because it is conceptually less complicated. I suppose JS is easier if you don't understand programming beyond a copy + pasting from stack overflow with no idea what's actually going on at a low level.

      Totally right about it's simplicity, but with certain macros it's bearable to design more complex systems. I created a macro system which aided in just this. It allowed register independent design of functions, allowing one macro to slot into any register set you need to avoid unnecessary scratching, this alone vastly improves the development time as you don't need to, for example, re-write a bin-to-hex algorithm just to print a number to the screen.

      I've long since put this, and other macro systems, into a inclusion library for my own use but I have recently decided to make all of these essentially public domain to increase the popularity of assembly programming since I am working on a project which supercedes this one. Here is that library if you are interested.
      https://gitlab.com/instrvmentaicari/mystdasmlib.

      • 2 years ago
        Anonymous

        Not interested by the lib but impressed by your work and dedication anon

        • 2 years ago
          Anonymous

          Thanks.

      • 2 years ago
        Anonymous

        I'm just starting to learn assembly

        [...]

        and I want to get really good at it, in order to make a compile tool chain from scratch. I plan to make a Forth interpreter, and use it to make a Lisp interpreter in which I will be able to write the compiler itself.
        Any advice, on this or on getting good to assembly? Do you have a must-see ressource maybe?

    • 2 years ago
      Anonymous

      You are misunderstanding the problem that assembly solves. Nobody uses assembly "because it's better". People only use assembly because there's no other choice. What I mean by this is that there are problems that simply cannot be solved in C. The smartest C compiler will never generate a "hlt" instruction, or "sti" or "cli". Many C compilers don't support 16-bit code so you have to use assembly. Many platforms don't even have C compilers so you have to use assembly. Nobody is using assembly because they actually want to and they think it's the better language. It's just that it's the only thing available.

      Therefore, you should be able to program in it. If your javascript "compiler" vanishes before your feet, what will you do? Most javascript "compilers" will shit their pants. Competent devs will switch to assembly and be fine. Guess who's left? The javascript developers.

      • 2 years ago
        Anonymous

        I'm drunk and this doesn't make a lot of sense. But you should be able to get the general idea.

    • 2 years ago
      Anonymous

      Bullshit. x86-64 is just about as easy to write and maintain as C.

  3. 2 years ago
    Anonymous

    It's somewhat useful skill to be able to read it for example when symbols get wonky and it gets you funky profiler results etc etc. But you'll never need to write it.

  4. 2 years ago
    Anonymous

    learn how the CPU works and assembly makes perfect sense

  5. 2 years ago
    Anonymous

    ASM is moronic simple, I've seen people literally explain how ASM works to non-programmers in 30 minute videos. All the commands are conceptually extremely simple.

    Like others have said, it's simply tedious and verbose to the extreme. If you find it harder than Javascript I don't know what to tell you. If anything I find it substantially easier to understand than JS because it is conceptually less complicated. I suppose JS is easier if you don't understand programming beyond a copy + pasting from stack overflow with no idea what's actually going on at a low level.

  6. 2 years ago
    Anonymous

    Asm as in assembly?
    Youre comparing assembly to javascript?
    Lol?

  7. 2 years ago
    Anonymous

    I think you could write assembly pretty efficiently if you had an all-purpose macro-library defined first. Back in the day, some people thought those would be the computer language of the future, rather than higher-level langs

    • 2 years ago
      Anonymous

      >I think you could write assembly pretty efficiently if you had an all-purpose macro-library defined first.
      such things exist

      writing/learning assembly is not worth it nowadays. Even if you wrote a program with it, it wouldn't as optimized as the one outputed by the compiler

      >writing/learning assembly is not worth it nowadays
      yeah. that's false
      >it wouldn't as optimized as the one outputed by the compiler
      assembly will always be far more efficient, and faster. i'm convinced people here are absolutely terrified of assembly language because they're forced to actually learn how a computer functions at the lowest levels.

      • 2 years ago
        Anonymous

        i have a basic ideas about assembly but i see that abstractions were created for a reason.
        no need to recreate the wheel kinda sense.
        also low level and some high level languages are enough to understand computer functions but yeah it doesn't hurt to know the lowest level of computer functionality but i dont think it can be of much use.

        >assembly will always be far more efficient, and faster
        no one said otherwise. Assembly is just an abstraction like other languages. humans can write in assembly but they aint gonna write efficient programs in assembly. That's why they created lower level languages

        • 2 years ago
          Anonymous

          > but they aint gonna write efficient programs in assembly
          yes, they are. this is what people have been doing for decades. people would program anything that needed speed and efficiency using assembly and use c/whatever for everything else. c/whatever compilers in current year are very good (depending on the cpu architecture) but they're not perfect.

  8. 2 years ago
    Anonymous

    ASM will give you the best control over your code and will brutally teach you how things work under the hood. Any C compiler is going to produce much better microcode than you could've written in ASM, but it's fun if you're into older system development (C64, NES/GB, etc...)

    • 2 years ago
      Anonymous

      >Any C compiler is going to produce much better microcode than you could've written in ASM

      • 2 years ago
        Anonymous

        No, not necessarily, Survindarajanahashameshejeet/

      • 2 years ago
        Anonymous

        >Any C compiler is going to produce much better microcode than you could've written in ASM
        You clearly have never actually looked at the output of a compiler, because they are brain-dead to the extreme. Seriously, they do some absolutely moronic things, like spilling constants.

        Upgrade your toolchain ding dongs

        • 2 years ago
          Anonymous

          Modern compilers are in many ways even worse than old ones. Modern compilers are like idiot savants, sometimes they generate amazingly efficient code, but then the same compiler will sometimes completly shit the bed and do things a three year old could regonize as stupid. Older compilers are actually a lot more consistent, they don't do anything too fancy, but nothing overly moronic either.

          • 2 years ago
            Anonymous

            Why is that? I've never heard this.
            Is there optimizations that old compilers use that new ones don't?
            And do you have examples?

          • 2 years ago
            Anonymous

            Compilers will never write better Assembly, it doesn't make sense, and even if they did, you could just copy them. There is so much overhead in modern compiled C that you can write tens of thousands of lines and still come under a C hello world.

          • 2 years ago
            Anonymous

            So are you saying that compiled are worse because the binaries are larger and that there is overhead code before main?

          • 2 years ago
            Anonymous

            This. Compilers have always been beasts of 'good enough'. They fit the general use case but in making special, new or interesting code structures, they tend to flounder. And that says nothing of their troubles in new architecture or feature adoption and integration. Mature compilers are inherently weak to change and abnormality.

            So are you saying that compiled are worse because the binaries are larger and that there is overhead code before main?

            Not him but for 'Hello world', most C compilers will force you to call printf, or write, through a library instead of just using syscalls. This isn't just a larger binary, it is an example of it being inherently slower because of a lack of human oversight to recognize when a function call in unnecessary.

          • 2 years ago
            Anonymous

            > Is there optimizations that old compilers use that new ones don't?
            No its quite the opposite, modern compilers perform an insane number of complex optimization steps, but each of these steps is quite dumb and possibly buggy so sometimes these optimizations make the code worse, other times different optimization passes conflict with each other and the result is some really moronic shit.

    • 2 years ago
      Anonymous

      >Any C compiler is going to produce much better microcode than you could've written in ASM
      You clearly have never actually looked at the output of a compiler, because they are brain-dead to the extreme. Seriously, they do some absolutely moronic things, like spilling constants.

  9. 2 years ago
    Anonymous

    The issue is you're trying to learn assembly like you learnt JavaScript. It's not gonna happen. There's no assembly YouTube tutorial you can just consume and magically know assembly by the end of it. I had to go to university to actually learn assembly. A (real) Computer Architecture course, a book, and a datasheet are what you want, not YouTube tutorials made by teenagers. You're stepping out of codebro territory and into electrical & computer engineering territory, and the culture is very different.

    The good news is that assembly is ridiculously simple. You could probably learn 8086 in a week - I know I and most of my classmates did and we're not geniuses. One thing you need to understand when learning assembly is that you're not just learning a new syntax, you're learning an architecture and you cannot separate the language from the architecture. Many people might point out that assembly isn't just one language, but many. While this is true, once you learn one form of assembly, moving to another form of assembly is really not that hard. It's a matter of learning the new architecture and then reading the datasheet. It's comparable to switching from python to go or from perl to ruby.

    The bad news is that assembly can be extremely tedious. To give you an example, in most flavors of assembly you cannot print numbers of multiple digits. You have to div the number by 10 in a loop to print each digit separately. It's not hard to understand, it's hard to write. However the worst is when dealing with cisc architectures. At some point, it becomes much less about how smart you are and much more about how patient you are reading through the endless list of instructions that all do slightly different things. That's why I suggest you start with something sane like ARM,
    MIPS or ideally RISC-V, instead of x86.

    My suggestion is to get a computer architecture book, and search for an actual course. Do not just search for "assembly tutorial for beginners". It's not hard anon.

    • 2 years ago
      Anonymous

      >Printing each digit, one by one, in a loop
      Why would you do this when you can just shift-or into an empty register as you go to save on print calls?
      Are you aflicted with smolbrain, fren?

    • 2 years ago
      Anonymous

      Also, you should program first for the architecture you actually use most of the time, so you can reliably run native code on it, and test against prototypes in C, instead of having to have it be virtualized. This idea that you can just pick and choose an architecture to learn on is kind of foolish when progress in learning requires simplicity of iteration, not necessarily of concept. You can only iterate best in your home OS, home environment and, by extension, home architecture, not by using special tools ad extra of your comfort zone.

      What people don't understand about CISC is that most of the time you aren't even going to use most of the instructions, they are just there for special cases and niche uses, and most of the few thousand opcodes have the same name as another but with different sizes, or a different prefix, like conjugation or declension in spoken language.

    • 2 years ago
      Anonymous

      Ironically RISC assembly is harder, as you to have to go through a lot more steps to achieve what you want. It's also very limiting in the amount you can deal with at a time (for ARM it's some ridiculously small size like 2 bytes).

      • 2 years ago
        Anonymous

        *in the amount of data you can deal with

    • 2 years ago
      Anonymous

      Where does this moronic myth come from that x86 is in any way bad to program in assembly. The majority of the issues with x86 stem from its physical encoding, its assembly is perfectly fine.

  10. 2 years ago
    Anonymous

    you aren't expected to be able to write it without a companion/manual .

  11. 2 years ago
    Anonymous

    writing/learning assembly is not worth it nowadays. Even if you wrote a program with it, it wouldn't as optimized as the one outputed by the compiler

  12. 2 years ago
    Anonymous

    Alright morons this is how the learning of programming works.

    Why the internet won't tell you this is because the CIA secretly wants a bunch of people who don't know the truth

    BASIC programming language .

    "Here comes the airplane"
    *Puts the spoon inside the baby's mouth*

    Then learns C89

    Only then ...

    Then assembly is learned. moron CIA trans gypsy homosexuals will say otherwise.

    If your a true master of the code. You will attempt machine code before all of this

    https://archive.org/details/2022-07-02-20-16-08

  13. 2 years ago
    Anonymous

    no, modern c++ is.

  14. 2 years ago
    Anonymous

    Why would you care about ASM doing web work? I mean, there's WebAssembly, but it's completely different.

  15. 2 years ago
    Anonymous

    its the actual way computers work.Its a frick you to bulshit abstractions and c syintax moronation.Codemonkeys will seethe I know

  16. 2 years ago
    Anonymous

    Reminder that no one actually writes raw assembly. They use assembler macros.
    The exception being if you are doing inline assembly snippets from another language.

    If you are writing raw assembly, you're doing it wrong.

    • 2 years ago
      Anonymous

      >JIT compiler chads in your path

      • 2 years ago
        Anonymous

        how is that even relevant?

    • 2 years ago
      Anonymous

      >assembler macros
      such as?

Your email address will not be published. Required fields are marked *