Any language can be used for hacking, one of the most powerful font hacking tools, FEIDIAN, is written in PHP.
Holy $^%&. I don't know why that amazes me, but it just does. Pretty cool though.
I just think of low level languages as powerful languages while high level languages are those slow languages.. VB is very high leveled which just means its easy to understand by just looking at the code. I believe its so high leveled that I can figure out the code by just looking it and not even know what programming is. On the other hand, with ASM, that's not the case. Who would figure out what mov ah,09 even do? I hear that mov doesn't move the value 09 into ah. It really copies it.
Anyways, lock this thread somebody!
I think you're twisting the purposes for high-level languages. The reason why you want to use a high-level language is precisely because it's easier to understand the code. Yes, depending on how the language is compiled/interpreted, it can be much slower than pure ASM or straight-up binary if you want to be that
"hardcore" (I don't recommend it.)
. But even though high-level languages are slower than low-level ones, you shouldn't really notice the trade-off with our current computers, which are much faster than the ones when low-level languages were the only thing around.
The "slowness" of high-level languages doesn't just come from converting the code to something the machine understands, but also because just about all those things that you can do on high-level languages can be considered to be made up of a bunch of those "little" ASM instructions, so you don't have to waste time writing a whole loop in ASM in order to multiplicate (even an ASM multiplicate instruction is made up of a bunch of lesser instructions that are more expensive than, say, addition).
So, yeah. Don't knock off high-level languages just because you can understand them. Don't pay attention to "elitists" or whoever that might claim that only real programmers use ASM or C (If anything, real programmers should know ASM and C, but not make them the defacto language to use).
Oh. Use methods when you want to write reusable code. You do this even in C (called functions) and a sorta bizarre variant in ASM (where you sorta... use Jump and Return instructions for them [and labels], but they're not really "call and use" and can screw things up if you're not careful with what you do to registers)
Hell, I couldn't even read it at a glance now and it was my code! lol
You might want to put better comments and more frequently too. Also, keeping consistency in your indentation and leaving spaces between your routines is a good idea too. It was a little difficult to read and I thought most of it was just a long routine until I took a closer look and noticed a few labels here and there.
Also, my ASM is rusty because I haven't used it since I took my ASM class.
Edit: I just read this and it's completely relevant:
"Premature optimization is the root of all evil."
A programmer should focus on things like profiling code and better algorithms as far as performance goes. Code readability and maintainability should be higher priorities yet, so that you can go back and optimize and fix bugs once you know where the actual problem is. Shaving a few cycles here and there is silly. Only a tiny fraction of your code gets run often enough to warrant any kind of concern over speed. And, on a personal level, if my code is harder to understand and maintain, I'm much less likely to finish or update a project I'm working on.