http://www.kingswood-consulting.co.uk/assemblers/ Frank's Cross Assemblers : M6800/6801/6802/6803;M6805;M6809/H6309;i8048/49/50;R6502/65SC02;i8080-Z180
6800 /6801/6802/6803 Assembler for DOS
ftp://ftp.worldofspectrum.org/pub/sinclair/tools/pc/TheE-Z80Way.zip this Z80 assembler is free but has some powerful features including: Long labels (13 characters), Instruction time information, Clock cycle counted blocks, All documented, and undocumented instructions with a unique action (1119), Complete forward reference resolution (implemented through four different passes). I have documented a Z80 flags feature that noone has already done.
http://www.softools.com/ It is a good, mature ANSI z80/z180 compiler.
http://www.z80.info/ Official Support-Page: Hardware - Software - Utilities - FAQ - Docs for Z80-Family
http://www.hytherion.com/beattidp/ Forth, Z80, Zilog Z380, 65C02 /6502 Great Site
http://www.ctyme.com/rbrown.htm Ralf Brown's Interrupt List Indexed HTML Version - Release 61 A Gift to DOS Programmers HTML version of the famous Ralf Brown Interrupt List with over 9000 linked pages and 350 indexes making the process of searching much easier. This list contains every documented and undocumented interrupt call known. Ralf Brown is a Postdoctoral Fellow at Carnegie Mellon University 's Center for Machine Translation in Pittsburgh, Pennsylvania. He is well-known in cyberspace for maintaining the Interrupt List. We all appreciate his continued support.
Where can i find a 8086 emulator ?
http://bochs.sourceforge.net/ Emulates a full x86 PC on pretty much any hardware.
http://jeanlouis.salvat.free.fr/cours_8088.htm Cours de programmation Microprocesseur 8088 (version PDF ; DOC)http://fiddes.net/coldfire/download.htm Cross-Compiler for MC68302
Dutta's SDCC C Compiler which is available from SourceForge. There are already
ports for 8051, Z80, GameBoy Z80, AVR, H8, 6800 and other 8 bit micros. GNU
GCC is fine, but it's more aimed at 32 bit micros and I get the impression that
you're targetting your work for the low-end side.
You might look around at http://www.gnu.org/doc/doc.html and http://www.gnu.org/software/gcc/onlinedocs/ for helpful info...
Writing a compiler can be a very interesting and rewarding experience in its own right. However if writing the compiler is not your primary goal i.e. you need the compiler for your actual product, then you stand a very good chance of losing sight of your main objective while you digress (possibly for years).
Compilers are relatively easy to write. You can pick up the bare bones of one from many books or GPL source. The black art is the machine code generator.Producing optimised machine code for some CPUs is very difficult. Before you set out on you epic quest, try converting the following code to assembler for your target CPU and you may get a feel for what lies ahead.
a[j] = a[j] + 1
a[j] = fred( a[j] ) + a[j]
a[j] = a[k+n] - a[j]
a[j].p[k].r = a[j].p[k].r + 1
a = (a + (b - c)) / (j + (k - n))
a = (a + (b - c[d])) / (j + (k - n[e]))
if ( (b > c ) && (d[j] < e) && (f < g) ) d[j] = d[j] + 1
a = (b > c) == (d < e)
Try defining some of the above variables as signed chars, unsigned chars, short ints, long ints, floats and doubles. Generate assembler that handles the mixed combinations efficiently. Did you have any problems with allocating registers or computing addresses? Consider how your compiler is going to generate code to compute the addresses and how it is going to be potentially restricted to using your scarce registers to build an address. Is this going to conflict with keeping your result in a register. Do you have a stack available to you to spill your registers to when you run out? How efficient are the stack addressing operations available on your target CPU? Will you need to use directly addressed dedicated RAM locations? Some CPUs have only one index register and severely restrict the use of the stack pointer, so referencing parameters, locals and global arrays becomes a serious juggling act involving the index register. using dedicated RAM locations also affects how functions call each other since a called function cannot use dedicated RAM for temporary storage that is being used by a calling function. This also affects how you prepare parameters to be passed. How will you reference tables in RAM and ROM where the code and data have their own address and data buses and both overlap (Harvard architecture)? If you find that your target CPU is too difficult to generate code for, maybe you should consider choosing a more advanced CPU as your starting point. Learn on that and then go back to your original CPU. I've got a copy of his articles here (somewhere), should someone need them. I can think of one or two books/articles that I think are as good to start with and might be considered as adjoint reading. Those would at least be the article by Wirth on PL/0 in his Data Structures book and the book by Ronald Mak, "Writing Compilers and Interpreters", (although I disagree with his coding style of mixing unassociated purposes into compound functions the way he does.)
His articles are in my permanent collection, both on disk and on the bookshelf. Wirth is always good reading, and I had forgotten that article, but will take it out again. The book by Mak is not familiar, though I do have an older one by Gries which was quite good (though not reflective of the current state of technology.)
pour le Z80:
du Z80: Afficheur Lumineux partie Software et Hardware
http://www.rottmerhusen.com/jupiter_ace_.html JUPITER ACE
les infos sur le proc, et des exemples de projets l'utilisant.
http://digilander.iol.it/rar2k/TRS80/ RadioShack TRS-80 Model 100/102 Resource Page
Documentation du désassembleur universel de microprocesseurs XDASM.
http://webster.cs.ucr.edu/ Assembly Language Programming . MASM Documentation
Les paramètres des disques IDE/AT (Langages et systemes / INFOPC) (Attention: programme assembleur 8086 et C qui ne marchent pas ) hdid.zip
Inititation au Turbo-Forth
Les microprocesseurs 32 bits d'Intel : Des performances à la hauteur des applications de pointe.
Microsoft MASM 6.0 + Syntaxe
L'assembleur 8086, 80386 et 8087/80387 (INITIATION revue Microsystèmes)
http://prg.rkk.cz/~mpoupe/ Calculatrices CASIO ASM Hacking
Retour au sommaire
Retour à la Page d'accueil
25 décembre, 2014
Email : email@example.com