1 / 27

ECE 353 Introduction to Microprocessor Systems

ECE 353 Introduction to Microprocessor Systems. Michael G. Morrow, P.E. Week 3. Objectives. 80C188EB Organization (continued) Segmentation Reset Processing Programmer’s Model 80C188EB Machine Language 80C188EB Assembly Language and Assemblers 80C188EB Debuggers. 80C188EB Architecture.

ivana
Download Presentation

ECE 353 Introduction to Microprocessor Systems

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ECE 353Introduction to Microprocessor Systems Michael G. Morrow, P.E. Week 3

  2. Objectives • 80C188EB Organization (continued) • Segmentation • Reset Processing • Programmer’s Model • 80C188EB Machine Language • 80C188EB Assembly Language and Assemblers • 80C188EB Debuggers

  3. 80C188EBArchitecture

  4. Segmented Memory Architecture • Memory Segmentation • Logical vs. Physical Addresses • Segment Organization • Topologies • Disjoint • Overlapping • Identical • Physical Address Generation • Advantages • Disadvantages

  5. 80C188EBImplementation

  6. 80C188EB Programmer’s Model

  7. Programming • Programming Languages • HLL • Assembly Language • Machine Language • Machine Language Instructions • 1 – 6 bytes in length • Encoding

  8. Assembler Primer • Assembler Types • Native Assembler • Cross Assembler • General Instruction Syntax • Instruction Examples • Assembler Functions • Syntax checking • Offset calculation • Encoding to machine code

  9. ExampleProgram Hardware

  10. 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

  11. 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

  12. 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

  13. Code Generation Process

  14. 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)

  15. Borland Development Tools

  16. Debugger Primer • So, why is it called a bug, anyway? • Terminology • Typical Debugger Operation • Debugging Tools • Software • Hardware • Comparison of Debugging Tools

  17. Paradigm C++ Demonstration • Paradigm C++ (PCPP) is used in ECE 315 • PCPP is an integrated development environment (IDE) • Code generation • Debugging • Code Development Tips • Use structured programming methods / no spaghetti code. • Use descriptive symbols and names. • Write comments as you go. • 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.

  18. 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

  19. Instruction Decoding Solution 16 000A B0 12 Target: mov al, 12h 17 000C BA 1234 mov dx, 1234h 18 000F FE C7 inc bh 19 0011 EB F7 jmp Target

  20. Wrapping Up • Homework #2 due Friday 9/28

  21. 80C188EB Instruction Encoding

  22. JMP Instruction Encoding

  23. INC Instruction Encoding

  24. Debugging Tools

  25. Disjoint Segments

  26. Overlapping Segments

  27. Identical Segments

More Related