Download presentation
Presentation is loading. Please wait.
Published byArron Christian Bryan Modified over 9 years ago
1
PIC – ch. 2b
2
Move to GPR Move [copy] contents of WREG GPR/RAM MOVLW99H;WREG=99H MOVWF0H ;move [copy] WREG contents to location 0h … -Cant move literal [immediate] values directly into the general-purpose RAM locations in the PIC18. -They must be moved there via WREG. Q: Can literal values directly into SFR?
3
ADDWF ADDLW15H; =15h + [WREG] ADDWFfileReg, D; =[WREG] + [fileReg] Sources: Content of WREG fileReg: Content of file register (special or general) Destination: D indicates destination bit If D = 0, destination of the result is WREG, or If D = 1, destination is file register
4
Or, ADDWFfileReg, w; =[WREG] + [fileReg] ; destination of the result is WREG ADDWFfileReg, f; =[WREG] + [fileReg] ; destination of the result is fileReg
5
Q. How to clear WREG? MOVLW0
6
Q. State the contents of file reg. RAM locations 12H and WREG after… MOVLW0 ;WREG = 0 MOVWF12H ; move WREG to location 12 to clear it MOVLW22h ; WREG=22 ADDWF12h, F ;add WREG to loc 12h Loc 12h 22446688 WREG 22222222
7
Q. State the contents of file reg. RAM locations 12H and WREG after… MOVLW0 ;WREG = 0 MOVWF12H ; move WREG to location 12 to clear it MOVLW22h ; WREG=22 ADDWF12h, w ;add WREG to loc 12h Loc 12h 22222222 WREG 22446688
8
Table 2.2 ALU instructions – using both WREG & fileReg ADDWFfileReg, d ; d =W / d =F default is F ADDWFCfileReg, d ;… with carry ANDWF- AND IORWF- OR XORWF- Ex-OR w with f SUBFWB- subtract f from w with borrow SUBWF- subtract w from f SUBWFB- subtract w from f with borrow
9
Table 2.3 File Reg. instructions – using fileReg or WREG as destination COMF fileReg, d ; -complement/invert f DECF-dec f DECFSZ-dec f & skip if zero DECFSNZ -dec f & skip if not zero INC-inc f
10
MOVF-move fileReg NEGF-negative f Rotate right, rotate left SWAPF-swap nipples in fileReg BTG-bit toggle fileReg
11
2.4 PIC Status Flag Register The STATUS register is of most importance to programming the PIC, it contains the arithmetic status of the ALU (Arithmetic Logic Unit), the RESET status and the bank select bit for data memory. 8-bit register Only 5 bits to use by PIC18 Other 3 bits – not used and read as 0
12
C – carry DC – digital carry Z – zero OV– overflow N – negative
13
C It is affected after an 8-bit addition or subtraction, for unsigned arithmetic Ch. 5
14
DC – digital carry / Auxiliary carry flag For BCD [binary coded decimal] arithmetic. When there is a carry from bit-3 to bit-4 during an ADD or SUB – it is set, else, cleared.
15
Z If the result is zero, then Z= 1 Used in arithmetic or logic ops. Z for looping Ch. 3
16
OV – overflow flag OV = 1, when the result of a signed number operation is too large, causing the high-order bit to overflow into the sign bit. For signed arithmetic OV, N For unsigned arithmetic C
17
N – negative flag For signed no., bit-7 as the sign bit. If bit-7 = 0 Z=0 result is positive If bit-7 = 1 Z=1 result is negative Ch. 5
18
Some instructions affect all flags – E.g., ADDWL Some inst. – only Z or N flag bits, or both – E.g., ANDWL Some inst. – no flags at all! – E.g., all move instructions, except MOVF
19
Q. Status of C, DC, Z after addition of 38h and 2Fh for - MOVLW38H ADDLW2FH ========= 38h 0011 1000 2Fh 0010 1111 ----------------------------- 67h 0110 0111WREG = 67h
20
C = 0 no carry beyond bit#7 DC = 1carry from b#3 to b#4 Z = 0WREG has a value not zero
21
Q? MOVLW9Ch ADDLW64h
22
C = 1 DC = 1 Z= 1
23
See Table 2.4
24
Conditional branch [jump] InstructionsAction – BCbranch if C = 1 – BNCbranch if C != 0 – BZbranch if Z = 1 – BNZbranch if Z != 0 – BNbranch if N = 1 – BNCbranch if N != 0 – BOVbranch if OV = 1 – BNOV More – ch.3
25
Next…
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.