/
© 2010 Kettering University, All rights reserved. © 2010 Kettering University, All rights reserved.

© 2010 Kettering University, All rights reserved. - PowerPoint Presentation

stefany-barnette
stefany-barnette . @stefany-barnette
Follow
391 views
Uploaded On 2016-07-16

© 2010 Kettering University, All rights reserved. - PPT Presentation

Microcomputers I CE 320 Electrical and Computer Engineering Kettering University jkwonketteringedu httpwwwketteringedujkwon Jaerock Kwon PhD Announcements Quiz 2 today Starts at 1050AM ID: 407259

copy byte ldaa process byte copy process ldaa length false true point bra ccr flowcharts assembly 1st item elements

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "© 2010 Kettering University, All rights..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

© 2010 Kettering University, All rights reserved.Slide2
Slide3

Microcomputers I – CE 320

Electrical and Computer Engineering

Kettering University

jkwon@kettering.eduhttp://www.kettering.edu/~jkwon

Jaerock Kwon, Ph.D.Slide4

Announcements

Quiz 2 today!

Starts at 10:50AMSlide5

Lecture 9:

Assembly Language ExampleSlide6

Today’s Topics

Flowcharts

Practice assembly programmingSlide7

Flowcharts

There are other more sophisticate methods of representing programs.

Flowcharts work well for software written in assembly code level.

We will see logical building blocks in flowchart formats along with assembly code templates.Slide8

Flowcharts

There are many more symbols other than these.

Shapes may be different.

In this course, those four symbols are pretty much all we need.

Meaning of symbols

Decision

Start or End

Process

flowSlide9

Flowcharts

Set CCR bits for decision

Bxx

Process A

Process B codeIf(

PillColor

== RED)

RealWorld

Else

Matrix

Example:

ldaa

PillColor

cmpa

#RED

bne

lmatrix

RealWorld

bra

lskiplmatrix: Matrixlskip: ...

If-Then-Else

Color of Pill is RED?

Matrix

RealWorld

TRUE

FALSESlide10

Flowcharts

Set CCR bits for decision

Bxx

past BRA

Process codeSet CCR bits for decisionBRA to

Bxx

Example:

ldaa

KnowThis

lloop

:

cmpa

#YES

beq

lnext

StudyMore

ldaa

KnowThis

bra

lloop

lnext

: NextStep

While-Do

KnowThis?

StudyMore

TRUE

FALSESlide11

Flowcharts

Process code

Set CCR bits

Bxx

to Process codeExample:

loop:

DoSomething

ldaa

Result

beq

ldone

bra loop

ldone

:

Repeat-Until

Is the Job done?

FALSE

TRUE

DoSomethingSlide12

Flowcharts

Set CCR bits

Bxx

to Process 1

Set CCR bitsBxx to Process 2

Set CCR bits

Bxx

to Process N

Default Process code

BRA past Process N code

Process 1 code

BRA past process N code

Process 2 code

BRA past Process N code

Process N code

Example:

ldaa

nTemp

cmpa

#20

bhs l1 TurnOnHeater

bra

lres

l1: cmpa

#70

bhi l2

FlashIndicator

bra

lres

l2: cmpa

#100

bhi

l3

TurnOnCooler

bra

lres

l3: Alarm

lres

:

Case

nTemp

< 20

TurnOnHeater

FALSE

TRUE

nTemp

< 70

FlashIndicator

FALSE

TRUE

nTemp

< 100

TurnOnCooler

FALSE

TRUE

AlarmSlide13

Flowchart Guidelines

Do not refer to registers in the flowchart

Arrows should never cross

They will not need to if the flowchart represents a structured programThe purpose is to remove any questions about how to program and understand the algorithm, and this usually determines when the flowchart contains enough detail.Slide14

Assembly Example

Convert an array of 4-byte Big-

Endian

values to an array of Little-Endian values.Let $1000 hold the address of the array of Big-

Endian values, $1002 hold the address of the array for the Little-Endian

values,

$1004 hold the two-byte

length

of numbers to convert.

Write an assembly program to implement these requirements.Slide15

4. There are no more elements

TRUE

FALSE

Start

End

1: Point to the first BE item

2: Point to the first LE item

3: Make a copy of the length

5: Copy 1st BE byte to 4th LE byte

6: Copy 2

nd

BE byte to 3

rd

LE byte

7: Copy 3

rd

BE byte to 2

nd

LE byte

8: Copy 4

th

BE byte to 1

st

LE byte

9: Point to next elements &

dec

lengthSlide16

org

$1000

Bend

ds.w

1

LEnd

ds.w

1

Length

ds.w

1

TmpLen

ds.w

1

org

$2000

ldx

BEnd

ldy

Lend

ldd

Length

Loop

std

TmpLen

; 3

beq

Done

ldaa

0,x ; 3

staa

3,y

; 2

ldaa

1,x

; 3

staa

2,y

; 2

ldaa

2,x

; 3

staa

1,y

; 2

ldaa

3,x

; 3

staa

0,y

; 2

inx

;

1

inx

inx

inx

iny

; 1

iny

iny

iny

ldd

TmpLen

; 3 subd #$0001 bra Loop Done swi

4. There are no more elements

TRUE

FALSE

Start

End

1: Point to the first BE item

2: Point to the first LE item

3: Make a copy of the length

5: Copy 1st BE byte to 4th LE byte

6: Copy 2

nd

BE byte to 3

rd

LE byte

7: Copy 3

rd

BE byte to 2

nd LE byte

8: Copy 4

th BE byte to 1st LE byte

9: Point to next elements &

dec lengthSlide17

org

$1000

Bend

ds.w

1

LEnd

ds.w

1

Length

ds.w

1

org

$2000

ldx

BEnd

ldy

Lend

ldd

Length

Loop

beq

Done

movb

0,x,3,y ; 5

movb

1,x,2,y

movb

2,x,1,y

movb

3,x,0,y

leax

4,x

; 2

leay

4,y

subd

#1

; 2

bra

Loop

Done

swi

4. There are no more elements

TRUE

FALSE

Start

End

1: Point to the first BE item

2: Point to the first LE item

3: Make a copy of the length

5: Copy 1st BE byte to 4th LE byte

6: Copy 2

nd

BE byte to 3

rd

LE byte

7: Copy 3

rd

BE byte to 2

nd

LE byte

8: Copy 4

th

BE byte to 1

st

LE byte

9: Point to next elements &

dec

length

Note: You can save 10 (= 3 + 2x2

+ 3) cycles.Slide18

Questions?Slide19

Wrap-up

Flowcharts

Templates will be greatly helpful.

Assembly program example

What we’ve learnedSlide20

What to Come

Arithmetic instructions

Logic instructions