15
ABDERRAHMANE HILALI ILISI PREMIÈRE ANNÉE COMPTE RENDU DES TRAVEAUX PRATIQUES

Introduction

Embed Size (px)

DESCRIPTION

exercice resolus de 6809

Citation preview

Page 1: Introduction

compte Rendu Des traveaux pratiques

ABDERRAHMANE HILALI

Page 2: Introduction

TITRE PAGE

INTRODUCTION

Ajouter un nombre à une liste 1

Divisibilité Par 8

Division par 5

Division par 8

Le nombres total des nombres

positives

Suppression d’un élément d’une

Liste

Trois 1 successives

Suppression d’un élément d’une

liste

Compter dans un pia et

clignoter 5 fois lors d’une

interruption IRQ

Table des Matières

Page 3: Introduction

Ajouter un nombre à une liste

Soit une liste ordonnée, dont la taille est

stockée dans la case mémoire $0000, et

qui commence de la case mémoire $0001

pour ajouter un élément à cette liste, on

va suivre les étapes suivantes :

1. On met un pointeur sur le dernier

élément de la liste

2. Si l’élément pointé est inférieur à la valeur de l’élément qu’on

Page 4: Introduction

veut ajouter on doit le décaler vers sa

position + 1

3. On recommence l’étape 2 jusqu’à

ce qu’on trouve un élément qui est

inférieur, et puis on insère.

Programme

LDA $0000 ;charger A avec le contenu de l’adresse $0000LDB $0001 ;charger B avec le contenu de l’adresse $0001LDX #$0002 ;charger X avec $0002LEAX B,X ; charger X par B+XLEAY $FF,X ;charger Y par X - 1ENCORE:CMPA ,Y ; Comparer A avec (,Y) si A est plus petit que (,Y)BLO CONTINUE ; si A et < à (,y) on saut vers ContinueSTA ,X ; sinon on stock A dans la mémoire pointée par XENDCONTINUE: CMPY #$0002 ;comparer Y avec #$0002BNE SUITE ; sils ne sont pas egaux on saute vers SuiteLDB ,Y ; sinon on charge B avec (,Y)

Début

Page 5: Introduction

oui

STB ,X ;on stock B dans X STA ,Y ; stock A dans Y ENDSUITE: LDB ,Y ; on charge B par (,y)STB ,X ; on stock B dans (,X)LEAX ,Y ; on charge X par (,Y)LEAY $FF,Y ; on charge Y par Y - 1BRA ENCORE ; on refaire les étapes commençons par Encore.

Organigrame

Encore

Début

A <- ($0000)

B <- ($0001)

X <- #$0002

X <- X + (B)

Y <- (X) - 1

A < (,Y)

(,X) <- (A) (fin)

fin

Page 6: Introduction

NonContinue

Suite

Divisibilité Par 8

LDA $0001 ;on charge A par le contenu de $0001 (linformation)CLR $0000 ; remise de $0000 a 0ANDA #$07 ; le et logique entre A et #$07BNE FIN ; il n’est pas divisible par 8 on saute vers la finLDA #$01 ;il est divisible par 8 on change la valeur de $0000 par 1STA $0000 FIN:END

organigramme

Y = $0002

B <- (,Y)

(,X) <- (B)

(,y) <- (A)

B <- (,Y)

(,X) <- (B)

X <- Y

Y <- (Y )- 1

fin

Début

Page 7: Introduction

Non

oui

Division par 5

CLRB ;B <- 0LDA $0002 ;charger A avec le contenu de $00002ENCORE:CMPA #$05 ; comparons A avec #$05BLO SUITE ; INCB ; incrémentation de BSUBA #$05 ; A <- A - 5BRA ENCORESUITE:STB $0000 ;sauvgarder B dans $0000 le quotientSTA $0001 ; sauvgarder A dans $0001 le reste END

Organigramme

Encore

A <- ($0001)

$0000 <- #$00

(A) ET #$07

A = 0

A <- #$01

$0000 <-(A)

FIN

Début

A <- ($0002)

A < 5

Page 8: Introduction

oui

Suite

Division par 8

CLRB ;B <- 0LDA $0002 ;charger A avec le contenu de $00002ENCORE:CMPA #$08 ; comparons A avec #$08BLO SUITE ; INCB ; incrémentation de BSUBA #$08 ; A <- A - 5BRA ENCORESUITE:STB $0000 ;sauvgarder B dans $0000 le quotientSTA $0001 ; sauvgarder A dans $0001 le reste END

Organigramme

Encore

A <- ($0002)

B <- (B) + 1

A <- A - #$05

$0000 <- (B)

$0001 <- (A)

FIN

Début

A <- ($0002)

A < 8

Page 9: Introduction

Encore

oui

Suite

Nombre Totale des nombre positives

CLRA ;A <- 0LDX #$0003 ; X <- #$0003 le début de la listeLDB $0002 ; B <- $0002 la taile de listeBEQ FIN ; si B est Nulle alore FinENCORE:TST ,X+ ;test de (,X+)BLE SUITE ;si (,X+) est inferieur ou égale à zero on saut vers suiteINCA ; sinn on incrément ASUITE:DECB ; decrementation de BBNE ENCORE ;si B est diferent de zero refaire les étapes si dessusFIN:STA $0000 ; stock A dans $0000END

Organigramme

A <- ($0002)

B <- (B) + 1

A <- A - #$08

$0000 <- (B)

$0001 <- (A)

FIN

Début

A <- #$00

X <- #$0003

B <- ($0002)

B = 0

Page 10: Introduction

suite

FIN

oui

non

Supprimer un élément

LDB $0003 LDX #$0004ABXSTX $0001LDX #$0004LDY #$0005LDA ,X

ENCORE:CMPA $0000BNE SUITELDA #$00STA ,XLDA ,YCMPA $0000BEQ SUITE STA ,XLEAX $01,XLEAY $01,Y SUITE:CMPY $0001BEQ FINLDB ,YCMPB $0000BNE CONTINUELDB #$00STB ,YLEAY $01,YBRA SUITECONTINUE:LDA ,YSTA ,XLEAX $01,XLEAY $01,YBRA ENCORE

TST ,X+

B = 0

A <- (A) + 1

B <- (B) - 1

$0000 <- (A)

fin

(,X) < 0

Début

B <- ($0003)

X <- #$0004

X <- X + B

STX $0001

X <- #$0004

Y <- #$0005

A <- (,X)

A = 0

A <- #$00

(,X) <- A

A <- (Y)

A = ($0000)

A <- (,X)

X <- (X)+1

Y <- (Y) + 1

Page 11: Introduction

FIN:

END

Trois 1 successives

LDB #$03 ; B <- #$03LDA $0001 ;A <- ($0001) la donnéeENCORE: TSTA BNE SUITE ; si A est NulleLDA #$00 ;A <- #$00 STA $0000 ; $0000 <- (A) charger A dans $0000ENDSUITE:LSLA ;left shifting, A<-BCS NUL ;si C = 1LDB #$03 ;charger B par #$03BRA TEST ; sauter vers TESTNUL:DECB ; DEcrementer BTEST:BNE ENCORE ; si B n’est pas Nulle alore refaireLDA #$FF ;charger A par #$FFSTA $0000 ; stock A dans $0000END

y = ($0001)

Page 12: Introduction

Compter dans un pia et clignoter 5 fois lors d’une interruption IRQ

;$FFF8 db $FC ;vectorisation;$FFF9 db $50

DDRB EQU $8002 ; initialisationORB EQU $8002CRB EQU $8003

ORG $FC00CLR CRBLDA #$FFSTA DDRBLDA #$04STA CRB

LDA #$00

COMPTAGE:STA ORB ; stocker A dans ORBBSR TEMP ;Appel du sous programme de temporisationINCA ;incrémentation de ABRA COMPTAGE ;retourner au debut du programme de comptage

TEMP: ;programme de temporisationLDX #$000A ;X <- #$000A

SOSO:LEAX $FF,X ;decrementer XBNE SOSO ; si X n’est pas nulleRTS ; retourner

ORG $FC50 ; programme d’interruptionLDB #$05 ; charger B par 5

Page 13: Introduction

TOTO:CLR ORB ; ORB <- 0BSR TEMP ; appel du programmme de temporisationCOM ORB ; le complement de ORB BSR TEMP ;appel du sous programme TEMPDECB ;decrementatoin de BBNE TOTO ;si b n’est pas nulle alore aller vers TOTORTI ;retourner

END:END