Home Forums Programming Assembly language IDE ?

Viewing 8 reply threads
  • Author
    Posts
    • #6555
      Anonymous
      Inactive

      Hey all,

      I’m currently considering writing a simple game (possibly a 2d platformer) entirely in x86 assembly over the summer in order to try and improve my skills in this area.

      I’m just wondering what IDEs are typically used for working with assembly ? The most important feature i’d like to have really would be good integration with a debugger; being able to set breakpoints and examine register / stack contents etc.. Syntax highlighting and other such features would also be nice but are not really essential.

      Any suggestions ?

    • #40199
      Anonymous
      Inactive

      Hi Darragh,

      Have you consider x64 instead? If you are going to invest the time and effort to learn assembler, you may want to look forward and think about the coming 64 bit environments. Just an idea.

      As for compiler, Visual Studio can handle assembler, you just need to include the _asm keyword before your assembler block.

      http://msdn2.microsoft.com/en-us/library/45yd4tzz(VS.80).aspx

    • #40191
      Anonymous
      Inactive

      Hi i would focus on x86 first, dont mind with x64 for a while. Learn one and write a game and you’ll be doing very well. Writing a game in c is challenging enough, so give yourself a fighting chance :)

      As for debuggers in the past i’ve used winasm or masm, they are both pretty decent. Personally, I’d use these over visual studios, as they are more aimed at the job.

    • #40212
      Anonymous
      Inactive

      Hi Darragh,

      Have you consider x64 instead? If you are going to invest the time and effort to learn assembler, you may want to look forward and think about the coming 64 bit environments. Just an idea.[/quote:f70bd1ea2f]

      I have.. Only problem is though that I don’t have a suitable machine to test it on; both my processor and OS are only 32-bit. As far as I can see though the x64 instruction set doesn’t appear to much different x86; just has bigger 64 bit registers and maybe a few extra instructions / features here and there, no biggie really.

      As for compiler, Visual Studio can handle assembler, you just need to include the _asm keyword before your assembler block.[/quote:f70bd1ea2f]

      Yeah I’m familiar with the _asm construct in MSVC. Can it be used outside the body of c / c++ function implementations though ? The thing is I want to avoid any high level constructs or compiler generation of assembly code. Having the compiler generate code would defeat the purpose of this exercise, which is to write pure one statement in one instruction out assembly code. It would be ideal however from a debugging standpoint if I could use the Visual Studio IDE to step through the instructions, view register contents etc..

      Writing a game in c is challenging enough, so give yourself a fighting chance [/quote:f70bd1ea2f]

      It certainly is. I find it considerably harder to write code in C than I would in C++ because I’m so used to the object oriented paradigm, thinking of problems in terms of a collection of objects interacting and so forth. Moving down to assembly will therefore be an even bigger shock :)

      I think at the end of the day though it would not only benefit low level skills, but high level skills also. If there’s one I found from the few bits and pieces of assembly code I’ve written so far is that it teaches you focus; you really have to sit down and think about a problem and know exactly what you are doing at all times if you are to get the job done.

      As for debuggers in the past i’ve used winasm or masm, they are both pretty decent. Personally, I’d use these over visual studios, as they are more aimed at the job.[/quote:f70bd1ea2f]

      Yeah I’ve used masm before, it’s pretty good. It’s interesting the way they’ve roped in higher level stuff like structs etc. so you can pick and choose when you want to write raw assembly or when you want the assembler to generate it for you. I’ll be resisting the temptation to use such things though.. :P

    • #40205
      Anonymous
      Inactive

      Hi Darragh,

      Have you considered learning Atari 2600 assembly coding?

      You can get lots of info ( including new games being developed even today ) here…

      http://www.atariage.com/

      Programming – http://www.atariage.com/2600/programming/index.html

      You could even have the resulting games played on your website, via the Java Stella 2600 emulator…

      http://jstella.sourceforge.net/

      Of course, it depends if you just want to complete a hardcore assembler and game related project for fun and experience. If you want to be able to transfer 100% of your skills to other projects, then it might not be so relevant ;)

      Mal

    • #40219
      Anonymous
      Inactive

      Hi Darragh,

      If I was doing an x86 project I’d definitely use NASM and there were links to recommended IDEs on http://asmcommunity.net/.

      http://www.winasm.net/
      http://www.radasm.com/

      Mal has a good point too, learning some Z80 or 6502 assembler is still a good idea because those chips are still manufactured in some form, you can get a 32bit Z80 alike and a 16bit 6502 alike now. These chips still get used today in various devices, if you ever wanted to try building a small console from scratch you would probably use one of these. C64 is another good place to start for 6502 like assembler, it is a harder machine to program than the 2600, but it is amazing what you can get out of a 1Mhz 25 year old design.

    • #40361
      Anonymous
      Inactive

      Hi Darragh,

      Have you considered learning Atari 2600 assembly coding?

      You can get lots of info ( including new games being developed even today ) here…[/quote:36afbfebd0]

      Not really, that machine was a bit before my time :)

      I have considered doing some 68000 code for the Amiga though. Only problem with it though would be the debugging aspect, I’m not sure how (or even if I could) set up some crude form of debugging through an emulator. Now that I think of it, did they even have debuggers for the Amiga back then ? Or was it up to good old ‘mental execution’ on the part of the programmer to catch errors ? 8)

      I’ve kinda decided upon x86 because the tools are good, it’s a popular platform, and also because it has a CISC architecture. I figure learning to program on a complex and instruction heavy CISC chip like the x86 would be highly beneficial and put me in a better position to program for more streamlined RISC architectures like those found in games consoles.

      Hi Darragh,

      If I was doing an x86 project I’d definitely use NASM and there were links to recommended IDEs on http://asmcommunity.net/.

      http://www.winasm.net/
      http://www.radasm.com/
      [/quote:36afbfebd0]

      Thanks for the links, those tools look good!

      I’ve also managed to get an assembly project compiling and linking through Visual Studio too, using custom build rules. It actually works surprisingly well, and the debugging functions the exact same way as with C++ code- so that’s good. Only downside is lack of code completion or syntax highlighting, so I might check out the other IDE’s first before deciding which to go for.

    • #40362
      Anonymous
      Inactive

      I’ve also managed to get an assembly project compiling and linking through Visual Studio too, using custom build rules. It actually works surprisingly well, and the debugging functions the exact same way as with C++ code- so that’s good. Only downside is lack of code completion or syntax highlighting, so I might check out the other IDE’s first before deciding which to go for.[/quote:419984aaca]code completion? has assembly language programming changed that much in ten years?

      i vaguely recall typing short opcode mnemonics in my youth…

    • #40363
      Anonymous
      Inactive

      I’ve also managed to get an assembly project compiling and linking through Visual Studio too, using custom build rules. It actually works surprisingly well, and the debugging functions the exact same way as with C++ code- so that’s good. Only downside is lack of code completion or syntax highlighting, so I might check out the other IDE’s first before deciding which to go for.[/quote:130f2c299e]code completion? has assembly language programming changed that much in ten years?

      i vaguely recall typing short opcode mnemonics in my youth…[/quote:130f2c299e]

      Not really. It’s not that useful when it comes to mnemonics, since you’d be quicker typing the instruction. It is useful however for function calls. WinAsm has it apparently..

Viewing 8 reply threads
  • The forum ‘Programming’ is closed to new topics and replies.