Thread: assembler

  1. #1
    essence of digital xddxogm3's Avatar
    Join Date
    Sep 2003
    Posts
    589

    assembler

    i'm taking assembly and architecture this semester and was wondering if anyone knows different types of assemblers. And any recommendation of which is the best.
    thanks.
    "Hence to fight and conquer in all your battles is not supreme excellence;
    supreme excellence consists in breaking the enemy's resistance without fighting."
    Art of War Sun Tzu

  2. #2
    Registered User
    Join Date
    Sep 2001
    Posts
    4,912
    If you're just talking about x86 assemblers, the only one I've used much is debug.exe, and I know there are better programs for writing assembly code than that. I've toyed with others, but not enough to give advice.

    However, if you're interested in learning about the architecture of the lesser-known mainframe, I recommend a program called PC 370. It's System370 emulator for a PC, and it let's you assemble 370 Assembler and run it on a PC - the book that comes with it is quite interesting.

    I'll see if I can find a link for you.

  3. #3
    Dump Truck Internet valis's Avatar
    Join Date
    Jul 2005
    Posts
    357
    My favorite x86 assembler is fasm, if you like IDEs I recommend radasm (if you are on windows you can link with alink to create exes, if you want to create coms they will run under windows as well).
    If you don't have access to a mips box you can get pcspim to practice a more RISCy architecture.
    I have a few different ia-64 emulators, if you're interested just search google, I don't have a current favorite.
    Last edited by valis; 08-22-2005 at 07:26 PM.

  4. #4
    essence of digital xddxogm3's Avatar
    Join Date
    Sep 2003
    Posts
    589

    Question

    valis,
    My favorite x86 assembler is fasm, if you like IDEs I recommend radasm
    thanks, i think this is the way i will go, opensource is always good. ;0)

    sean, thanks for your response too.

    please anyone else that has ideas post them to help speed my education.
    it would also be nice to get a larger list of sites for my classmates.

    thanks.


    Another question I have includes details on Tasm.
    Does anyone know if it is any good.
    I think from what I have read, is that it is not under any further developement.
    Is this correct? Will they release any new updates?

    Just in case any classmates are reading this.
    Check out these sites.
    http://sourceforge.net/projects/tasmeditor
    http://sourceforge.net/projects/fasm
    http://flatassembler.net/
    http://board.flatassembler.net/
    http://radasm.visualassembler.com/

    and another question I have.
    Is there a x86 GNU Assembler?
    I like gcc, but it states there is no support for assembly language.
    Is this the only GNU Assembler?
    http://www.gnu.org/software/binutils/
    http://sourceware.org/binutils/docs-...ils/index.html
    does it have x86 support? it gives a few examples(m68k:68020, mips:3000, sparc), but not x86.

    and another question.
    does the assembler differ from chip to chip.
    per say single core vs. dual core?
    is it a generic standard, or does it specialize for each individual architectures?
    Last edited by xviddivxoggmp3; 08-22-2005 at 11:17 PM.
    "Hence to fight and conquer in all your battles is not supreme excellence;
    supreme excellence consists in breaking the enemy's resistance without fighting."
    Art of War Sun Tzu

  5. #5
    Dump Truck Internet valis's Avatar
    Join Date
    Jul 2005
    Posts
    357
    I haven't looked into this so definitely don't hold me to this, but I would imagine they wouldn't add any new instructions to dual core, if they did- most x86 assemblers still in development would likely add support for these new instructions quickly.

    tasm as in turbo assembler? Haven't ever used it so unfortunately I can't give you any information, seems ok to me, but you do have to buy it.
    nasm is another assembler which is licensed under gpl (this is actually mainly why I prefer fasm) which is quite good.
    masm is microsoft's terrible assembler, I actually just don't really like the syntax.
    gnu has as, however, I would stay as far away from this assembler if possible, it uses what is called at&t syntax, which gives me a headache to think about.

    another ide which also has much more asm information and links on the page is vasm

    and an awesome set of ia-32 instruction and architecture documentation can be found on intel's site.

    some good debuggers/disassemblers:
    nasm's disasm
    ida pro
    softice
    microsoft's cdb and kd
    ollydbg
    kdbg

  6. #6
    ... kermit's Avatar
    Join Date
    Jan 2003
    Posts
    1,534
    Quote Originally Posted by xviddivxoggmp3
    valis,
    and another question I have.
    Is there a x86 GNU Assembler?
    I like gcc, but it states there is no support for assembly language.
    Is this the only GNU Assembler?
    sparc), but not x86.

    and another question.
    does the assembler differ from chip to chip.
    per say single core vs. dual core?
    is it a generic standard, or does it specialize for each individual architectures?
    GCC supports assembly - this should get you started.

  7. #7
    essence of digital xddxogm3's Avatar
    Join Date
    Sep 2003
    Posts
    589
    Thanks for the additional input.

    Kermit,

    I found something on this site that you posted.
    http://linuxassembly.org/
    It states that this tool is made specifically for (Linux/BSD/BeOS/etc).
    Does anyone know of a full list of OS compatibility?
    I thought assembly was architecture specific and OS independent.
    Is this not correct?
    Last edited by xviddivxoggmp3; 08-23-2005 at 03:52 PM.
    "Hence to fight and conquer in all your battles is not supreme excellence;
    supreme excellence consists in breaking the enemy's resistance without fighting."
    Art of War Sun Tzu

  8. #8
    Dump Truck Internet valis's Avatar
    Join Date
    Jul 2005
    Posts
    357
    Assembly is and isn't os independant, if you had direct access to the hardware asm could be completely os independant, but sadly that would be catastrophic, so you are still stuck making system calls and all that jazz. You are correct, assembly is architecture specific.

    Assembly is os dependant if you have to do things like create files and use an os specific call (like CreateFile from the windows api).

    Assembly isn't os independant if you are using cross-compatible libraries.

    If you have an os independant app in asm, you can assemble it to a binary file, and then use different linkers to create exe, elf, etc. for your different OSs.

  9. #9
    www.entropysink.com
    Join Date
    Feb 2002
    Posts
    603
    I found http://www.emu8086.com very helpful in learning assembler. Not a bad tutorial included with it, and plenty of sample code.
    Visit entropysink.com - It's what your PC is made for!

  10. #10
    essence of digital xddxogm3's Avatar
    Join Date
    Sep 2003
    Posts
    589
    question on the flat assembler.
    i'm reading through the tutorial and it says that it writes dos programs.
    i thought it was archetecture dependent.
    so if per say i'm using xp that does not have dos, would it still work in the command promp?
    i'm assuming yes, and the tutorial is using dos interchangably with the command line.
    "Hence to fight and conquer in all your battles is not supreme excellence;
    supreme excellence consists in breaking the enemy's resistance without fighting."
    Art of War Sun Tzu

  11. #11
    Dump Truck Internet valis's Avatar
    Join Date
    Jul 2005
    Posts
    357
    it will most likely run under xp correctly, most/all your dos interrupts will work correctly so you will for the most part be safe

    The only strange issues I have run into have been memory mapped stuff

  12. #12
    essence of digital xddxogm3's Avatar
    Join Date
    Sep 2003
    Posts
    589
    fasm coders,
    i have a follow up question.
    how do i perform the simple task of
    Code:
    int x=0;
    cin>>x;
    on the fasm assembler?
    "Hence to fight and conquer in all your battles is not supreme excellence;
    supreme excellence consists in breaking the enemy's resistance without fighting."
    Art of War Sun Tzu

  13. #13
    PC Fixer-Upper Waldo2k2's Avatar
    Join Date
    May 2002
    Posts
    2,001
    A little off track, but another good dev env. for asm is actually Textpad. As long as you don't mind the registration reminder when it opens, it has many great plugins for syntax highlighting, assembly snippets, ascii code (html and assembly), etc etc. I do usually prefer an ide environment, but if you're more of a minimalist and just like using a text editor and command line linkers/assemblers (like TASM, NASM, etc) then I recommend it.
    PHP and XML
    Let's talk about SAX

  14. #14
    Unregistered User
    Join Date
    Sep 2005
    Location
    Antarctica
    Posts
    341
    Just register it, I use it so much at work and home that I decided to register it, it's pretty cheap and it's a hell of a lot better than many other commercial editors out there.

  15. #15
    Information Crocodile
    Join Date
    Dec 2004
    Posts
    204
    Actually the fasm people are currently creating their own IDE.

    Take a look. One of the better looking IDE's ive seen.
    http://fresh.flatassembler.net/pics/fresh1ss.gif

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Problem building Quake source
    By Silvercord in forum Game Programming
    Replies: 16
    Last Post: 07-11-2010, 09:13 AM
  2. Assembler in GCC
    By Magos in forum Linux Programming
    Replies: 4
    Last Post: 11-05-2002, 04:22 PM
  3. assembler and linker stuff...question
    By dirkduck in forum A Brief History of Cprogramming.com
    Replies: 2
    Last Post: 12-17-2001, 12:10 AM
  4. MAINFRAME Assembler.
    By sean in forum A Brief History of Cprogramming.com
    Replies: 3
    Last Post: 12-05-2001, 05:32 PM
  5. interfacing assembler with c++
    By Unregistered in forum C++ Programming
    Replies: 2
    Last Post: 10-24-2001, 12:13 AM