Re: TASM revisited
- From: "randyhyde@xxxxxxxxxxxxx" <randyhyde@xxxxxxxxxxxxx>
- Date: 27 Oct 2006 17:58:15 -0700
KiLVaiDeN wrote:
randyhyde@xxxxxxxxxxxxx wrote:
Because none of the assemblers on *nix to date support the Intel syntax
(i.e., MASM and TASM which are as close to Intel syntax as you'll
probably get since Intel dropped the ASM386 product).
Well I'm wondering why you take the "syntax" as an argument to add yet
one more cross platform assembler, while you invented yet *another*
syntax with hla ( including some memory to memory abstraction operands
) which confuses everybody even further more..
???
What's your point?
If I'm willing to invent "yet another syntax" for x86 assembly, why
would I have a problem with someone else doing this, too?
And the whole point of my post was that this would *not* be adding yet
a new syntax; it would be taking an existing assembler with an existing
syntax and porting that to *nix. Quite the opposite of what you're
suggesting, actually.
And I don't see how HLA's syntax is going to confuse people who know
TASM and would like to use TASM under *nix. Indeed, having a powerful
assembler like TASM under *nix would probably spare a few advanced
programmers from having to learn HLA, as TASM has a much more powerful
macro system than most assemblers out there (same as MASM, and though
it's a bit weaker than HLA's, it's still very powerful).
IOW, the good news is that the availability of TASM under *nix might
actually *reduce* the number of perspecive HLA users. Given how often
you attack HLA as having an inappropriate syntax, I'd think you'd be
happy with that.
Sure, he should help out with the HLA assembler, right? :-)
Let's say it once and for all : HLA is good for following your teaching
course.
Of course. That's what it was originally designed for.
It's probably good for learning some basic skills with your Art
of Assembly book.
Actually, the book is good for learning some basic skills with HLA, but
we'll let that one slide.
But otherwise, I see no reason to help it,
So why are you bitching about the fact that "I don't let people help
me"? When I refuse to let someone help me, *they* can complain about
the issue. It just sounds to me like you want to complain about
something, so you're making up anything you can.
since it's
basically confusing everyone on the Assembly world,
There are probably a dozen x86 assemblers with differing syntaxes in
use today. Most of them were in use before HLA ever came along. Sorry
dude, that toothpaste is out of the tube already. Why you would blame
HLA for causing this "confusion" is beyond me. OTOH, if there *were* a
standard syntax, TASM (MASM/Intel ASM386) pretty much comes to being as
close to the standard as you're going to get. So why you wouldn't
support a move to put a reasonably-Intel-Syntax-Compatible assembler
onto *nix is beyond me, if syntactical purity is something you're
after.
with yet another
syntax and tons of HLL commands which make people stay and believe that
programming in pure Assembly is a mistake.
HLA is quite successful at getting those HLL programmers to take a look
at assembly language. Indeed, one of the things that irritates Rene
Tournois so much is how beginners are attracted to HLA. Indeed, it is
exactly the presence of those HLL-like statements that make people
comfortable with HLA. Far from confusing them, it provides a bit of
familiarity in a strange, new, world. Having taught assembly language
courses using both MASM and HLA, I can assure you that students are
*far* less confused learning with HLA than they were learning with
MASM.
Programming in assembly is
one thing, Programming in HLL is another, please don't confuse the
world mixing both, and scaring away those who were interested in
learning the pure Assembly,
AoA/HLA isn't for everyone. Those interested in "learning the pure
assembly" (in particular, those not coming from a HLL background)
probably *would* do better with a different book (like Jeff Duntemann's
"Assembly Step-by-Step") and a different assembler (e.g., NASM for
ASBS). To date, though, this is but a small percentage of the people
out there. Most people know a HLL like C/C++ or Java and that's the
audience for HLA/AoA. Far from scaring those people away, I get emails
all the time about how AoA and HLA has made the subject far more
approachable.
like it's written when disassembling
programs, or reverse engineering executables.
Last time I checked, disassemblers weren't too good at putting in
labels and comments. So you're off the mark here, anyway.
Or does Ollydbg output
HLA standard library functions ? I didn't see anything close to that.
Probably because you didn't use the right linker option to include the
symbols in the executable file. Next time, try reading the HLA
documentation on the subject.
Making a new assembler, with
its own flaws, will only make "the assembly market" more sparse,
In this particular case, it would allow some old-time TASM programmers
to work in a comfortable assembly environment under Linux, FreeBSD,
etc. Given that there are probably more people who are comfortable with
TASM than all the Linux-compatible assemblers combined, this is not a
small deal.
TASM programmers, who once programmed with TASM and wanted to move to
Linux or *BSD did the move already years ago. They probably use Nasm
already, for most of them.
Most of them just gave up on assembly and went with C, as the though of
using Gas, or even NASM, just wasn't acceptable. I can tell you from my
own experiences, once someone learns the syntax of an assembler like
TASM really well, they're unlikely to switch to a different assembler.
Particularly if they've mastered the advanced features of the assembler
and such features are not available in assemblers like Gas and NASM.
instead, if I were you, I'd try to take a look to actual existing
assemblers, email the guys, and talk with them about what you think you
can contribute to on their project, and integrate the team.
Some aren't interested.
Can you answer for them ?
Sure. The FASM and GoAsm authors have made it pretty clear that they're
doing a one-man show.
For some, the help would be impractical.
How would help be impractical ? It's always nice to have people
contribute and give opinions at least.
No, it's not always nice. Let's consider the HLA compiler as an
example. The compiler itself is over 100,000 lines of source code,
including over 80,000 lines of Bison code, about 5-10,000 lines of Flex
code, probably 20,000 lines of C code, and 25,000 lines of assembly
code. It would take a *long* time for someone to become sufficiently
familiar with all that code to be able to make meaningful contributions
to the project (btw, two people actually have, one guy did a partial
FreeBSD port a couple of years ago and someone else sent me some bug
corrections). Given the fact that HLA v2.0 is a complete rewrite of
the compiler, the last thing I want is anyone wasting time learning HLA
v1.x -- it's all going away at some point in the future. Indeed, most
of the work on HLA v1.x today is strictly maintenance and porting
(porting to FreeBSD and MacOS). Until HLA v2.0 hits, it really is
impractical for anyone to get involved with the compiler.
Now one area where user contributions *can* help is with the HLA
standard library. Indeed, my current project is to clean that up so we
can update the SourceForge site. My plan is to put the new code on
SourceForge and turn the library totally over to the community for
further development. Because the individual routines are relatively
small and easy to understand, this *is* one area where the "community"
could make a contribution. As the code is already on SourceForge, you
can hardly accuse me of being a "dictator" with respect to the stdlib
code.
And, ultimately, one reason for doing such a project is purely for
ego-gratification. Helping someone else does very little in that
regard, creating a TASM-compatible assembler would be a *big* thing in
the eyes of many TASM programmers out there.
Now we got the reason of you creating HLA and spreading confusion over
the Assembly world, and furthermore not letting anyone interfere in
your project : ego-gratification.
Sorry, dude. If I wanted glory, I would have written a new high-level
language, not an assembly language. Such a tiny percentage of the
world's programmers are interested in using assembly that it would be
foolish for someone to try and gain glory by writing an assembler.
If you want to see my reasons for creating HLA, try reading this:
http://webster.cs.ucr.edu/AsmTools/HLA/HLADoc/HTMLDoc/WhatIsHLA.html
and this:
http://webster.cs.ucr.edu/AsmTools/HLA/HLADoc/HTMLDoc/teachingASM.html
That's the story from the horse's mouth.
Someday I may very well work on a new HLL and promote it's usage for
the "glory" involved. But in the meantime, I'd prefer to promote
programmers learning assembly language because I feel that the best
programmers know some assembly language. And HLA is perfect for giving
them the knowledge they need to understand how to write great code
(even when not programming in assembly language).
Thanks for giving the readers such a
great overview of software engineering,
????
well my vision is totally
different and ego-gratification is the one that you get when you really
feel you make things go forward, and not when you bring reputation or
awards on your own person, without being that much helpful to the
community as a whole.
Well, when you've written about 250,000 lines of code (as I have,
between the HLA compiler, the HLA standard library, the test code, and
the examples), and written a couple of 1,500 page books that are
available for free download, come back and talk to me about how helpful
you've been to the community.
The way I see it, you're annoyed (as a few other select people are
around here) that I've achieved a certain amount of notority for my
work. Yes, that makes me a target because some people can't stand the
fact that someone else is getting the "glory" and they are not. Let me
tell you what, however, all that "glory" and about $3.25 will get you a
cup of coffee at Starbucks. Worse than that, all that "glory" paints a
nice target on your back, so rather than being able to revel in one's
"glory", all you really get is a constant stream of attacks, such as
those you're doing right now. I probably get two or three emails a
month from people who are incredulous that I even put up with this
crap; they ask me why I don't go into a different area where my
contributions might actually be appreciated. What I tell them is this:
I've had my share of glory over the years (starting with the Apple II,
back in 1978) so I've outgrown any need to have my work "appreciated"
by people. I have a goal, getting people to learn assembly language,
and I measure the success of my projects based on how many people are
learning assembly language. It *is* gratifying that people *are*
learning assembly language using HLA/AoA, and no amount of attacks by
people such as yourself or Rene is really going to change that.
If you *really* want to be helpful to the community, you can do that by
developing software, examples, tutorials, books, articles, whatever,
that promote learning assembly language (using your favorite syntax).
You're not helping the community with personal attacks and attacks on
products -- you're only fragmenting the community even more.
Unless, of course, he follows a clean-room reverse engineering
approach.
You do know that a clean-room reverse engineering as you call it, still
is reverse engineering right ?
Uh, that's why "reverse engineer" appears at the end of the phrase?
It doesn't matter how much care you take
to hide the fact that you reverse engineered a product, but let me
remind you that what's usually patented and copyrighted are not the
technical details of the implementation but the IDEAS.
You don't know anything about copyrights, do you?
Patents (which probably don't apply in the TASM case) protect ideas,
but copyrights only protect an *expression* of an idea. In particular,
clean-room reverse-engineering is considered a perfectly good way (by
the courts) to come up with a different expression of the idea. With
the exception of that bad piece of US legislation known as the DCMA
(which doesn't apply in this case), reverse-engineering is both legal
and honorable, when done properly.
You *do* realize, don't you, that the whole purpose of patents and
copyrights is to make ideas public, so the public can benefit from
those ideas, right?
4) Another path, would be you writing your own legal assembler, now
that you have the knowledge of how one of them works. But yet again, I
think that even if personal projects are interesting, it's maybe better
in a world where open source needs a boost, to gather teams of
qualified people, and produce quality software.
Hmmm...
I seem to remember making that suggestion already.
Probably. But then why do you contradict yourself, saying things like :
"Some aren't interested." or "For some, the help would be impractical."
?
What contradiction are you talking about? You seem to be confused. I
said that existing assembler authors probably aren't interested. You do
realize that means something else entirely from putting together a new
team to develop TASM for *nix, right?
Hey, if he wants to do it by himself, more power to him. That's less
work for everyone else to do, right?
You still don't get my point of view : power is not freedom, it's the
opposite.
I take it that English is not your native language. Apparently the
idiom "more power to him" went right over your head. Translation: it's
his time, he's free to do what he wants with it and it's not your's or
my position to tell him what he can do with his time.
Freedom is when you can confront your software, learn from
others, share ideas, go forward with a community.
Funny, dictionary.com has this to say about freedom:
free‧dom /ˈfridəm/ Pronunciation Key - Show Spelled
Pronunciation[free-duhm] Pronunciation Key - Show IPA Pronunciation
–noun 1. the state of being free or at liberty rather than in
confinement or under physical restraint: He won his freedom after a
retrial.
2. exemption from external control, interference, regulation, etc.
3. the power to determine action without restraint.
4. political or national independence.
5. personal liberty, as opposed to bondage or slavery: a slave who
bought his freedom.
6. exemption from the presence of anything specified (usually fol. by
from): freedom from fear.
7. the absence of or release from ties, obligations, etc.
8. ease or facility of movement or action: to enjoy the freedom of
living in the country.
9. frankness of manner or speech.
10. general exemption or immunity: freedom from taxation.
11. the absence of ceremony or reserve.
12. a liberty taken.
13. a particular immunity or privilege enjoyed, as by a city or
corporation: freedom to levy taxes.
14. civil liberty, as opposed to subjection to an arbitrary or despotic
government.
15. the right to enjoy all the privileges or special rights of
citizenship, membership, etc., in a community or the like.
16. the right to frequent, enjoy, or use at will: to have the freedom
of a friend's library.
17. Philosophy. the power to exercise choice and make decisions without
constraint from within or without; autonomy; self-determination.
Compare necessity (def. 7).
--------------------------------------------------------------------------------
[Origin: bef. 900; ME fredom, OE frēodōm. See free, -dom]
—Synonyms 1. Freedom, independence, liberty refer to an absence of
undue restrictions and an opportunity to exercise one's rights and
powers. Freedom emphasizes the opportunity given for the exercise of
one's rights, powers, desires, or the like: freedom of speech or
conscience; freedom of movement. Independence implies not only lack of
restrictions but also the ability to stand alone, unsustained by
anything else: Independence of thought promotes invention and
discovery. Liberty, though most often interchanged with freedom, is
also used to imply undue exercise of freedom: He took liberties with
the text. 9. openness, ingenuousness. 12. license. 16. run.
Dictionary.com Unabridged (v 1.0.1)
Based on the Random House Unabridged Dictionary, © Random House, Inc.
2006.
American Heritage Dictionary - Cite This Source free·dom (frdm)
Pronunciation Key
n.
The condition of being free of restraints.
Liberty of the person from slavery, detention, or oppression.
Political independence.
Exemption from the arbitrary exercise of authority in the performance
of a specific action; civil liberty: freedom of assembly.
Exemption from an unpleasant or onerous condition: freedom from want.
The capacity to exercise choice; free will: We have the freedom to do
as we please all afternoon.
Ease or facility of movement: loose sports clothing, giving the wearer
freedom.
Frankness or boldness; lack of modesty or reserve: the new freedom in
movies and novels.
The right to unrestricted use; full access: was given the freedom of
their research facilities.
The right of enjoying all of the privileges of membership or
citizenship: the freedom of the city.
A right or the power to engage in certain actions without control or
interference: “the seductive freedoms and excesses of the picaresque
form” (John W. Aldridge).
[Middle English fredom, from Old English frodm : fro, free; see free +
-dm, -dom.]
Synonyms: freedom, liberty, license
These nouns refer to the power to act, speak, or think without
externally imposed restraints. Freedom is the most general term: “In
giving freedom to the slave, we assure freedom to the free” (Abraham
Lincoln). Liberty stresses the power of free choice: “liberty,
perfect liberty, to think, feel, do just as one pleases” (William
Hazlitt). License sometimes denotes deliberate deviation from normally
applicable rules or practices to achieve a desired effect: poetic
license. Frequently, though, it denotes undue freedom: “the
intolerable license with which the newspapers break... the rules of
decorum” (Edmund Burke).
(Download Now or Buy the Book) The American Heritage® Dictionary of
the English Language, Fourth Edition
Copyright © 2000 by Houghton Mifflin Company.
Published by Houghton Mifflin Company. All rights reserved.
Merriam-Webster's Dictionary of Law - Cite This Source
Main Entry: free·dom
Function: noun
1 : the quality or state of being free: as a : the absence of
necessity, coercion, or constraint in choice or action b : liberation
from slavery or restraint or from the power of another c : the quality
or state of being exempt or released from something onerous
2 a : a political or civil right b : FRANCHISE 2
Merriam-Webster's Dictionary of Law, © 1996 Merriam-Webster, Inc.
WordNet - Cite This Source
freedom
n 1: the condition of being free; the power to act or speak or think
without externally imposed restraints 2: immunity from an obligation or
duty [syn: exemption]
WordNet ® 2.0, © 2003 Princeton University
I didn't see anything like what you're talking about here.
Software engineering
is going towards team work more and more, since technologies become
more and more complicated or at least overwhelming. Don't assume one
person can know and do all, it's wrong, and it's totally suicidal to go
that path.
Actually, the project being described (porting TASM) could easily be
done by a single person in a reasonable amount of time. Particularly
has the OP has already done all the hard work of figuring out the
algorithms and data structures.
And, as usual, you don't have a clue what you're talking about with
respect to the HLA system and the input others have had on the system.
As long as those impacts you are talking about are ruled by you, as the
one and only dictator who is allowed to decide what's good or not,
nobody will ever know the proposals your refused, and which were
eventually better than the ones you actually implemented.
It is amusing how often you speak from complete ignorance on the
subject of HLA. Trying doing a little research before you stick your
foot in your mouth. In particular, trying searching this very
newsgroup, the MASM32 Forum, and the AoA/HLA list. You'll find lots of
suggestions being made. Most were implemented. Those that were not, I
explained why they would not be implemented (at least, in HLA v1.x).
Now I've never claimed to be a dictator when it comes to HLA. Your
hero, Rene, OTOH, has said many times that he is the dictator for
RosAsm. He refuses to add features, like static linking, that people
have expressed a desire for. Perhaps you are confusing me with Rene?
Next time, do your homework a little better.
Are you volunteering to help him clean-room reverse-engineer the
product?
Cheers,
Randy Hyde
No, since I believe it'd be wrong to go that path, and since I believe
that there is little to gain from such a maneuver.
You argue that HLA is bad because of the syntactical confusion it
creates. It would seem to me that porting TASM to *nix would be a great
idea to you, because it makes a "nearly-Intel-syntax-compatible"
assembler available under *nix. It *reduces* the syntactical confusion,
allowing people to use the same syntax (and a very popular one) under
Win32, Linux, etc.
Cheers,
Randy Hyde
.
- References:
- TASM revisited
- From: k_jh77
- Re: TASM revisited
- From: KiLVaiDeN
- Re: TASM revisited
- From: randyhyde@xxxxxxxxxxxxx
- Re: TASM revisited
- From: KiLVaiDeN
- TASM revisited
- Prev by Date: Re: 12 Misconceptions
- Next by Date: Re: 12 Misconceptions
- Previous by thread: Re: TASM revisited
- Next by thread: Re: TASM revisited
- Index(es):
Relevant Pages
|