an introduction to assembler

22
1

Upload: arryshah-dahmia

Post on 14-Apr-2018

232 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 1/22

1

Page 2: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 2/22

Introduction The PIC 18 Series Instruction Set

Byte-oriented file register operations

Bit-oriented file register operations Literal and control operations

Instruction Formats

Operation Types

MPASM Assembler

Example

2

Page 3: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 3/22

Micro-controller Programming Options:

1. Machine Code

00 0111 0001 01012. Assembly Language: needs an assembler

addwf NUM, w

3. High-Level Language: needs a compiler

for (i=0; i<10; i++) sum += a[i];

3

Page 4: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 4/22

4

Page 5: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 5/22

5

Page 6: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 6/22

77 instructions Three Groups:

1. Byte-oriented file register operations

2. Bit-oriented file register operations

3. Literal and control operations

Operation Types:◦ Arithmetic – Logic

◦ Data movement – Control

◦ Misc

6

Page 7: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 7/22

Format: op f, d ◦ op: operation

◦ f: number of file or register

◦ d : destination (0: working register, 1: file register)

Example:addwf PORTA, 0

Adds the contents of the working register and

register PORTA, puts the result in the workingregister.

7

Page 8: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 8/22

Format: op f, b◦ op: operation

◦ f: number of file or register

◦ b: bit number, 0 through 7

Example:bsf STATUS, 5

Sets to 1 Bit 5 of register STATUS.

8

Page 9: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 9/22

Format: op k◦ op: operation

◦ k: literal, an 8-bit if data or 11-bit if address

Examples:

addlw 5

Adds to the working register the value 5.call 9

Calls the subroutine at address 9.

9

Page 10: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 10/2210

Page 11: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 11/22

Mnemonic Operands Description CyclesStatus

Affected

ADDWF f, d Add W and f 1 C,DC,Z

COMF f, d Complement f 1 ZDECF f, d Decrement f 1 Z

INCF f, d Increment f 1 Z

SUBWF f, d Subtract W from f 1 C,DC,Z

ADDLW k Add literal and W 1 C,DC,Z

SUBLW k Subtract W from literal 1 C,DC,Z

11

Page 12: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 12/22

Mnemonic Operands Description CyclesStatus

Affected

ANDWF f, d AND W with f 1 Z

IORWF f, d Inclusive OR W with f 1 Z

XORWF f, d Exclusive OR W with f 1 Z

ANDLW k AND literal with W 1 Z

IORLW k Inclusive OR literal with W 1 ZXORLW k Exclusive OR literal with W 1 Z

12

Page 13: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 13/22

Mnemonic Operands Description CyclesStatus

Affected

MOVF f, d Move f 1 Z

MOVWF f Move W to f 1SWAPF f, d Swap nibbles in f 1

MOVLW k Move literal to W 1

13

Page 14: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 14/22

Mnemonic Operands Description CyclesStatus

Affected

DECFSZ f, d Decrement f, Skip if 0 1 (2)

INCFSZ f, d Increment f, Skip if 0 1 (2)BTFSC f, b Bit Test f, Skip if Clear 1 (2)

BTFSS f, b Bit Test f, Skip if Set 1 (2)

CALL k Call subroutine 2

GOTO k Go to address 2RETFIE - Return from interrupt 2

RETLW k Return with literal in W 2

RETURN - Return from Subroutine 2

14

Page 15: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 15/22

Mnemonic Operands Description Cycles StatusAffected

CLRF f Clear f 1 Z

CLRW - Clear W 1 Z

NOP - No Operation 1RLF f, d Rotate Left f through Carry 1 C

RRF f, dRotate Right f through

Carry1 C

BCF f, b Bit Clear f 1

BSF f, b Bit Set f 1

CLRWDT - Clear Watchdog Timer 1 TO',PD'

SLEEP - Go into standby mode 1 TO',PD'

15

Page 16: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 16/22

16

Page 17: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 17/22

Assembler

directiveSummary of action

list Implement a listing option

#include Include additional source file

org Set program origin

equDefine an assembly constant; this

allows us to assign a value to a label

end End program block

17

Page 18: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 18/22

Radix Example

Decimal D’255’ 

HexadecimalH’8d’ or 0x8d

 Octal O’574’ 

Binary B’01011100’ 

ASCII ‘G’ or A’G’ 

18

Page 19: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 19/22

;***************************************************

;This program moves push button switch values from 

;Port A to the leds on Port B

;***************************************************

;

;Configuration Word: WDT off, power-up timer on,

; code protect off, RC oscillator

;

list p=18F4550

19

Page 20: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 20/22

;

;specify SFRs

status equ 03

 porta equ 05

trisa equ 05

 portb equ 06

trisb equ 06

;

20

Page 21: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 21/22

;

org 00

;Initialise

start bsf status,5 ;select memory bank 1

 movlw B’00011000’ 

 movwf trisa ;set port A direction

 movlw 00

 movwf trisb ;all port B bits output

 bcf status,5 ;select bank 0

21

Page 22: An Introduction to Assembler

7/27/2019 An Introduction to Assembler

http://slidepdf.com/reader/full/an-introduction-to-assembler 22/22

;

;The "main" program starts here

clrf porta ;clear all bits in ports A 

loop movf porta,0 ;move port A to W register

 movwf portb ;move W register to port B

goto loop

end 

22