If I thought you would look at it and use it I would point you to clrhome's assembly table. There is also one on wikiti which tells you exactly what each thing does. I'm too lazy to dig up the links right now.
I'm sure that that will serve as a valuable resource for motivated assembly programmers, and in fact I'll have to remember that one myself for future reference. The exact behavior of microcode-ish commands like cpir and indir tend to escape my memory, so I'll definitely take a look at this as a resource. With that said, I'm confident that this is not the kind of resource that EphraimB is looking for.
I'll list a few references with varying formats. Hopefully one (or more) of them is what you're looking for.
http://t.eeems.ca/ASMin28Days/ref/z80is.html: The opcode reference built into the Z80 Assembly in 28 Days tutorial. Gives detailed explanations of how each instruction works, including documentation of irregular flag effects and machine code decomposition. Probably not very printer-friendly, but browser-friendly.
http://www.z80.info/z80code.txt: A very succinct text file, one instruction per line, that lists all the most useful information about each instruction. If you're looking to print something out, this is probably the one of the best to go with. Irregular flag effects aren't documented; if you want that information, I'd supplement the document with http://www.z80.info/z80sflag.htm.
http://www.z80.info/z80href.txt. Very similar to the above reference, but lacking opcode size, structure, and speed information. I included this mainly because the aboce one doesn't abstract over registers, so you can end up with four or eight basically identical versions of many instructions, making it unnecessarily long.
What I mean is for example say that Register A is the Arithmetic Register, Register B is the counter, and so on.
Register A is called the "accumulator", not the "arithmetic register", but that's not really what it's for. It just happens to be the register that all the 8-bit arithmetic operations use for the destination, and writing something that says the purpose of the A register is for arithmetic is downright wrong. Similarly, while B is used by djnz and BC is used for other looping opcodes like ldir, calling B the counter register is misleading at best.
Sounds somewhat subjective. And there are tons of them to sift through.... Bcalls are not always the solution. As a matter of fact, everything that you write in TIz80 Asm could in theory be written without any bcalls, but the size of your program would become exponential.
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum