Assembly was my first real language (basic doesn't count); I used it for years. Assembly is great for gaining speed, reducing size, and writing tight code. I was using high level flow control concepts long before I began dabbling in C (switch case, if then elseif, while, etc); constructed a few linked lists and doubly linked lists, manipulated a few two-dimensional arrays of pointers to a mix of functions and data... The best thing you can learn from assembly is not the interrupts (which are os and chip dependant) but program flow and data manipulation. String manipulation is so much easier in assembly than it is in C. Even code can be considered data, and programs can be made self modifying (for a quick permenant change in the program flow that only occures every 1200th iteration or so) to avoid needless if-then-else checks (at each iteration). Function calls do not need to push every passed value into the stack; and they also don't need to pop the return value off the stack, which can save a butt-ton of time when when checking for an error: simply "GOTO if carry-flag is set" "error-handler routine" which looks like
....
maybe one day I should get back into it...
Is it just me, or is the common consensus among assembly programmers to eschew OOP?
-t.
ps: did anyone mind the ramble?