4 ms·
I'm studying "informatyka stosowana" (Software Engineering would be the closest thing to this, I guess) I have background in both C and C++
by Claude_Shannon 5y ago
I'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.