Hey I can program in C,little bit in Python and Pacal and I really want to learn assembly. I'm 18 and finishing high school, programming is my hobby because school work sure isn't much of a challenge.

I've downloaded a few books on Assembly they are: The Art of Assembly,Assembly for Beginners, Assembly for Complete Beginners and Wrox Professional Assembly Language. I also downloaded a FASM, MASM and HLA compiler.

Now a few questions.
1.)The examples in the Assembly for Complete Beginners are for MASM, should I run them in an emulator,someone told me that I can damage my pc if I don't use one, and if yes which emulator should I use?

2.)Also how do developers make their assembly code portable? The only info I've found on this topic are on writing viruses,since virii written in assembly have to be portable.

3.)What exactly is HLA and is it the real thing or just a HLL disguised as assembly to help teach beginners assembly?

4.)And where is the assembly community, except for on the obvious vxheaven and cracker websites?

I am reading allot lately but I feel like someone whose learning Latin, but will never make it to the Vatican to meet others who speak Latin. My friends all program in Java,but don't seem to care about C or C++,they think they can use Java for everything. I'm running Windows 7 and Ubuntu 10.0.10 on an Intel. I've only been programming for about a year now...am I diving into assembly too soon? My reasons for wanting to learn assembly: 1. Want to understand more on how CPU's work. 2. Looking for a challenge. 3. Want to learn to write efficient code. 4. Want to write smaller en faster programs. 5. Want to learn more about OS dev when I have mastered assembly. 6. If I master assembly, learning more HLL would be easier. 7. Want to have something to offer when applying for a job that others won't have. 8. Interested in AVR for example the Arduino,which uses C and not assembly but would like to understand more about AVR. Thanks. Timo

Don't use emulator you can't damage you computer.
If you want to learn assembly language I can advocate for TDAsm assembler. It's like regular assembler but you must use it from python. You can quickly write assembly code and execute it from python. I think this way you can quickly learn assembly because you don't have to about compilation. This assembler support almost all instruction including SIMD instructions.