Asee peer logo

Ak68: A New Cross Assembler And Integrated Cpu Simulator For The Motorola M68000 Microprocessor

Download Paper |


1997 Annual Conference


Milwaukee, Wisconsin

Publication Date

June 15, 1997

Start Date

June 15, 1997

End Date

June 18, 1997



Page Count


Page Numbers

2.60.1 - 2.60.5



Permanent URL

Download Count


Request a correction

Paper Authors

author page

Sohail Anwar

author page

Roy Sheehan

author page

Durel Hauser

Download Paper |

NOTE: The first page of text has been automatically extracted and included below in lieu of an abstract

Session 1532

AK68: A New Cross-Assembler and Integrated CPU Simulator For The Motorola M68000 Microprocessor

Dr. Sohail Anwar, Durel Hauser, Roy Sheehan Penn State Altoona/US Postal Service/Sheehan Electronics

ABSTRACT This paper describes a cross-assembler and integrated CPU simulator for the Motorola M68000 microprocessor developed by the authors for use in an undergraduate introductory course on microprocessors. The principal design objective of the authors was to create a less intrusive or more user friendly assembler combined with a dynamic model of program execution to encourage deductive problem solving in place of undesirable trial and error activity.

The design of the cross-assembler centered on three goals: (1) The assembler must discriminate between labels, operators, and operands without any strict set of identification rules. (2) The assembler must produce a broad set of error messages which provide corrective guidance as opposed to a vague error identification. That is, the error messages must distinguish assembler errors from the Motorola M68000 assembly language syntax errors, and the assembler must graphically highlight the line element (label, operator, or operand) which caused the error. Furthermore, the error message must indicate, as possible, the needed corrective action. (3) The assembler must include a mouse operated “pop up” hexadecimal/binary/decimal calculator.

The design goals listed above required two main views of this cross-assembler/simulator: (i) an exterior, or program flow view and (ii) an interior or CPU register view. Two selectable windows were created to fulfill this requirement. The assembler’s output (a hexadecimal object code listing) is piped to the assembler’s text editor where the line addressed by the simulated CPU program counter instruction fetch is highlighted. The interior CPU view contains all of the Motorola M68000 internal registers, stack pointers, and the status register.

The Motorola M68000 simulator does not emulate an internal multi-phase CPU clock. Multiple simultaneous exceptions (more than one exception occurring during the execution of a single instruction) result in exception processing which may or may not be equivalent to the order of execution which would occur in a real Motorola M68000 hardware environment. For this reason, when simultaneous exception errors are detected, the program halts and a message is displayed. During two years of use at Penn State Altoona, this limitation has never been observed to restrict the primary utility of the program, that is, to visually illustrate the operation of the Motorola M68000 microprocessor.

This paper provides a detailed description of the cross-assembler/integrated CPU simulator titled AK68. Design considerations are described and details of AK68 operation are discussed.

INTRODUCTION While teaching a sophomore level introductory course on microprocessors to the Penn State Altoona electrical engineering technology students, the authors of this paper observed that a significant amount of students’ laboratory time was spent on an aspect of the exercises considered to be extraneous to the fulfillment of the laboratory objectives. The laboratory experience centered on elemental computer programming with a hardware emphasis. To accomplish this, exercises were devised involving a Motorola M68000 based small board computer and a corresponding commercially available cross-assembler.

Although a major aspect of the laboratory experience involved CPU programming, the actual experience was observed to be highly skewed toward another activity. A significant amount of time was spent learning the environment in which the programming was performed. Although learning the programming environment, as

Anwar, S., & Sheehan, R., & Hauser, D. (1997, June), Ak68: A New Cross Assembler And Integrated Cpu Simulator For The Motorola M68000 Microprocessor Paper presented at 1997 Annual Conference, Milwaukee, Wisconsin. 10.18260/1-2--6416

ASEE holds the copyright on this document. It may be read by the public free of charge. Authors may archive their work on personal websites or in institutional repositories with the following citation: © 1997 American Society for Engineering Education. Other scholars may excerpt or quote from these materials with the same citation. When excerpting or quoting from Conference Proceedings, authors should, in addition to noting the ASEE copyright, list all the original authors and their institutions and name the host city of the conference. - Last updated April 1, 2015