Académique Documents
Professionnel Documents
Culture Documents
TITRE
INTRODUCTION
Ajouter un nombre une liste
Divisibilit Par 8
Division par 5
Division par 8
Le nombres total des nombres
PAGE
1
positives
Suppression dun lment dune
Liste
Trois 1 successives
Suppression dun lment dune
liste
Compter dans un pia et
clignoter 5 fois lors dune
interruption IRQ
lment de la liste
2.
Si llment point est infrieur la
valeur de llment quon
veut ajouter on doit le dcaler vers sa
position + 1
3.
Programme
LDA $0000
LDB $0001
LDX #$0002
LEAX B,X
LEAY $FF,X
ENCORE:
CMPA ,Y
BLO CONTINUE
STA ,X
END
CONTINUE:
CMPY #$0002
BNE SUITE
LDB ,Y
STB ,X
STA ,Y
END
SUITE:
LDB ,Y
STB ,X
LEAX ,Y
LEAY $FF,Y
BRA ENCORE
Dbut
Organigrame
Dbut
A <- ($0000)
B <- ($0001)
X <- #$0002
X <- X + (B)
Y <- (X) - 1
A < (,Y)
Encore
oui
fin
Y = $0002
B <- (,Y)
(,X) <- (B)
(,y) <- (A)
Non
Continue
fin
B <- (,Y)
(,X) <- (B)
X <- Y
Y <- (Y )- 1
Divisibilit Par 8
LDA $0001 ;on charge A par le contenu de $0001 (linformation)
CLR $0000 ; remise de $0000 a 0
ANDA #$07 ; le et logique entre A et #$07
BNE FIN
; il nest pas divisible par 8 on saute vers la fin
LDA #$01 ;il est divisible par 8 on change la valeur de $0000 par 1
STA $0000
FIN:
END
organigramme
Dbut
A <- ($0001)
$0000 <- #$00
(A) ET #$07
Suite
A=0
Non
A <- #$01
$0000 <-(A)
FIN
Division par 5
CLRB
LDA $0002
ENCORE:
CMPA #$05
BLO SUITE
INCB
SUBA #$05
BRA ENCORE
SUITE:
STB $0000
STA $0001
END
;B <- 0
;charger A avec le contenu de $00002
; comparons A avec #$05
;
; incrmentation de B
; A <- A - 5
;sauvgarder B dans $0000 le quotient
; sauvgarder A dans $0001 le reste
Organigramme
Dbut
A <- ($0002)
A<5
Encore
oui
Suite
A <- ($0002)
B <- (B) + 1
A <- A - #$05
FIN
Division par 8
CLRB
LDA $0002
ENCORE:
CMPA #$08
BLO SUITE
INCB
SUBA #$08
BRA ENCORE
SUITE:
STB $0000
STA $0001
END
;B <- 0
;charger A avec le contenu de $00002
; comparons A avec #$08
;
; incrmentation de B
; A <- A - 5
;sauvgarder B dans $0000 le quotient
; sauvgarder A dans $0001 le reste
Organigramme
Dbut
A <- ($0002)
A<8
Encore
oui
Suite
A <- ($0002)
B <- (B) + 1
A <- A - #$08
;A <- 0
; X <- #$0003 le dbut de la liste
; B <- $0002 la taile de liste
; si B est Nulle alore Fin
;test de (,X+)
;si (,X+) est inferieur ou gale zero on saut vers suite
; sinn on incrment A
; decrementation de B
;si B est diferent de zero refaire les tapes si dessus
; stock A dans $0000
Organigramme
Dbut
A <- #$00
X <- #$0003
B <- ($0002)
B=0
Encor
e
oui
TST ,X+
(,X) < 0
A <- (A) + 1
suite
B <- (B) - 1
oui
non
B=0
FIN
Supprimer
un lment
$0000 <- (A)
LDB $0003
LDX #$0004
ABX
STX $0001
LDX #$0004
LDY #$0005
LDA ,X
ENCORE:
CMPA $0000
BNE SUITE
LDA #$00
STA ,X
LDA ,Y
CMPA $0000
BEQ SUITE
STA ,X
LEAX $01,X
LEAY $01,Y
SUITE:
CMPY $0001
BEQ FIN
LDB ,Y
CMPB $0000
BNE CONTINUE
LDB #$00
STB ,Y
LEAY $01,Y
BRA SUITE
CONTINUE:
LDA ,Y
STA ,X
LEAX $01,X
LEAY $01,Y
BRA ENCORE
FIN:
END
fin
Dbut
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
y = ($0001)
Trois 1 successives
LDB #$03
; B <- #$03
LDA $0001
;A <- ($0001) la donne
ENCORE:
TSTA
BNE SUITE
; si A est Nulle
LDA #$00
;A <- #$00
STA $0000
; $0000 <- (A) charger A dans $0000
END
SUITE:
LSLA
;left shifting, A<BCS NUL
;si C = 1
LDB #$03
;charger B par #$03
BRA TEST
; sauter vers TEST
NUL:
DECB
; DEcrementer B
TEST:
BNE ENCORE ; si B nest pas Nulle alore refaire
LDA #$FF
;charger A par #$FF
STA $0000
; stock A dans $0000
END
;vectorisation
; initialisation
ORG $FC00
CLR CRB
LDA #$FF
STA DDRB
LDA #$04
STA CRB
LDA #$00
COMPTAGE:
STA ORB
BSR TEMP
INCA
BRA COMPTAGE
TEMP:
LDX #$000A
;programme de temporisation
;X <- #$000A
SOSO:
LEAX $FF,X
BNE SOSO
RTS
;decrementer X
; si X nest pas nulle
; retourner
ORG $FC50
LDB #$05
; programme dinterruption
; charger B par 5
TOTO:
CLR ORB
BSR TEMP
COM ORB
BSR TEMP
DECB
BNE TOTO
RTI
; ORB <- 0
; appel du programmme de temporisation
; le complement de ORB
;appel du sous programme TEMP
;decrementatoin de B
;si b nest pas nulle alore aller vers TOTO
;retourner
END:
END