3 ms·
What's your background? Obviously, if you're studying marketing or sociology, learning computer assembly is going to be a challenge. At uni, we didn't learn to
by tremon 5y ago
What's your background? Obviously, if you're studying marketing or sociology, learning computer assembly is going to be a challenge.
At uni, we didn't learn to write assembler until we'd already been taught about Boolean logic, finite automata and RISC processor design. So we were already familiar with basic processor operation before writing any code for it. But I studied electrical engineering, not computer science.
Knowing your current background/field of study is going to be essential to give useful recommendations, I think.
- Claude_Shannon 5y agoI'm studying "informatyka stosowana" (Software Engineering would be the closest thing to this, I guess) I have background in both C and C++
- tremon 5y agoThe transition from C to assembler is a relatively minor step. What you'll notice is that there's a pretty good 1:1 translation from every C statement into assembly, so if you already have the mental model to grok C (control flow, function calls and pointer arithmetic), learning assembly won't introduce many new concepts. Instead, it will provide a better grounding for everything you (think you) already know from C. What's daunting about assembler is not the concept itself, but the lack of higher-level features that allow you to maintain good structure for your code. But that won't matter for a university course, you won't be asked to write millions of instructions by hand. I don't know what instruction set will be used in your class, but since you mention TASM I'm going to assume it's Intel x86. That architecture is a pretty wild beast to code for, for one because it's a CISC architecture, which means that there's a multitude of instructions available that duplicate and extend the basic operation of other instructions. On top of that, it has seen many revisions, enhancements and extensions over the years. If I were teaching such a class, I would probably choose a RISC architecture instead (MIPS, 8051 or nowadays RISC-V), just to reduce the size of the instruction manual the students might encounter. But it's a pretty good guess that they will be focusing on the easier, lower-level instructions only. At least the succinctness and completeness of any instruction set manual will be a breath of fresh air compared to the level of documentation you're used to from C or C++ libraries.