The complexity of modern processors requires that their development be paralleled by the development of a simulator to guide design decisions. In addition to facilitating the development of the processor, a simulator can also facilitate the development of compiler techniques to exploit the increased speed and functionality of the new processor. Finally, since successful processors are succeeded by newer and better processors, an established simulator can be invaluable in aiding the development of the successor processor. However, the advantages that a simulator provides to a developing architecture require that the simulator be easy to extend and modify. In this paper, we exploit object technology to present the design and implementation of a simulator for the 80x86 processor family: SIMx86. We begin by describing the design of a simulator for the 8088 processor. We demonstrate the extensibility of our design by extending it to include the 8086 processor. We further demonstrate extensibility by incorporating debugging facilities into our simulator model. To evaluate the performance of our SIMx86 simulator, we compare execution times with an existing simulator, the SimpleScalar sim-fast simulator. Our experiments indicate that SIMx86 is competitive with the sim-fast simulator. In most cases, the sim-fast simulator was about three times as fast as SIMx86. However, the ease of modification, extension and maintenance provided by our design offsets the performance gains provided by the traditional approach to simulator construction.