Log in

View Full Version : HLA assembler or not?


stthspl
November 16th, 2006, 09:04
Hi all,

First of all, thanx for the board (especially the offline chm version made my life without a I-Net connection a lot easier).

I have been reading on RE for a while now. A few years ago I had some time to study a little bit of ASM and just recently I got the Art of Assembly Language pdf. The thing with that book is that itīs updated version keeps talking about HLA assembler.

So now Iīm wondering, wheather or not to continue reading and learning it, or should I put it aside and continue with old-school ASM, e.g. Iczelion tutorials?

I have a background in philosophy, especially propositional and predicate logic have my interest. As such I have a tendency to like ASM in itīs old, least īMacro-isedī form, for I think that ASM resembles a lot of logic; things are either 1 or 0, true or false. The more macro-functionality gets added to a programming language, the further it seems to drift away from this logical approach.

So now I have been reading a lot on RE, done some basic RE-jobs (serial fishing and the like) but I canīt help but wondering wheather the 1500 page AoA book is really what I should read or not.

Any thoughts?

Aimless
November 16th, 2006, 20:56
The book is crap!

Iczelion's is much better.

Supplement it with Intel Instruction Manual (STRICLY reference reading only ) and you are on.

Have Phun

WaxfordSqueers
November 16th, 2006, 23:36
Quote:
[Originally Posted by stthspl;62433]I have been reading on RE for a while now. A few years ago I had some time to study a little bit of ASM and just recently I got the Art of Assembly Language pdf. The thing with that book is that itīs updated version keeps talking about HLA assembler.
As Aimless said, the book has some deficiencies. If it's the same book I'm thinking of, the author changed some fundamentals in the assembler language to suit his students. They had been studying languages in which values were pushed onto the stack in a certain way and he thought it would be easier for them if he changed assembler to suit them.

If the book is updated, maybe he changed back to the proper format. However, with well-established original and correct assembler compilers like MASM and TASM available on the net, why mess with a compiler that was doctored to suit some snotty-nosed students? As Aimless suggested, check out Iczelion's site.

LLXX
November 17th, 2006, 05:13
Excuse the rant...

Mr. Hyde is full of himself. IMHO he is a shame to the entire Asm community. He has a completely wrong understanding of the Asm language.

His "assembler" isn't even a proper Assembler. Allow me to quote from an article I'd written about this.
Quote:
Recently there has been one programmer which has attempted to create his own assembler. The result was that he failed miserably and in the end required the help of Masm to assemble the code produced by his "translator". This "translator" is known as HLA, or High Level Assembler (oxymoronic, since Asm implies low-level programming). It was designed to teach Assembler, but from what we've seen of it, looks more like C and its derivatives instead. He had the absolutely horrific idea of introducing abstract data types and other high-level syntaxii (the very stuff which Asm is designed to avoid) and changing the syntax of all the instructions to look like function calls (not to mention reversing the operand order itself). For example, the instruction in Lasm: mov ax bx looked more like this: mov(bx,ax); absolutely ugly syntax, it requires more effort to enter, not to mention becoming more unreadable as well. And the reversed operand order causes mass confusion - new programmers will not know what is the correct form. The x86 syntax was designed for a reason - the reversed operand order has been with us since the introduction of the x86 and works perfectly well, and is the syntax used in Intel's official reference manuals. Please do not under any circumstances be fooled by HLA; although it is provided for free and contains huge amounts of documentation, it is just wrong. After all, when is the last time you've seen anything written in the HLA language besides the (voluminous) sample code? One learns a lot of information about an assembler just from its user base.


Quote:
[Originally Posted by Aimless]The book is crap!
So is his "assembler"

(Yes, I am one of the few "pure" Asm coders that still exist today )

stthspl
November 17th, 2006, 08:46
Thank you all for the replies. They told me what I already expected: You canīt ītranslate or transposeī logical statements to a real life language without loosing itīs formal structure. I will not continue with the 1500 page book. Saves me quite some time, which can now be used by putting other peopleīs tutorials to practise.

@LLXX

Excuse me for risking asking stupid questions, but I myself am somewhat of a purist (bassplayer too (- they LOVE logical forms)). If you could point me in a direction where other purists dwell, Iīd be very gratefull.

The thing is, you canīt trust most sites, just based on what they say about themselves. As in real life: Most people pretend to know everything and will say that out loud, while in reality, they usually know less, the louder they scream.

As I said, my background is in the philosophy of science and logic. As far as I can see, ASM resembles quite a lot of that, am I correct?

naides
November 17th, 2006, 09:41
Perhaps dELTA may give a more complete recomendation to our philosopher friend here, but I think stthspl would be interested in the details of a Turing machine and Turing's Theorem. . .
Are you familiar with those constructs stthspl?

Also, if you are a minimalist besides a purist, and are willing to go through steep learning curve,
Consider delving on the details of microcode, the minimal logical instructions that the CPU actually executes to "execute" an assembler instruction.

Maximus
November 17th, 2006, 10:56
ookkk.
Let me summon myself in purple smoke on this:

There is alot of crap and interesting stuff on the subject. The basis can be found on Incompleteness theorems (1&2) of Goedel (writte Godel with humlaut), a short man died of maddness trying to pose logically the God's existance (again).

You have to know that a PC is just a complex formalism of a Von Neumann machine (first processors, as the glorious 6502 of vic20/c=64 resembled it alot), which is nothing more than a complex Turing machine (on this there are discussions).
You may also search for Church/Turing axiom.


If you have time to read and laugh, you can find interesting discussions on Penrose's "Emperor New Mind" and "Godel, Escher, Bach etc." (doug Hostfadter).
Dated books, but still interesting.
Neverthless, main concepts you need are the consistency of a system and coherency -which brings to the complex Godel sum where 'an enough system can know that a proposition is true but cannot prove it' which lead to the problem of Turing-Stop Machine, which is impossible to solve even with quantum processors for the special class it is....

...ok I'l stooop here...



edit----
Most of asm coders takes on personally on Hyde's book. Personally I'm a TASM user since 2.0, so my choices are already estabilished. BUT: I noted HLA is slowly become a request here and there in CV requests and work position. The arguments on operator's position are abolutely good for me, as I have problem reading AT&T code, BUT but Hyde's simply followed AT&T operator syntax. It is almost impossible for one used to Intel syntax to reverse the operators in mind -my eyes cross much before. But the point is not what we are used to do, but what is good for i.e. work and so on.
I would vote for HLA and MASM. MASM because it is the most widely used language for code snippets and so on.
Code purists cannot accept it, I understand. Code purists cannot accept MASM too, as still I wonder WTF I need to write in RadASM for making damn MASM code go at first.
TASM is dead ( ) and, from a newbie point of view, I would consider ONLY those 2 alternatives, which a 3rd choice:
http://savannah.nongnu.org/projects/pgubook/
Which, as you can see, use same HLA order.
I'm not defending HLA by principle - I dont use it. Simply, if you wish to learn assembler, it is not a choice to disregard so easily.