Presentation is loading. Please wait.

Presentation is loading. Please wait.

Addressing Modes Register Direct, with 1 and 2 registers I/O Direct

Similar presentations


Presentation on theme: "Addressing Modes Register Direct, with 1 and 2 registers I/O Direct"— Presentation transcript:

1 Addressing Modes Register Direct, with 1 and 2 registers I/O Direct
Data Direct Data Indirect – with pre-decrement – with post-increment Code Memory Addressing December 5, 2018

2 Register Direct #1 REG December 5, 2018

3 Register Direct #2 REGS December 5, 2018

4 I/O Direct December 5, 2018

5 Data Direct December 5, 2018

6 Data Indirect December 5, 2018

7 ldi r26,$60 ; Set X low byte to $60
clr r27 ; Clear X high byte ldi r26,$60 ; Set X low byte to $60 st X+,r0 ; Store r0 in data space loc. $60(X post inc) st X,r1 ; Store r1 in data space loc. $61 ldi r26,$63 ; Set X low byte to $63 st X,r2 ; Store r2 in data space loc. $63 st -X,r3 ; Store r3 in data space loc. $62(X pre dec) December 5, 2018

8 Data Indirect with Displacement
December 5, 2018

9 Data Indirect: Pre-Decrement
December 5, 2018

10 Data Indirect: Post-Increment
December 5, 2018

11 LPM Instruction December 5, 2018

12 constant initialization or constant data fetch.
Loads one byte pointed to by the Z-register into the destination register Rd. This instruction features a 100% space effective constant initialization or constant data fetch. Not all variants of the LPM instruction are available in all devices. December 5, 2018

13 low byte if cleared (LSB = 0) or high byte if set (LSB = 1).
Constant byte address is specified by the Z-register contents. The 15 MSBs select word address. For LPM, the LSB selects low byte if cleared (LSB = 0) or high byte if set (LSB = 1). December 5, 2018

14 I/O Register $3F : SREG All Bits are R/W: –I – Global Interrupt Enable
–T – Bit Copy Storage –H – Half Carry Flag –S – Sign Bit –V – Two’s Complement Overflow Flag –N – Negative Flag –Z – Zero Flag –C – Carry Flag December 5, 2018

15 Instruction Examples: Add
Math – Add ADD Rd, Rr – Adds two registers – Rd <- Rd + Rr ADC Rd, Rr – Add with Carry two registers – Rd <- Rd + Rr + C ADIW Rdl, K– Add Immediate to Word – Rdh:Rdl <- Rdh:Rdl + K December 5, 2018

16 Other Math and Logic • Subtract • Logical AND Logical OR Exclusive OR
One’s Complement , COM Rd Two’s Complement, NEG Rd Increment/Decrement, INC Rd, DEC Rd Set Registers and Bits in Registers, SBR Rdx,k SER Rd ***SBI ** December 5, 2018

17 Branch Instructions • RJMP/RCALL – Relative Jmp (+/-k) 2k RJMP OK
NOT_OK: ADD R1,R5 OK: INC R1 December 5, 2018

18 brne error ; Branch if r16 <> $42
cpi r16,$42 ; Compare r16 to $42 brne error ; Branch if r16 <> $42 rjmp ok ; Unconditional branch error: add r16,r17 ; Add r17 to r16 inc r16 ; Increment r16 ok: nop ; Destination for rjmp (do nothing) December 5, 2018

19 CONTD… • IJMP/ICALL – Indirect Jmp (Z Reg) LDI R30,add_low
LDI R31,add_high IJMP • RET/RETI – Return from Call/Interrupt • CP* - Compare CP R18,R19 December 5, 2018

20 CONTD… • SB* - Skip if Bit in Register or I/O is set/clr
BACK: IN R3,PINB SBRC R3,0 RJMP BACK IN R4,PIND • BR* - Branch if blahhhh. December 5, 2018

21 Data Transfer Instructions
MOV – Move between register MOV R16,R17 LD/LDI – Load / Load Immediate LD R15,X+ LD R15,-X ST////STI – Store / Store Immediate IN/OUT – In and Out Ports IN R1,PINB OUT PORTC,R1 December 5, 2018

22 CONTD.. PUSH/POP – On and off stack PUSH R1 POP R1 December 5, 2018

23 Bit and Bit Test Instructions
SBI/CBI – Set / Clear Bit in register SBI A,s CBI A,s • LSL/LSR – Logical Shift Left/Right LSR R16 • ROL/ROR – Rotate Left/Right (thru C) ROL R16 December 5, 2018

24 Bit and Bit Test Instructions
BST RS,s bit store bit s of Rs in t flag BLD RS,s bit load t flag in bit s of Rs December 5, 2018

25 Thank You December 5, 2018


Download ppt "Addressing Modes Register Direct, with 1 and 2 registers I/O Direct"

Similar presentations


Ads by Google