Microprocessor Systems Design I

Slides:



Advertisements
Similar presentations
Control structures Hot to translate high level control structures to assembler.
Advertisements

ACOE2511 Assembly Language Arithmetic and Logic Instructions.
Computer Organization & Assembly Language
Microprocessor Systems Design I Instructor: Dr. Michael Geiger Fall 2012 Lecture 10: Flag control instructions Conditional execution.
16.317: Microprocessor System Design I Instructor: Dr. Michael Geiger Spring 2012 Lecture 30: PIC data memory.
9/20/6Lecture 21 -PIC Architecture1 PIC Architecture Instruction Set.
9/20/6Lecture 21 -PIC Architecture1 PIC Architecture Programmers Model and Instruction Set.
Microprocessor and Interfacing PIC Code Execution
Lecture – 4 PIC18 Family Instruction Set 1. Outline Literal instructions. Bit-oriented instructions. Byte-oriented instructions. Program control instructions.
Microprocessors Monday, Apr. 13 Dr. Asmaa Farouk Faculty of Engineering, Electrical Department, Assiut University.
COMP3221: Microprocessors and Embedded Systems--Lecture 10 1 COMP3221: Microprocessors and Embedded Systems Lecture 10: Shift and Bit-set Instructions.
V 0.41 C Arithmetic operators OperatorDescription +, -addition (i+j), subtraction (i-j) *, /multiplication (i*j), division (i/j) ++, --increment (i++),
PIC12F629/675. “Wide variety” 8-84 pin RISC core, 12/14/16bit program word USART/AUSART, I 2 C, ADC, ICSP, ICD OTP/UV EPROM/FLASH/ROM Families: PIC12,
Computer and Information Sciences College / Computer Science Department CS 206 D Computer Organization and Assembly Language.
Department of Electronic & Electrical Engineering Lecture 4. ➢ Loops ➢ Delays ➢ Conditional instructions ➢ Simple clock example.
Microprocessor Systems Design I
Unit 1 Instruction set M.Brindha AP/EIE
Lecture – 5 Assembly Language Programming
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Assembly Language Programming of 8085
Microprocessor T. Y. B. Sc..
Microprocessor Systems Design I
Microprocessor Systems Design I
Homework Reading Labs PAL, pp
3.Instruction Set of 8085 Consists of 74 operation codes, e.g. MOV
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
Microprocessor Systems Design I
1. Introduction A microprocessor executes instructions given by the user Instructions should be in a language known to the microprocessor Microprocessor.
Microprocessor Systems Design I
Microprocessor Systems Design I
PIC – ch. 2b Md. Atiqur Rahman Ahad.
PIC 16F877.
16.317: Microprocessor System Design I
Microprocessor Systems Design I
Morgan Kaufmann Publishers Computer Organization and Assembly Language
Machine control instruction
Assembly Language Programming Part 2
16.317: Microprocessor System Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
Shift & Rotate Instructions)
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
EECE.3170 Microprocessor Systems Design I
Presentation transcript:

16.317 Microprocessor Systems Design I Instructor: Dr. Michael Geiger Spring 2014 Lecture 26: PIC instruction set (continued) PIC assembly programming

Microprocessors I: Lecture 26 Lecture outline Announcements/reminders HW 5 to be posted; due date TBD Review Control flow instructions Conditional execution Today’s lecture Finish PIC instruction set Common simple operations 4/18/2018 Microprocessors I: Lecture 26

Review: Control flow instructions Unconditional jumps goto bra/brw Call/return instructions call/callw return/retlw/retfie 4/18/2018 Microprocessors I: Lecture 26

Review: Conditional Execution 4/18/2018 Review: Conditional Execution Conditional execution in PIC: skip next instruction if condition true Two general forms Test bit and skip if bit clear/set Increment/decrement register and skip if result is 0 STATUS bits: none btfsc f, b ;Test bit b of register f, where b=0 to 7, skip if clear btfss f, b ;Test bit b of register f, where b=0 to 7, skip if set decfsz f, F(W) ;decrement f, putting result in F or W, skip if zero incfsz f, F(W) ;increment f, putting result in F or W, skip if zero Examples: btfsc TEMP1, 0 ; Skip the next instruction if bit 0 of TEMP1 equals 0 btfss STATUS, C ; Skip the next instruction if C==1 decfsz TEMP1, F ; Decrement TEMP1, skip if TEMP1==0 incfsz TEMP1, W ; W <- TEMP1+1 , skip if W==0 (TEMP1==0xFF) ; Leave TEMP1 unchanged 4/18/2018 Microprocessors I: Lecture 26 Chapter 9

Microprocessors I: Lecture 26 4/18/2018 Miscellaneous STATUS bits: clrwwdt, sleep: NOT_TO, NOT_PD nop: none clrwdt ; clear watchdog timer sleep ; go into standby mode reset ; software reset tris f ; Copy W to TRIS reg (do not use) option ; OPTION_REG = W nop ; no operation Notes: clrwdt ; if watchdog timer is enabled, this instruction will reset ; it (before it resets the CPU) sleep ; Stop clock; reduce power; wait for watchdog timer or ; external signal to begin program execution again nop ; Do nothing; wait one clock cycle 4/18/2018 Microprocessors I: Lecture 26 Chapter 9

Working with multiple registers Can’t do simple data transfer or operation on two registers Usually must involve working register Examples: x86  PIC (assume PIC registers defined with same names as x86 registers) MOV AL, BL movf BL, W movwf AL ADD AL, BL addwf AL, F 4/18/2018 Microprocessors I: Lecture 26

Microprocessors I: Lecture 26 Conditional jumps Basic ones are combination of bit tests, skips Remember that condition you’re testing is opposite of jump condition Examples: x86  PIC JNC label btfss STATUS, C goto label JE label btfsc STATUS, Z 4/18/2018 Microprocessors I: Lecture 26

Conditional jumps (cont.) To evaluate other conditions, may want to use subtraction in place of compare CMP X, Y turns into: movf Y, W subwf X, W Possible results (unsigned comparison only): X > Y  Z = 0, C = 1 X == Y  Z = 1, C = 1 X < Y  Z = 0, C = 0 More complex conditions X <= Y  Z == C X != Y  Z = 0 X >= Y  C = 1 4/18/2018 Microprocessors I: Lecture 26

Shift/rotate operations May need to account for bit being shifted/rotated out Basic rotate doesn’t rotate through carry Can either pre-test or fix later Multi-bit shift/rotate: loop where # iterations matches shift amount 4/18/2018 Microprocessors I: Lecture 26

Shift/rotate operations (cont.) Examples: x86  PIC ROR AL, 1 bcf STATUS, C ; Clear carry bit rrf AL, F ; Rotate AL one bit to right btfsc STATUS, C ; Skip next instruction if C clear ; C = bit shifted out of MSB bsf AL, 7 ; Handle case where C = 1 ; MSB of AL should be 1 RCL AL, 3 movlw 3 ; Initialize working register to 3 (# iterations) movwf COUNT ; Initialize count register ; Assumes you’ve declared variable COUNT Loop: rlf AL, F ; Rotate AL one bit to left decfsz COUNT, F ; Decrement counter & test for 0 ; Skip goto if result is zero goto Loop ; Return to start to loop 4/18/2018 Microprocessors I: Lecture 26

Microprocessors I: Lecture 26 Examples Translate these x86 operations to PIC code Assume that there are registers defined for each x86 register (e.g. AL, AH, BL, BH, etc.) OR AL, BL SUB BL, AL JNZ label JB label (B = below = unsigned <) ROL AL, 5 4/18/2018 Microprocessors I: Lecture 26

Microprocessors I: Lecture 26 Example solution OR AL, BL movf BL, W ; W = BL iorwf AL, F ; AL = AL OR W = AL OR BL SUB BL, AL movf AL, W ; W = AL subwf BL, F ; BL = BL – W = BL – AL JNZ label btfss STATUS, Z ; Skip goto if Z == 1 (if goto label ; previous result == 0) 4/18/2018 Microprocessors I: Lecture 26

Example solution (continued) JB label btfsc STATUS, Z ; If Z == 0, check C goto End ; Otherwise, no jump btfss STATUS, C ; If C == 1, no jump goto label ; Jump to label End: ; End of jump 4/18/2018 Microprocessors I: Lecture 26

Example solution (continued) ROL AL, 5 movlw 5 ; W = 5 movwf COUNT ; COUNT = W = 5 L: bcf STATUS, C ; C = 0 btfsc AL, 7 ; Skip if MSB == 0 bsf STATUS, C ; C = 1 if MSB == 1 ; C will hold copy of ; MSB (bit rotated into ; LSB) rlf AL, F ; Rotate left by 1 decfsz COUNT ; If COUNT == 0, don’t ; restart loop goto L 4/18/2018 Microprocessors I: Lecture 26

Microprocessors I: Lecture 26 Final notes Next time: Continue with PIC assembly programming Reminders: HW 5 to be posted; due date TBD 4/18/2018 Microprocessors I: Lecture 26