Programming Forums
User Name Password Register
 

RSS Feed
FORUM INDEX | TODAY'S POSTS | UNANSWERED THREADS | ADVANCED SEARCH

Reply
 
Thread Tools Display Modes
Old Aug 14th, 2005, 9:27 PM   #11
Randall Hyde
Newbie
 
Join Date: Aug 2005
Posts: 3
Rep Power: 0 Randall Hyde is on a distinguished road
Quote:
Originally Posted by Riddle
http://webster.cs.ucr.edu/AsmTools/HLA/index.html


Has anyone tried HLA? I like it more. Compare these two pieces of code (first can be assembled with debug (Windows utility), and the second is HLA code):

mov dx, 10b
mov ah, 9
int 21
mov ah, 4c
int 21
db "Hello world!",0d, 0a, '$'

program hello;
#include("stdlib.hhf")
begin hello;
stdout.put("Hello world!",nl);
end hello;

I think it's much easier to code, and plan on using this often.
Note that stdout.put is simply a macro. It expands to a function call of the form:

stdout.puts( "Hello World" nl );

which, like the INVOKE statement in MASM, expands to a push and a call.

The stdout.puts routine is a generic function in the HLA standard library that eexpands to code that does a WRITE operation to the standard output device. That is, it's roughly equivalent to the DOS code you posted (though HLA is strictly Win32/Linux, no DOS).

To answer your question, thousands and thousands of people have tried HLA and they seem to like it just fine, based on the emails I get from people.
Cheers,
Randy Hyde
Randall Hyde is offline   Reply With Quote
Old Aug 14th, 2005, 9:37 PM   #12
Randall Hyde
Newbie
 
Join Date: Aug 2005
Posts: 3
Rep Power: 0 Randall Hyde is on a distinguished road
Quote:
Originally Posted by DaWei
Nice post, Betov.
Actually, I would be *very* careful about believing a word that Rene (Betov) Tournois has to say about HLA or MASM. He is the author of his own assembler and he made it his personal little "jihad" to attack HLA and MASM every chance he gets and everywhere he can. He has been banned and censored in newsgroups and support boards the world over because of these attacks.

He has his own competing assembler, and can't seem to deal with the fact that few people are interested in his own product and flock to other products (like HLA, MASM, and so on). If you want an indication of his true character, visit alt.lang.asm sometime.

Quote:
The method of using macros to achieve a level of abstraction and to ensure consistency of usage of shared code was very common in the days before high-level languages such as C were widely available in the micro world. Even as they became available, we often couldn't afford the resources to use them. That is rarely the case nowadays. I can't imagine that enough effort would be put into a "high-level assembler" to make it truly effective, given the complexities of our current machines and the specialized knowledge needed to make the run at peak speeds/efficiencies.
How much time have you spent with a high-level assembler such as MASM, TASM, or HLA? It's easy to "imagine" things, but you really should check such products out. The macro facilities found in such products leave the other assemblers in the dust, and you always have the option of using nothing but low-level machine instructions if that's what you really want to do. Often, people see an example like the HLA "hello world" program and automatically assume that it's just another high-level language. The fact that the code *looks* like a HLL is a testament to the power of HLA's macro facilities. But the truth is, you can write low-level code in HLA exactly as you would in any other assembler. Rene (Betov) says "sometimes you will see something close to assembly language..." He sticks that statement in because he has been given the challenge to write something in his own assembler (or any other 32-bit x86 assembler) that couldn't be done directly in HLA. He has never managed to produce such an example (because he can't).

Bottom line is this: HLA provides a lot of next "extras" for assembly language programmers, but those who want to work only with basic machine instructions can continue to do so. There is no requirement forcing you to use any of the hundreds of different library routines and macros in the HLA Standard Library (like stdlib.puts), there is nothing forcing you to use any of the "high-level-like" statements in HLA. You can write all the pure assembly you like.

It is interesting that Rene (Betov) attacks HLA by complaining about the macros that HLA users like to use. If you've ever looked at the source code for his own assembler (RosAsm), you'll notice that it's chock full of macro invocations like "IF" and "WHILE" and stuff like that. He's being *incredibly* hypocritical when he complains about HLA users taking advantage of these macro facilities in HLA.
Cheers,
Randy Hyde
Randall Hyde is offline   Reply With Quote
Old Aug 15th, 2005, 3:55 AM   #13
Betov
Newbie
 
Join Date: Mar 2005
Posts: 11
Rep Power: 0 Betov is on a distinguished road
Thanks, DaWei, but for the Assembly + Macros jobs, two of the new Assemblers, at least (FASM and GoAsm) are still progressing on this front line, and, as these developements had never been done, to that extend, for the Assemblers, we cannot know, for now, how successful (or not) it will be in matter of turning Assembly a valid alternative to the HLLs. This is an on-going effort.

Last month the Macros system of FASM was significatively improved, and for RosAsm, we are actually at the work on a new "Standard Macros" Set, that should add some more capacities.

At the point of view of "... complexities of our current machines and the specialized knowledge...", the competition of Assembly and HLL is not in favour of the HLLs on all side, and Assembly has still many strong points to push, would it only be the fact that Assembly is the nodal point of any executable. I think, in particular of the important role that an Integrated Disassembler can play, in the competetion, in favour of Assembly, compared to a Decompiler for any HLL... Another story...



Betov.

< http://rosasm.org >
Betov is offline   Reply With Quote
Old Aug 15th, 2005, 5:01 AM   #14
stevengs
Professional Programmer
 
stevengs's Avatar
 
Join Date: May 2005
Location: Bad Nauheim, Germany
Posts: 436
Rep Power: 4 stevengs is on a distinguished road
Quote:
Originally Posted by Betov
Thanks, DaWei, but for the Assembly + Macros jobs, two of the new Assemblers, at least (FASM and GoAsm) are still progressing on this front line, and, as these developements had never been done, to that extend, for the Assemblers, we cannot know, for now, how.....,....,...,..,.,,,,


comma, comma, comma, comma, comma quotation maaaaarrrk!
you come and go, you come and gooo oooo oo ooo


__________________
-Steven
"Is this a piece of your brain?" - Basil Fawlty
stevengs is offline   Reply With Quote
Old Aug 15th, 2005, 6:14 AM   #15
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
Quote:
Originally Posted by Randall Hyde
How much time have you spent with a high-level assembler such as MASM, TASM, or HLA?
Not much. Just thousands and thousands of lines of code over 18 years or so.

Incidentally, riding a hobby horse makes one neither right nor wrong. Facts do that.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old Aug 15th, 2005, 6:58 AM   #16
Randall Hyde
Newbie
 
Join Date: Aug 2005
Posts: 3
Rep Power: 0 Randall Hyde is on a distinguished road
Quote:
Originally Posted by DaWei
Not much. Just thousands and thousands of lines of code over 18 years or so.

Incidentally, riding a hobby horse makes one neither right nor wrong. Facts do that.
That's why it's important to spend some time with the tools yourself rather than buying into someone else's prejuidices.

Not sure what you mean by "hobby horse". If you're trying to imply that HLA is such a tool because it's intended for beginners, I'll offer you the same challenge I offer anyone else who questions whether a "teaching tool" can be used for serious work -- provide some code in a different assembler that *can't* be written with HLA. The truth is, to support all the facilities of the HLA Standard Library (which is the main pedagogical component of HLA) requires some *very* powerful language facilities. Facilities missing from most other assemblers. Indeed, I had to write HLA because I was not satisfied with the macro facilities provided by MASM v6 (which, nonetheless, has a very powerful macro processor). In order to do what I wanted to do, I had to make HLA's macro processor and compile-time language facilities more powerful than the most powerful assembler at the time (MASM). Those are the facts.
Cheers,
Randy Hyde
Randall Hyde is offline   Reply With Quote
Old Aug 15th, 2005, 8:19 AM   #17
DaWei
Resident Grouch
 
DaWei's Avatar
 
Join Date: Jun 2005
Posts: 6,453
Rep Power: 10 DaWei is on a distinguished road
You have a tendency to quote my posts and then run off on some tangent. They're not THAT unclear. They don't even say THAT much. I admit that non sequiturs and other logical fallacies are effective tools and that most people don't pick up on them. I'm not going to repeat my posts just to point out semantic implications. They're all right up there.
__________________
Abstraction doesn't make it impossible to write bad code; it makes it possible to write superior code.
Contributor's Corner: Grumpy on C++ Exceptions DaWei on Pointers
DaWei is offline   Reply With Quote
Old Aug 15th, 2005, 9:01 AM   #18
Infinite Recursion
Programming Guru
 
Infinite Recursion's Avatar
 
Join Date: Jul 2004
Location: United States
Posts: 3,467
Rep Power: 8 Infinite Recursion is on a distinguished road
Send a message via MSN to Infinite Recursion Send a message via Yahoo to Infinite Recursion
Sorry, but I skipped most replies... trying to play catch-up on new posts.

I like the syntax of HLA, but what would be the benefit of this, compared to say... Pascal?
__________________
http://jasonpowers.net

"There are a thousand hacking at the branches of evil to one who is striking at the root."
Infinite Recursion is offline   Reply With Quote
Old Aug 15th, 2005, 9:57 AM   #19
Ooble
I eat cake for breakfast.
 
Ooble's Avatar
 
Join Date: Jul 2004
Location: In my box.
Posts: 4,434
Rep Power: 9 Ooble is on a distinguished road
Pascal's evil and should be trodden into the dust?

OK... a real question. Why would it benefit me to use HLA over C?
__________________
Me :: You :: Them
Ooble is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread in Forum | Next Thread in Forum »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump




DaniWeb IT Discussion Community
All times are GMT -5. The time now is 2:26 AM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC