• 0 Posts
  • 654 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle



  • I would argue they don’t know what that means really. Assembly is pretty much a mapping of words to machine code. It’s just a way to make machine code easier to read. It doesn’t actually change how it works.

    A compiler re-arranges and modifies things so what you write isn’t the same as the final program that is created. With assembly it is. It’s not really an abstraction, but a translation. It doesn’t move you further from the machine, it only makes it so you’re speaking the same language.


  • If you want some modern day fun with this, try the Zachtronics programming games; TIS-100, Shenzhen I/O, and Exapunks.

    Or, my personal favorite I only discovered somewhat recently, try Turing Complete. You start by designing all your logic gates from just a negate gate IIRC. You eventually build up an ALU and everything else you need and then create your own computer. Then you define your own assembly language and have to write programs in your assembly language that run on the computer you’ve designed to complete different tasks. It’s a highly underrated game, although it takes a certain type of person to enjoy.


  • This is pedantic, but assembly languages get “assembled” to machine code. This is somewhat similar to higher level languages being “compiled,” which eventually becomes assembly which gets assembled. The major reason why these are different is because a compiler changes the structure of the code. Assembly is a direct mapping to instructions. It just converts the text into machine code directly, which is why it’s easy to go from machine code to assembly but decompiling doesn’t give you identical results to the original source code.

    Also, binary and hexadecimal are just different ways to view the same binary data and aren’t different things. There is only “machine code” which is a type of binary data but you can view binary with any arbitrary base, though obviously powers of 2 work better.


  • Cethin@lemmy.ziptoProgrammer Humor@programming.devCOMEFROM
    link
    fedilink
    English
    arrow-up
    5
    ·
    13 days ago

    A function will be called by code and go to that point in code. To implement functions, you store necessary things to memory and goto the function definition. To implement that with comefrom you’d have to have a list of all the places that need to call the function as comefroms before the function definition. It’d be a mess to read. We almost never care where we are coming from. We care where we’re going to. We want to say “call function foo” not “foo takes control at line x.”




  • Yeah, both have pros and cons. I have Steam installed through pacman and flatpak also. For me I have the Flatpak version because it contains its own version of glibc. This mostly doesn’t matter, except I play Squad and it’s doing something with it’s anti-cheat that isn’t supported in the most recent versions of glibc, so I use the Flatpak version for Squad only.

    Flatpak is essentially a more controlled environment. It will contain everything it needs to work, which is good for ensuring it works but bad because you’ll have duplicates. It mostly doesn’t matter which you use, but occasionally it does.



  • They are still the best option for heating water. At best, a microwave could match its performance if it is nearly perfectly efficient and dumping all it’s energy only into the water, which is what a kettle does. They have the same potential power draw, so they can put the same energy in as each other. A kettle’s design is perfect for heating water though.

    Unless you have an inductive stove top, an electric kettle is going to be the best option, even in the US. It’s the most efficient at putting energy into the water and, since all these options have the same power draw, it is consequently the fastest (again, assuming no inductive stove top which can draw more power).