Extended mnemonics are often used to support specialized uses of instructions, often for purposes not obvious from the instruction name. For example, many CPU's do not have an explicit NOP instruction, but do have instructions that can be used for the purpose. In 8086 CPUs the instruction xchg ax,ax is used for nop, with nop being a pseudo-opcode to encode the instruction xchg ax,ax. Some disassemblers recognize this and will decode the xchg ax,ax instruction as nop. Similarly, IBM assemblers for System/360 and System/370 use the extended mnemonics NOP and NOPR for BC and BCR with zero masks. For the SPARC architecture, these are known as synthetic instructions.
This page is meant to provide some basic suggestions and strategies for people who are starting out with reverse engineering old adventure games, and aren't sure how to do it. It mainly focuses on resources and tools for reversing DOS game executables, but much of the strategies discussed may apply equally to other systems and debugging tools. This is only intended as an overview; you'll still need to read other resources to learn 8086 assembly language, and learn how to use the various tools effectively.
For debugging purposes, if the game is a DOS game, the DosBox Debugger is the best tool I've found for executing and debugging DOS programs. The default distribution of DosBox doesn't have it enabled, but you can either compile DosBox with it enabled, or download a previously compiled executable. See the DosBox Debugger Thread for more information.
Free software, uploaded by the author. Index A B C D E F G H I J [K] L M N O P Q R S T U V W X Y Z KVL29EOSSummary:Hires graphics library for Eclipse (adv. GUI)License:FreewareAuthor:Grzegorz KowalEmail:email@example.comDownload:kvl29eos.zip(Apr 7 2000, 115.9K)Description:Kojak's VESA Library 2.9 is a set of functions useful for the simplecreation of 32-bit GUI DOS programs under the Eclipse Operating System(DOS Extender). It supports VESA 1.x or 2.x BIOS in 640x480x256,800x600x256 and 1024x768x256 modes. The library implements macros andfunctions providing support for block, line and pixel operations,pallette manipulation, GIF, Color-IX bitmaps, text, filtered input,advanced graphic user interface, and more. Index A B C D E F G H I J K [L] M N O P Q R S T U V W X Y Z LOADEMSSummary:ASM example of load & execute from EMS memoryDownload:loadems.zip(Feb 25 1990, 3.1K) LW 8086/80186Summary:Pop-up help for instruction setDownload:lw86.zip(Nov 20 1986, 14.3K) Index A B C D E F G H I J K L [M] N O P Q R S T U V W X Y Z M68DISVersion:2.0Summary:Intelligent MC6800/6802 disassembler,License:FreewareDownload:m68dis20.zip(Nov 26 2000, 11K)Description:The M68DIS program is a disassembler for MC6800/6802. It's operationis controlled by a command file, which tells it what binary code imagefile(s) to load, the addresses for code entry points such as RST, NMI,etc. (optional), and the addresses for any code or subroutines whichmay not be explicitly called within the MC6800/6802 code. The programthen processes the code, tracing execution paths and identifying jumplocations, subroutines and data tables. The program output is normallyin "list" format, with an address column at the start of each line,however, this address column is omitted if the specified output filename ends in ".ASM". MAC 8080Summary:TASM macros to assemble codeDownload:mac8080.zip(Nov 24 1991, 9.9K) MASM_CN 6Summary:Converts v6.x .ASM to v5.x formatLicense:SharewareEmail:firstname.lastname@example.orgDownload:masm_cn3.zip(May 31 1997, 8K)Description:MASM converter converts the MASM v6.x Assembly Source Code (.ASM) to the format used by the older MASM v5.x assemblers. This allows you to assemble, after the conversion, the new source code with an older assembler (the author uses MASM v5.1). The new source code comes from such sources as a disk when you purchase an assembly related book, software distributors, etc. MASM32 V9.0Summary:32 bit MASM assembler from MicrosoftDownload: m32v9r.zip(3,455K) MASM ReferenceSummary:Microsoft MASM assembler reference manualDownload: MASMReference.pdf(646K) MD 8086Summary:Masterful Disassembler for Intel programsDownload:md86.zip(Jun 24 1990, 153.4K) MMXTASMSummary:Turbo Assembler macros for MMX programmingLicense:FreewareAuthor:Normand LeclercEmail:email@example.comDownload:mmxtasm0.zip(Mar 14 1998, 6.8K)Description:Now TASM users can code for MMx processors with TASM. Based on Intel's iammx.inc file, I managed to create a new set of macros using Ideal programming mode. I have also included an example on how to use them and how they are transparent. The example is MSDOS based and I did not include a pre-compiled version, instead, I included a makefile for easy creation. The example uses case-sensitivity compilation but the macros will work well without it. This is still a beta release. I expect to have some bugs even if I tested every instructions. MODES 013hSummary:Switch to mode/03h without BIOS - ASM srcDownload:modes.zip(Jan 27 1997, 6.1K) MODEXSummary:High performance ASM video routinesDownload:modex105.zip(May 22 1996, 258.7K) MOUSEAPI Docs on the interrupt functions used to control the mouse in DOS. Download 2b1af7f3a8