Ross Parker 16661077
Lesson Plan 2009-04-03
Date: 03/04/2009
Teacher: Ross Parker
School: NSBHS
Subject: HSC SDD
Topic: Assembler vs High Level Programming
Classes: 11SDD (9 students)
Overview
The aim of the lesson is to give students a more practical understanding of the differences
between programming in assembler (for the Intel 8086) and in a high level language (VB in
this case) and to get them to think about the relationship between hardware and software.
Preparation
1. Install the 8086 emulator (http://www.emu8086.com/) on the student computers.
2. Create links on the school intranet to:
a. 8086 Instruction Reference:
http://www.emu8086.com/assembly_language_tutorial_assembler_reference/
8086_instruction_set.html
b. Code examples: http://emu8086.com/dr/asm2html/assembler_source_code/
c. Intel Microprocessor Hall of Fame:
http://www.intel.com/museum/online/hist_micro/hof/index.htm
d. Block diagram of 8086 processor:
http://forum.vtu.ac.in/~edusat/advancemp/sj/8086_Internal_Block_diagram_e
notes.pdf
e. Image of the 8086 processor:
http://download.intel.com/museum/exhibits/hist_micro/hof/large_jpegs/
8088B1.jpg
3. Post Emu8086 Introduction (see below) on the school intranet
Lesson Introduction (5 minutes)
1. Students to logon to computers and then sit away from computers.
Page 1 of 4
Ross Parker 16661077
2. Brief introduction to the lesson aims and what will be covered. Remind students of
importance of trying to understand the assembly code they will be looking at.
Lesson Sequence (40 minutes)
1. Ask students to download the Emu8086 Introduction from the intranet and use it to
start investigating the emulator software. (5 minutes)
2. Students to choose an assembler language code example (from the Emu8086 website
or from the interface itself) and to:
a. Load it into the emulator’s Source Code view.
b. Go through the first 10 commands, looking them up in the reference guide and
block diagram to understand their function.
i. Students need to link the command to the hardware.
c. Run the first 10 commands step by step and look at the state of the registers in
the emulator.
d. Count the total number of lines of code in the programme.
3. Attempt to recreate the same functionality in VB.
a. How many lines of code does this require?
4. Students to write a short reflective piece on the relationship between hardware and
software, and between assembler and high-level programming languages.
Lesson Conclusion (5 minutes)
1. Ask students what they have learned
2. Assign homework:
a. Finish reflective piece
b. Work to be emailed to Mr. Stidston.
Emu8086 Introduction
1. An emulator uses one machine to virtually create the environment of another.
2. The Emu8086 does this for the Intel 8086 processor.
3. Launch the software from Start > All Programmes > emu8086 > emu8086
4. The programme’s main screen will appear (select New and Cancel in the two pop-up
windows to get a blank source code window:
Page 2 of 4
Ross Parker 16661077
5. Type in your code, or load an example (either from the interface or from a code
example website (see the school intranet)
6. Press “emulate” to begin processing the code.
7. You will see the following windows pop up:
Page 3 of 4
Ross Parker 16661077
8. This shows you: registers, current machine code instructions (in hex), current
assembler instruction, and the original source code.
9. You can use the “single step” and “run” buttons in the top toolbar to control
processing
10. At some point in your execution you may see an emulated terminal display screen
appear. This will display output and allow user input:
Page 4 of 4