x86 Assembly

Moderators: None (Apply to moderate this forum)
Number of threads: 4556
Number of posts: 16011

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Where To start ?? Posted by RedKMan on 21 May 2006 at 10:56 AM
Hey,

I am looking at learning assembler, I've done some googling but there seems a lot of different information out there.

What is the most commonly used type of assembler, is it X86? My processor is an AMD Athlon XP2200+, does this have any bearing on what I choose to learn?

What is the best, most widely used IDE/Compiler/debugger. I wouldn't mind something similiar to Studio 2005's IDE.

Any recommendations for first rate resources for beginners to get started?

Any help much appreciated,

Thanks,
Report
Re: Where To start ?? Posted by shaolin007 on 21 May 2006 at 2:42 PM
: Hey,
:
: I am looking at learning assembler, I've done some googling but there seems a lot of different information out there.
:
: What is the most commonly used type of assembler, is it X86? My processor is an AMD Athlon XP2200+, does this have any bearing on what I choose to learn?


If you learn the x86 instruction set, programs will run the same on your AMD just like a pentium.



: What is the best, most widely used IDE/Compiler/debugger. I wouldn't mind something similiar to Studio 2005's IDE.

FASM, GUI version, is the best one out there now. It is a total IDE capable of producing practically any executable. The author updates regularly. http://flatassembler.net/




: Any recommendations for first rate resources for beginners to get started?


Learn 16 bit real mode first and then move up to 32/64 bit. It will give you hardware experience that will become valuable later on. There is a free downloadable book called "The Art of Assembly Language" 16 bit version. It is a huge book, but it covers nearly every bit of programming. I got a book called "Assembly Language Step by Step" when I 1st started learning and is a good primer to the Art of Assembly language. It goes over some do's and don'ts that you need to know to avoid headaches.



: Any help much appreciated,
:
: Thanks,
:

Report
Re: Where To start ?? Posted by RedKMan on 21 May 2006 at 11:54 PM
Hey,

Excellant, thanks for the info!
Report
Re: Where To start ?? Posted by RedKMan on 22 May 2006 at 12:08 AM
Quick question..

What are the dangers involved when messing around with asm on a Windows based PC? I here Windows crashes often when executing asm programs. I also hear it is possible to damage your system programming in asm, such as making the hard drive un-usuable and messing up with FAT32 system? Any truth to this and is it then worth using an emulator such as Bochs?
Report
Re: Where To start ?? Posted by tsagld on 22 May 2006 at 1:10 AM
: Quick question..
:
: What are the dangers involved when messing around with asm on a Windows based PC? I here Windows crashes often when executing asm programs. I also hear it is possible to damage your system programming in asm, such as making the hard drive un-usuable and messing up with FAT32 system? Any truth to this and is it then worth using an emulator such as Bochs?
:
Sure Windows can crash executing asm programs, as it can using any programming language. A program, whether it is asm, C or whatever language, needs to be compiled to machinecode first before it can be executed. So the OS always executes machinecode.
But if the OS crashes it is always the programmer's fault (at least since XP). Windows protects the system from doing any seriously dangerous because any program runs in it's own environment.

As for starting with 16-bit assembly, I disagree with that. Processors are 32- (or even 64-) bit nowadays. I don't think you will get a better grasp if you start with 16-bit assembly. If that would be the case, then why not start with 8-bit assembly?


Greets,
Eric Goldstein
http://www.gvh-maatwerk.nl


Report
Re: Where To start ?? Posted by shaolin007 on 22 May 2006 at 7:34 AM
: : Quick question..
: :
: : What are the dangers involved when messing around with asm on a Windows based PC? I here Windows crashes often when executing asm programs. I also hear it is possible to damage your system programming in asm, such as making the hard drive un-usuable and messing up with FAT32 system? Any truth to this and is it then worth using an emulator such as Bochs?
: :
: Sure Windows can crash executing asm programs, as it can using any programming language. A program, whether it is asm, C or whatever language, needs to be compiled to machinecode first before it can be executed. So the OS always executes machinecode.
: But if the OS crashes it is always the programmer's fault (at least since XP). Windows protects the system from doing any seriously dangerous because any program runs in it's own environment.
:
: As for starting with 16-bit assembly, I disagree with that. Processors are 32- (or even 64-) bit nowadays. I don't think you will get a better grasp if you start with 16-bit assembly. If that would be the case, then why not start with 8-bit assembly?
:
:
: Greets,
: Eric Goldstein
: http://www.gvh-maatwerk.nl
:
:
:

Why not? Programming the hardware directly like the DMA, PIC, PIT, and other embedded systems can only be a good thing if you wish to program other chips. Learning 16 bit first and then moving on gives you a better insight on why things work the way they do now. I can personally speak for that.


Report
Re: Where To start ?? Posted by tsagld on 22 May 2006 at 8:23 AM
: : : Quick question..
: : :
: : : What are the dangers involved when messing around with asm on a Windows based PC? I here Windows crashes often when executing asm programs. I also hear it is possible to damage your system programming in asm, such as making the hard drive un-usuable and messing up with FAT32 system? Any truth to this and is it then worth using an emulator such as Bochs?
: : :
: : Sure Windows can crash executing asm programs, as it can using any programming language. A program, whether it is asm, C or whatever language, needs to be compiled to machinecode first before it can be executed. So the OS always executes machinecode.
: : But if the OS crashes it is always the programmer's fault (at least since XP). Windows protects the system from doing any seriously dangerous because any program runs in it's own environment.
: :
: : As for starting with 16-bit assembly, I disagree with that. Processors are 32- (or even 64-) bit nowadays. I don't think you will get a better grasp if you start with 16-bit assembly. If that would be the case, then why not start with 8-bit assembly?
: :
: :
: : Greets,
: : Eric Goldstein
: : http://www.gvh-maatwerk.nl
: :
: :
: :
:
: Why not? Programming the hardware directly like the DMA, PIC, PIT, and other embedded systems can only be a good thing if you wish to program other chips. Learning 16 bit first and then moving on gives you a better insight on why things work the way they do now. I can personally speak for that.
:

:

You may be right if you plan on coding for embedded systems. If you don't, like most people I guess, it has no advantage at all. The OS nowadays handles all the hardware-interfacing for you. Imo, there's absolutely no need to use 16-bit registers. In fact, on a 32-bit processor, they only degrade performance.
Another fact is that there is a number of instruction that only operate on 32-bit registers. Using 16-bit assembly only will cause you to unnessecarily use several instructions while the same goal can be reached using only one instruction.

I too evolved from 8-bit assembly to 32-bit assembly.
Nowadays I profit from the 64-bit MMX-instruction set as well. Great for math operations.


Greets,
Eric Goldstein
http://www.gvh-maatwerk.nl


Report
Re: Where To start ?? Posted by shaolin007 on 22 May 2006 at 9:13 AM


: You may be right if you plan on coding for embedded systems. If you don't, like most people I guess, it has no advantage at all. The OS nowadays handles all the hardware-interfacing for you. Imo, there's absolutely no need to use 16-bit registers. In fact, on a 32-bit processor, they only degrade performance.
: Another fact is that there is a number of instruction that only operate on 32-bit registers. Using 16-bit assembly only will cause you to unnessecarily use several instructions while the same goal can be reached using only one instruction.
:
: I too evolved from 8-bit assembly to 32-bit assembly.
: Nowadays I profit from the 64-bit MMX-instruction set as well. Great for math operations.
:

:
: Greets,
: Eric Goldstein
: http://www.gvh-maatwerk.nl
:
:
:

I guess if you want to remain an application level programmer and have the OS, like Windows, do all the dirty work for you then yes you are correct, but what if you wanted to move on to system level programming? You would be SOL if you ask me, but do whatever suits you. You are not going to hurt my feelings learning assembly your own way because everyone learns differently anyways.


Report
Re: Where To start ?? Posted by RedKMan on 22 May 2006 at 11:18 AM
Hey Guys,

Thanks for the info, I take good and useful advice from both sides. One further question which has cropped up.

I want to learn low level assembly as opposed to HLA which I have heard involves lots of macros to assist you - means you don't have to be bothered with the nitty gritty. My plan is to learn this fully I want to get as low level asm as one can possibly get. With that in mind, can I still use something NASM, MASM, FASM and just turn off macros or something like that?

Not sure if it still occurs today but old school arcade games such as Kung Fu Master were written in asm. I (Just for my own goals, I realise Win and DX is a better option but I am comfortable with them) want to code something like that in asm which could also be put onto an arcade machine in the same way as they did back in the late 80's.

Thanks for all the help so far.
Report
Re: Where To start ?? Posted by IDK on 22 May 2006 at 11:26 AM
: Hey Guys,
:
: Thanks for the info, I take good and useful advice from both sides. One further question which has cropped up.
:
: I want to learn low level assembly as opposed to HLA which I have heard involves lots of macros to assist you - means you don't have to be bothered with the nitty gritty. My plan is to learn this fully I want to get as low level asm as one can possibly get. With that in mind, can I still use something NASM, MASM, FASM and just turn off macros or something like that?

If you don't use macros then you won't.
Macros are a programming technice to help you code.
They are like inline functions in C++.
Macros can speed up your programming and make it more efiecient.

You don't have to use them.


:
: Not sure if it still occurs today but old school arcade games such as Kung Fu Master were written in asm. I (Just for my own goals, I realise Win and DX is a better option but I am comfortable with them) want to code something like that in asm which could also be put onto an arcade machine in the same way as they did back in the late 80's.
:
Go for it!!!
Report
Re: Where To start ?? Posted by shaolin007 on 22 May 2006 at 12:42 PM
: Hey Guys,
:
: Thanks for the info, I take good and useful advice from both sides. One further question which has cropped up.
:
: I want to learn low level assembly as opposed to HLA which I have heard involves lots of macros to assist you - means you don't have to be bothered with the nitty gritty. My plan is to learn this fully I want to get as low level asm as one can possibly get. With that in mind, can I still use something NASM, MASM, FASM and just turn off macros or something like that?

You can use FASM without Macros. Like IDK said, there are just there to assist.


: Not sure if it still occurs today but old school arcade games such as Kung Fu Master were written in asm. I (Just for my own goals, I realise Win and DX is a better option but I am comfortable with them) want to code something like that in asm which could also be put onto an arcade machine in the same way as they did back in the late 80's.
:
: Thanks for all the help so far.
:

Kung Fu Master was a long time favorite of mine! Man, I spent many hours and quaters on that game! The good ole days, ahhh.


Report
Re: Where To start ?? Posted by RedKMan on 23 May 2006 at 10:41 AM
Yep,

Kung Fu Master is my all-time favourite game ever. Never got passed the giant on level 3 but come close many times LOL. If I can do a version of that game in asm - I'll probably have many questions shortly LOL. Although I've just brought The Art of Assembly.

Thanks,



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.