360 likes | 376 Views
This introduction covers topics such as 80C188EB organization, segmentation, reset processing, programmer's model, machine language, assembly language, debuggers, and architecture.
E N D
ECE 353Introduction to Microprocessor Systems Michael J. Schulte Week 3
Topics • 80C188EB Organization (continued) • Segmentation • Reset Processing • Programmer’s Model • 80C188EB Machine Language • 80C188EB Assembly Language and Assemblers • 80C188EB Debuggers
Segmented Memory Architecture • Memory Segmentation • Logical vs. Physical Addresses • Segment Organization • Topologies • Disjoint • Overlapping • Identical • Physical Address Generation • Advantages • Disadvantages
Programming • Programming Languages • HLL • Assembly Language • Machine Language • Machine Language Instructions • 1 – 6 bytes in length • Encoding
Assembler Primer • Assembler Types • Native Assembler • Cross Assembler • General Instruction Syntax • Assembler Functions
Source Code File .186 ;use 80186 instructions SWITCHES equ 1234h ;define symbols LEDS equ 5678h assume cs:code ;establish CS addressability code segment ;start of code segment main: mov dx, SWITCHES ;load switch port address in al, dx ;read switches not al ;switch off turns LED on mov dx, LEDS ;load LED port address out dx, al ;write to LED port jmp main ;and repeat indefinitely code ends ;end of code segment end main ;code entry point is at main
Assembler Listing File (page 1) Turbo Assembler Version 4.1 09/12/01 08:49:11 Page 1 week3.ASM 1 .186 ;use 80186 instructions 2 3 =1234 SWITCHES equ 1234h ;define symbols 4 =5678 LEDS equ 5678h 5 6 assume cs:code ;establish CS addressability 7 8 0000 code segment ;start of code segment 9 10 0000 BA 1234 main: mov dx, SWITCHES ;load switch port address 11 0003 EC in al, dx ;read switches 12 0004 F6 D0 not al ;SW=1 --> LED on 13 0006 BA 5678 mov dx, LEDS ;load LED port address 14 0009 EE out dx, al ;write to LED port 15 000A EB F4 jmp main ;and repeat indefinitely 16 17 000C code ends ;end of code segment 18 19 end main ;code entry point is at main
Assembler Listing File (page 2) Turbo Assembler Version 4.1 09/12/01 08:49:11 Page 2 Symbol Table Symbol Name Type Value ??DATE Text "09/12/01" ??FILENAME Text "week3 " ??TIME Text "08:49:11" ??VERSION Number 040A @CPU Text 0103H @CURSEG Text CODE @FILENAME Text WEEK3 @WORDSIZE Text 2 LEDS Number 5678 MAIN Near CODE:0000 SWITCHES Number 1234 Groups & Segments Bit Size Align Combine Class CODE 16 000C Para none
Intel Hex Record Format :020000021000EC :0C000000BA3412ECF6D0BA7856EEEBF4ED :00000001FF Disassembling the data record payload. BA3412(mov dx, 1234h)EC(in al, dx)F6D0(not al) BA7856(mov dx, 5678h)EE(out dx, al)EBF4(jmp –12)
Debugger Primer • So, why is it called a bug, anyway? • Terminology • Typical Debugger Operation • Debugging Tools • Software • Hardware • Comparison of Debugging Tools
Code Development Tips • Use structured programming methods - no spaghetti code. • Use descriptive symbols and names. • Write comments as you go (or before!). • When fixing assembler errors, fix only the top one or two and re-assemble – a lot of the later errors may be due to the first few. • When debugging, verify what the registers are loaded with as compared to what you think they should be loaded with.
Instruction Decoding Exercise • The following memory dump was obtained from an 80C188EB-based system • CS:0013 is a valid instruction • Decode the memory data to determine the instructions that were assembled to produce it. CS:0013 B0 12 BA 34 12 FE C7 EB F7
Wrapping Up • Homework #2 due Friday 2/18 • Reading for next week • Chapter 6
Debugging Tools maybe yes
Simulator • Runs on a host computer, and simulates execution of your code. No actual hardware required. • Strengths • Weaknesses
Native Debugger • Code is executed on a host computer with a compatible instruction set. • Strengths • Weaknesses
Resident Monitor • Monitor is a stand-alone program that runs on the UUT, typically communicates over serial interface to a terminal. • Strengths • Weaknesses
Remote Debugger • Similar to resident monitor, but only small debugger kernel on UUT. Main debugger software runs on a host computer connected to the UUT. • Strengths • Weaknesses
ROM Emulator • Hardware plugs into ROM socket on UUT. Usually has serial connection to host computer. • Strengths • Weaknesses
Target Access Probe • Replaces the CPU on UUT. Connected to host computer for control. • Strengths • Weaknesses
In-Circuit Emulator • Replaces UUT CPU with hardware that gives full control of CPU pins (i.e. can run arbitrary bus cycles). Often contain overlay memory to allow testing of software before system hardware is available. May clamp over existing CPU that is soldered in place. • Strengths • Weaknesses
JTAG Emulators • Special serial interface to a device originally proposed just for testing (IEEE Std 1149.1) • Boundary Scan • Emulation Scan • Strengths • Weaknesses