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.
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
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.
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.
valis,
thanks, i think this is the way i will go, opensource is always good. ;0)My favorite x86 assembler is fasm, if you like IDEs I recommend radasm
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
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
GCC supports assembly - this should get you started.Originally Posted by xviddivxoggmp3
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
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.
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!
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
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
fasm coders,
i have a follow up question.
how do i perform the simple task of
on the fasm assembler?Code:int x=0; cin>>x;
"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
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
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.
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