PDA

Click to See Complete Forum and Search --> : learning assembly is very easy


art_sands
Nov 27th, 2003, 08:10 AM
hi folks,

well, i've been using assembly for a year and a half, and here are some things that I think will interest newbies to assembly.

Swallow this: "Assembly is NOT AT ALL difficult."

It is those who haven't already experienced it that say it is difficult. As a matter of fact, VB looks extremely simple only because it has a great IDE. Also, VC++ makes C++/C very easy. When people say VB is simple, they are talking about the IDE and the environment that is making it simple for them, and not the language. If you consider programming VB or VC++ (makefiles and other stuff that you otherwise don't care about) without using the IDE, then you'll find VB (not C/C++) to be the ****tiest language ever to be created!

Take it from me, once you start ASM, you won't even feel like touching VB. You'll actually realize why C/C++ is the way it is and why it creates an ILLUSION of programming in C/C++ easier. This isn't supposed to mean that VB is not a good environment. It's the best RAD IDE ever produced.

With VB or VC++ the language controls what you can do and cannot. With asm YOU control what needs to be done or not.

Swallow this: "Learning computer architecture and other preliminaries before starting assembly is difficult. Assembly itself is NOT".

The smallest overhead that even a C program will generate is 2.4KB, while asm allows you to write in bytes! Simply saying that our executables become smaller is not the reason why you should use ASM.

Small executables occupy less space in memory, run on even the older systems without slowing things, and most importantly, since the microprocessor cache and instruction queue are extremely small, small code allows for more instructions to fit in without the overhead thus reducing the amount of microprocessor clock cycles being wasted on fetching data and instructions from memory, or core. That's exactly why asm programs are the fastest.

People have another argument: "A better algorithm in C, will outdo a slower one optimized in ASM." This is pure nonsense. You can do in asm anything that you can do in C. As a matter of fact, there are a zillion things that you can do in asm, but not even dream of in C. (Don't ask me for examples to try to disprove me, i won't show them. You learn asm and then you'll come to know yourself.)

For those who want to learn microprocessor architecture and asm, I have a few resources to share, and also I am writing a free online wiki book on 32-bit x86 asm at the http://board.win32asmcommunity.net.

You'll find Randy's (RANDALL HYDE) HLA stuff at webster extremely useful too. Here it is: http://webster.cs.ucr.edu/

Microsoft and Borland decided to shut asm and Bill G went even as far saying that "asm is my most favorite language but asm is the only language that will die." Well so sad for him, his predictions never come true. (Remember he said, "640K memory will be enough for every god damned application.") Such crap.

They are out to kill both linux and asm. And i'm sure they'll end up head over heels. MS don't waste your excellent efforts on suing others, instead make better products.

Regards,
Art

vbNeo
Nov 27th, 2003, 10:29 AM
MS don't waste your excellent efforts on suing others, instead make better products.

Amen =)

art_sands
Nov 27th, 2003, 10:51 AM
hi folks,

What do you think about Microsoft rolling out their own version of free Linux? Say MS Linux.

Lemme know what you think.

Regards,
Art

vbNeo
Nov 27th, 2003, 10:57 AM
I think M$ should mind their own business - improve windows, there are plenty of companies doing good Linux versions, let them have something to earn money on - if M$ makes a linux version, everybody will want to use theirs...

Just my two cents.

Cheers!

art_sands
Nov 27th, 2003, 11:02 AM
yeah,

ms could easily do that since they probably already do research on Linux in their laboratories. Anyway, have you heard anything about Longhorn? I read somewhere, they've cut down on the api from a whoppin 76,000 to a meagre 8000.

Regards,
Art

vbNeo
Nov 27th, 2003, 12:11 PM
Yeah, i've heard about it - and tried it to...(I have NOT tried Longhorn), one of the early beta's, not much to come for, just XP with with a new interface...

CornedBee
Nov 27th, 2003, 03:22 PM
They will never cut down the API that much for the sake of backwards compatibility.

As for the ASM stuff, that's all good and well. But that doesn't change the fact that ASM is platform dependent.

art_sands
Nov 27th, 2003, 03:50 PM
It sure is platform-dependent, but many people don't program for anything other than the 80x86 family, so that shouldn't be a big concern. ASM, however, can be made (and is in the process of being made) available across multiple OSes. (FASM supports Windows, DOS, Linux, and MenuetOS if i'm not wrong).

I don't oppose using HLLs like C/C++ for cross-platform compatibility. Differences in them on separate platforms do exist though.

Once you've learnt assembler and a microprocessor's architecture, you can port your knowledge to other microprocessors. Of course, you'll need to read a lot before you can efficiently do that.

Regards,
Art

CornedBee
Nov 27th, 2003, 04:00 PM
Well, have fun.

art_sands
Nov 27th, 2003, 04:06 PM
this might seem strange and off-topic but what does "VBF Countdown: 8" mean? I wonder.

Regards,
Art

CornedBee
Nov 28th, 2003, 02:52 AM
The number of annoyances I'll suffer from VBF until I leave.

vbNeo
Nov 28th, 2003, 07:02 AM
I wanna give 80x86 ASM a go - where can I find TASM?

art_sands
Nov 28th, 2003, 06:48 PM
I suggest you move to FASM or MASM, since TASM is unsupported and very few people now write for it.

You'll find the MASM32 package at http://www.masm32.com
and their board at http://www.masmforum.com

updates, tuts, and links at:
http://www.masmforum.com/website

Tasm may be downloadable from here:
http://telnet7.tripod.com/assembly.htm

If you can't find or download TASM from these places, email me at art_sands@yahoo.com requesting a copy, and I'll email it you.

but i haven't checked these.

Regards,
Art

vbNeo
Nov 28th, 2003, 08:02 PM
Thanks! I'll go with MASM then - just wanted something to help me get started - and it sounded like TASM was the standard...

art_sands
Nov 29th, 2003, 02:23 AM
....tasm WAS the standard...

:D

...masm IS a somewhat dying standard...

:rolleyes:

...fasm WILL BE the standard of the future...

:D

Regards,
Art

CornedBee
Nov 29th, 2003, 06:42 AM
What's FASM?

art_sands
Nov 29th, 2003, 07:46 AM
FASM => Flat Assembler, a no-nonsense 32-bit x86 generic assembler for programming DOS, Linux, Windows (console and gui), and MenuetOS applications in assembly.

MenuetOS is evolving and is a 100% ASM operating system! No C or other languages used to develop it. It's so fast that it can overheat your processor (because it's pre-alpha), and so small that it fits on a single floppy and doesn't need a hard disk to boot!

Some of my frenz and me are developing a VB-like extreme RAD development system for assembly. You'll be able to create applications in assembly faster than any other language. Say a Wordpad-like app in minutes!

Wait up, for a revolution is coming. Other languages will surely be blown away.

Regards,
Art

vbNeo
Nov 29th, 2003, 09:11 AM
Sounds cool, but there will be no revolution...

art_sands
Nov 29th, 2003, 10:23 AM
It's already begun.:D So i might as wel add, you won't even know what took you.

art_sands
Dec 1st, 2003, 07:09 AM
just added an example. check it out. it's bludy simple

Regards,
Art

silk.odyssey
Dec 1st, 2003, 08:27 AM
....tasm WAS the standard...


maybe :D


...masm IS a somewhat dying standard...


Standard? Yes.Dying? I'm not so sure. Masm seems to be more popular then ever .:D


...fasm WILL BE the standard of the future...


We'll see :D . I'll put my money on HLA. I think Randy is taking masm one step further with HLA and if masm dies I think HLA is the only assembler that can fill that gap. I think when HLA 2.0 is a reality more people will take it seriously. I like fasm but as it is I don't really see as an assembler for the future. Actually I see it more suitable for the older guys who are used to what assembly programming was in the past and are reluctant to change. The beginners to assembly are the ones who will determine what assembly will be in the future and from what I see most beginners use either masm or HLA, so if there's no masm I think HLA will fill that gap. I think Randy is betting on this too. :D


Some of my frenz and me are developing a VB-like extreme RAD development system for assembly. You'll be able to create applications in assembly faster than any other language. Say a Wordpad-like app in minutes!


Interesting, can't wait to see what you come up with. :)

art_sands
Dec 1st, 2003, 09:07 AM
hi Ody,

Nice to see you here. Btw wait up for the IDE. Its currently under planning. And work will start on it after a few weeks.

Regards,
Art

silk.odyssey
Dec 1st, 2003, 09:26 AM
art,

It must be a really special IDE you have in mind if its going to compete with what we have already (RadAsm, WinAsm). What is it going to be written with? Asm?

yeohhs
Dec 3rd, 2003, 12:39 AM
Hi,

If you are looking for source codes in Win32 NASM, you might want to check out this group:

Win32 NASM Users:
A group for all Win32 NASM users to share ideas and codes on Win32 programming using NASM.

The URL is:
http://groups.yahoo.com/group/win32-nasm-users/

So far, I've uploaded over 50 Win32 demo programs with source codes.

Best Regards,
Yeoh

Darkwraith
Feb 16th, 2004, 08:36 AM
Sorry for joining this thread a little late... College and all... :(

Swallow this: "Assembly is NOT AT ALL difficult."

I have to agree with this. Learning the instruction set is not at all difficult, however, learning how to program in it correctly is very difficult. For all the experienced programmers out there, you should learn assembly to help your coding abilities. You see things differently being at such a low level than you would otherwise.

Also, VC++ makes C++/C very easy. When people say VB is simple, they are talking about the IDE and the environment that is making it simple for them, and not the language. If you consider programming VB or VC++ (makefiles and other stuff that you otherwise don't care about) without using the IDE, then you'll find VB (not C/C++) to be the ****tiest language ever to be created!

I don't know that the IDE makes C / C++ very easy. It is still a dangerous language for those who do not know what they are exactly doing. VB needs the IDE because the PL is called visual basic. It needs the visual component.

People have another argument: "A better algorithm in C, will outdo a slower one optimized in ASM." This is pure nonsense.

This point was made a couple of times in this forum. The fact being that some of the stuff that you use in C / C++ are difficult to use and dangerous at best. Bringing sorting routines like quicksort, linked lists, and other "fun" algorithms down to assembler where you have another slew of potential problems to explicitly deal with (stack issues, dynamic memory allocation depending on what you use) makes these a "joy" to work with.

So if we decide to take the easy way out and use a simple algorithm like bubble sort and optimize the hell out of it in assembler, it will not compare in terms of speed to something like quicksort that has already been implemented in the STL.

I am not saying that assembly needs to die or that you cannot do anything in it, but what I am saying is to use the right tool for the right job. If there is a big project under development, I rather see it done in C++, Java, or VB than in assembler.