Recently, I've been attempting to learn how to write in X64 assembly language. I know that this isn't going to be an easy language to learn, however, I'm certainly giving it my best attempt.
So far, I have found that the hardest thing about learning the language is remembering the name of all of the memory registers. I'm not having issues remembering instructions or operations so at least that's something. The concept of writing good assembly language is also not straightforward; you have to understand the way that CPUs actually operate as assembly language is literally etched into the silicon of a CPU (theoretically, logically).
Logic gates, mathematics, and understanding what moving system memory actually does to the system are all incredibly difficult concepts to grasp when you're a complete beginner. However, I'm fortunate enough to already have a basic understanding of how most of this works; giving me an advantage when it comes to writing the code.
I must say, assembly language is a lot of fun. However, the cognitive overhead of writing in assembly language does not offer me enough personal benefit currently for me to start writing my applications in it. Perhaps once I have learned how to write fluently in assembly language I shall use it more frequently to optimise my C++ programs.
Perhaps once I have learned the X64 assembly language, I shall move on to learning other versions of it to move onto less powerful hardware; which is often built more with a specific use case. This may eventually enable me to write custom drivers for my in-development C++ operating system.
So far, I have found that the hardest thing about learning the language is remembering the name of all of the memory registers. I'm not having issues remembering instructions or operations so at least that's something. The concept of writing good assembly language is also not straightforward; you have to understand the way that CPUs actually operate as assembly language is literally etched into the silicon of a CPU (theoretically, logically).
Logic gates, mathematics, and understanding what moving system memory actually does to the system are all incredibly difficult concepts to grasp when you're a complete beginner. However, I'm fortunate enough to already have a basic understanding of how most of this works; giving me an advantage when it comes to writing the code.
I must say, assembly language is a lot of fun. However, the cognitive overhead of writing in assembly language does not offer me enough personal benefit currently for me to start writing my applications in it. Perhaps once I have learned how to write fluently in assembly language I shall use it more frequently to optimise my C++ programs.
Perhaps once I have learned the X64 assembly language, I shall move on to learning other versions of it to move onto less powerful hardware; which is often built more with a specific use case. This may eventually enable me to write custom drivers for my in-development C++ operating system.
Comments
Post a Comment