blob: 24ccc6e4b8e2796ea6068a7ae9ca2688a0299128 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2010 Nokia and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Nokia - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.debug.edc.x86.disassembler;
/**
* Status of the x86 disassembler
* <p>
* The disassembler is not meant to be a full fledged x86 disassembler. Its
* initial purpose is to offer disassembly support for EDC debugger for x86
* platform which will use it in areas like stepping and (perhaps) stack
* crawling.
* </p>
*
* --------------------------------------------------<br>
* <b>How to add new instruction</b><br>
* --------------------------------------------------
*
* <p>
* The class {@link OpcodeX86} is supposed to contain definition of instructions
* from opcode map in Intel developer manual Vol 3B. Add any new instruction
* there. Then add a test case in
*
* {@link org.eclipse.cdt.debug.edc.tests.TestDisassemblerX86}
*
* <p>
* New addressing method (things like "Ev", "Ap" etc) should be added in class
* {@link InstructionParserX86}.
*
* <p>
* --------------------------------------------------<br>
* <b>Status as of July 22 2009 </b><br>
* --------------------------------------------------
*
* <p>
* 1. The disassembler only supports 32-bit address mode, no 16 or 64-bit
* address mode, though any one who has interest can extend it.
*
* <p>
* 2. Only AT&T syntax is supported. See class AssemblyFormatter for more.
*
* <p>
* 3. All general-purpose instructions and FPU (x87) instructions are supported.
* Instructions for MMX, SSE are not supported yet, though again any one
* interested should be able to add new instruction support with ease.
*
* <p>
* 4. So far I've been able to disassemble "vi" and "gdb" binaries on 32-bit
* Ubuntu Linux and feed the output to GNU assembler without getting any error.
* <p>
* --------------------------------------------------<br>
* <b>References </b><br>
* --------------------------------------------------
* </p>
* <ul>
* <li><a href="http://www.intel.com/products/processor/manuals/">Intel 64 and
* IA-32 Architectures Software Developer's Manuals</a></li>
* <li><a href="http://en.wikipedia.org/wiki/X86_assembly_language">x86 assembly
* language - Wikipedia</a></li>
* <li><a href="http://siyobik.info/index.php?module=x86">x86 Instruction Set
* Reference</a></li>
* </ul>
*/
class readme {
// this is a dummy class just for holding the readme info so that we can use
// javadoc features such as hyperlinks to code or URL, spell checking and
// format.
}