Where To start ??

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,

Comments

  • : 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?

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


    : What is the best, most widely used IDE/Compiler/debugger. I wouldn't mind something similiar to Studio 2005's IDE.
    [green]
    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/
    [/green]



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

    [green]
    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.
    [/green]


    : Any help much appreciated,
    :
    : Thanks,
    :

  • Hey,

    Excellant, thanks for the info!
  • 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?
  • : 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


  • : : 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
    :
    :
    :
    [green]
    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.
    [/green]

  • : : : 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
    : :
    : :
    : :
    : [green]
    : 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.
    : [/green]
    :
    [blue]
    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.
    [/blue]

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



  • [blue]
    : 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.
    : [/blue]
    :
    : Greets,
    : Eric Goldstein
    : http://www.gvh-maatwerk.nl
    :
    :
    :
    [green]
    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.
    [/green]

  • 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.
  • : 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?

    [blue]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.
    [/blue]

    :
    : 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.
    :
    [blue]Go for it!!![/blue]
  • : 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?
    [green]
    You can use FASM without Macros. Like IDK said, there are just there to assist.
    [/green]

    : 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.
    :
    [green]
    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. :-D
    [/green]

  • 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,
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories