Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

ASM andit 's importance

Status
Not open for further replies.
(oO (||||) (||||) Oo)
Loyal Member
Joined
Aug 6, 2009
Messages
2,132
Reaction score
429
Kinda not a good question but I wanna know.
Basically do I need to know ASM if I plan to do programming?

For example I will be writing programs in C++
Well, but where will ASM be used there?

I went to collage today for info about those classes *plans to go to collage again*, and they told me that in order to take C|C++ Programming course I have to take ASM course before. :scared:

DO I really have to and will it help?
 
Joined
Jun 8, 2007
Messages
1,985
Reaction score
490
It will prepare you enough so they don't have to teach you the basics and get into more complicated technique.

They have to assume you know absolutely nothing about programming unless you took a class on something related.

Depending on the kind of college it is, you might be able to talk to someone privately (like a C++ teacher), and show them what basics you know. Maybe they'll let you take the class, maybe not.
 
Ginger by design.
Loyal Member
Joined
Feb 15, 2007
Messages
2,340
Reaction score
653
If you want to be a real programmer, its importance is of the utmost. All of the expert level programmers, hackers, etc that I know are masters in at least x86. The reason it's so important is because it really gets you involved in how the computer actually works, why things are the way they are (because of hardware limitation), what's efficient and what's not, why C is the way it is (because it was meant as a "high level" assembly language, it was still low level but allowed quick development of very common ASM constructs to be done automatically so the programmer could actually think abstractly rather than about what their data structure looked like explicitly in terms of memory, etc).

C++ extends from that so a lot of it doesn't really make sense unless you know a lot about ASM and C. You could code in it just fine, but if you ever asked a "why" about how exactly something in C++ or C works, it's going to inevitably go back to ASM and the reason for "why" it was done like that stems out of the way assembly programmers did things. For instance, why are pointers in C? Well because it was a simple way to provide an efficient access to memory that people abused in ASM all the time, you'd have to see some of the huge ASM programs and how doing that in ASM really cut down on how much work had to be done, the same view held through to C. How do vtables work for virtual inheritance? Well they're just arrays of pfns. What's that? Well that's how callbacks and dynamic programming is achieved in C and in ASM, PFNs were incredibly common in C and lead to the development of the idea of "objects" (structs with pfns were APIs or "objects" then) which lead into the formalization that is a class (and in C++ all structs are classes).

If you really want to KNOW C/C++, you should start from where it came and learn it the way it developed. Then it's not so confusing because you understand why things are done the way they are done. And if you want to win at arguments on the internet in C++ and C irc channels or forums, read the ISO standard and get very familiar with Microsoft's compiler, Intel's compiler, AND gcc/g++. They all have their quirks and some obey/disobey the ISO standard in different ways.
 
(oO (||||) (||||) Oo)
Loyal Member
Joined
Aug 6, 2009
Messages
2,132
Reaction score
429
If you want to be a real programmer, its importance is of the utmost. All of the expert level programmers, hackers, etc that I know are masters in at least x86. The reason it's so important is because it really gets you involved in how the computer actually works, why things are the way they are (because of hardware limitation), what's efficient and what's not, why C is the way it is (because it was meant as a "high level" assembly language, it was still low level but allowed quick development of very common ASM constructs to be done automatically so the programmer could actually think abstractly rather than about what their data structure looked like explicitly in terms of memory, etc).

C++ extends from that so a lot of it doesn't really make sense unless you know a lot about ASM and C. You could code in it just fine, but if you ever asked a "why" about how exactly something in C++ or C works, it's going to inevitably go back to ASM and the reason for "why" it was done like that stems out of the way assembly programmers did things. For instance, why are pointers in C? Well because it was a simple way to provide an efficient access to memory that people abused in ASM all the time, you'd have to see some of the huge ASM programs and how doing that in ASM really cut down on how much work had to be done, the same view held through to C. How do vtables work for virtual inheritance? Well they're just arrays of pfns. What's that? Well that's how callbacks and dynamic programming is achieved in C and in ASM, PFNs were incredibly common in C and lead to the development of the idea of "objects" (structs with pfns were APIs or "objects" then) which lead into the formalization that is a class (and in C++ all structs are classes).

If you really want to KNOW C/C++, you should start from where it came and learn it the way it developed. Then it's not so confusing because you understand why things are done the way they are done. And if you want to win at arguments on the internet in C++ and C irc channels or forums, read the ISO standard and get very familiar with Microsoft's compiler, Intel's compiler, AND gcc/g++. They all have their quirks and some obey/disobey the ISO standard in different ways.

Wow, a lot of information there. I guess I will take ASM before C|C++

Thank you for info guys
 
Status
Not open for further replies.
Back
Top