330 likes | 528 Views
Chapter 4. Programming and Problem Solving. Flowcharting (1 of 2). Flowchart A graphical representation of processes (tasks) to be performed and the sequence to be followed in solving computational problem Symbols shown in Figure 4.1 are used commonly to draw a flowchart.
E N D
Chapter 4 Programming and Problem Solving
Flowcharting (1 of 2) • Flowchart • A graphical representation of processes (tasks) to be performed and the sequence to be followed in solving computational problem • Symbols shown in Figure 4.1 are used commonly to draw a flowchart
Example 4.1 (1 of 2) • Write instructions to load two bytes (37H and 92H) in data registers REG0 and REG1. Add the bytes and store the sum in REG2. • Steps • Load the two bytes in data registers REG0 and REG1. • Add the bytes. • Save the sum in data register REG2.
Steps in Writing and Executing Assembly Language Program • Analyze the problem. • Draw a flowchart. • Convert the flowchart in mnemonics. • Look up Hex code and assign memory addresses. • Enter the Hex code into memory of a lab training board. • Execute the program. • Debug the program if necessary.
Illustrative Program: Addition With Carry Check (1 of 2) • Write instructions to load two bytes, Byte1 (F2H) and Byte2 (32H), in data registers REG0 and REG1 respectively and add the bytes. • If the sum generates a carry, clear the data register REG2; otherwise, save the sum in REG2.
Integrated Development Environment (IDE) • Steps in using IDE • Editing – generating the source code • Assembling – Converting mnemonics into hex and binary; generates the object file • Linking – uses the object file and generates the binary code • Downloading – transfers the binary code (instructions) to the memory of the target device • Executing – perform the tasks specified by instruction codes • Simulation – Execute the program on PC (also called the simulator) • Debugging – Going through the program step-by-step to find logical problems in the instruction set
Writing a Program Using an Assembler • The assembly language program includes: • Program in mnemonics • Assembler directives • Comments
Assembly Language Format (1 of 2) • Typical statement of an assembly language source code has four fields: • Label • Opcode (operation code) • Operand (data, register, or memory address to be operated on) • Comment
Assembly Language Format (2 of 2) • Format example Label Opcode Operand Comment START: MOVLW 0xF2 ;Load F2H in W ↑↑↑↑ Space Space Space Semicolon Or Colon
Assembler Directives • ORG Origin • END End of assembly • EQU Equate • SET Defines an assembler variable • #INCLUDE Include resources from available library • RADIX Number format • DB Define byte • DW Define word • CBLOCK Define a block of constants • ENDC End of block of constants • RES Reserve memory
View Registers and Source Program in MPLAB Simulator Data bytes Define labels and const Starting memory address Label
Format of Radixes • Hexadecimal • 0x0F • H`4F` • 4F • 4FH • Decimal • D`200` • Binary • B`1001` • ASCII • `This stuff are interesting!`
Using MPLAB IDE to Write, Assemble, and Build Project (1 of 6) • Write source code using MPLAB editor. • Create a new project. • Select language tool suite. • Name your project. • Add files to assemble. • Build the project.
Using MPLAB IDE (2 of 6) • To create a new project • Step 1: Open MPLAB IDE Select Project Project Wizard Select Device PIC18F452 Next
Using MPLAB IDE (3 of 6) • Step 2: Select a Language Toolsuite: Microchip MPASM Toolsuite Next
Using MPLAB IDE (4 of 6) • Step 3. Name Your Project: Illust4-4 Addition with Carry Check Browse MyProj\Ch04 Next
Using MPLAB IDE (5 of 6) • Step 4: Add Add Source Files Next
Using MPLAB IDE (6 of 6) • Summary Finish
Understanding the List File • List file generated primarily for documentation • Includes seven columns • Memory addresses where binary code is stored • Hex code • Line numbers • Contents of source file • Labels • Opcode • Operands • Comments
Executing a Program Using Simulator • Steps in setting up MPLAB simulator • Select Debugger Select tool MPLABSIM • Select Debugger Settings Change frequency if necessary • Select View Watch Add registers to observe
View Registers, Source Program, and Program Memory in MPLAB Simulator
Debugging a Program • Single-step technique • Enables user to execute one instruction at a time and observe registers for expected results • Breakpoint technique • Enables user to execute a group of instructions at a time and observe registers for expected results • Tracing code • MPLAB can track execution of each instruction and display data which can be examined for errors
Assembler Directive • Pseudo-code instructions • Define constants, labels, where to assemble a program, reserves memory for data • Directives do not translate to machine language do not require memory assignment (come for free!) • Example BYTE EQU 0x02 • Label BYTE is being equated to value 2Hex • Example ORG 20H • Assemble the program starting at location 20H